Решение проблемы контекстного окна: StreamingLLM и феномен Attention Sinks 💡 0:00
Большие языковые модели (LLM) сталкиваются с фундаментальным ограничением: их способность к генерации текста ограничена размером контекстного окна, заложенным при обучении. Исследователи из MIT, Meta и Университета Карнеги — Меллон предложили элегантное и эффективное решение этой проблемы, получившее название StreamingLLM. В основе метода лежит открытие специфического свойства нейронных сетей, позволяющее моделям работать практически бесконечно долго без потери качества или необходимости дорогостоящих перевычислений.
Проблема «бесконечного» текста 1:20
При попытке использовать языковую модель за пределами её обучающего окна возникают серьёзные препятствия:
- Квадратичная сложность: Стандартный механизм внимания (Attention) имеет квадратичную сложность по отношению к длине последовательности. Это приводит к тому, что при превышении лимита (например, 4000 или 8000 токенов) аппаратное обеспечение перестаёт справляться с нагрузкой.
- Ограниченность обучения: Модели не обучались обрабатывать последовательности длиннее заданных, поэтому экстраполяция на длинные тексты приводит к резкому росту перплексии (метрики «неуверенности» модели).
Существующий метод скользящего окна (sliding window attention) позволяет ограничить «память» модели лишь последними токенами, но он страдает от критического недостатка: как только самый первый токен выходит за пределы окна, накопленные в KV-кэше (Key-Value Cache) вычисления становятся невалидными. Это вынуждает систему производить полную пересборку контекста на каждом шаге генерации, что крайне медленно.
Открытие: Attention Sinks (Стоки внимания) 10:45
Исследователи обнаружили, что нейросети склонны концентрировать значительную часть «энергии» внимания на первых токенах последовательности. Этот феномен получил название Attention Sinks.
По мнению авторов исследования, модель во время обучения привыкает к тому, что первый токен (позиция 0) всегда присутствует в контексте. При расчёте функции softmax, которая должна суммировать веса внимания до единицы, модель «сбрасывает» излишки внимания, которые не несут смысловой нагрузки, именно на эти начальные позиции.
- Когда первый токен удаляется из окна, модель «теряет свой сток».
- Результат: распределение внимания нарушается, и перплексия модели резко возрастает.
Метод StreamingLLM: сохранение «стоков» 18:47
Суть предложенного метода заключается в том, чтобы при использовании скользящего окна всегда сохранять начальные токены (Attention Sinks) в памяти, независимо от их удалённости от текущего токена.
- Комбинированная стратегия: Кэш состоит из двух частей: фиксированные токены «стоков» (начало) и «скользящее окно» из самых последних токенов.
- Эффективность: Этот подход позволяет использовать кэш KV, достигая ускорения до 22 раз по сравнению с методом полной перекомпутации.
- Гибкость: Эксперименты показали, что в качестве стоков могут выступать даже нейтральные символы (например,
newline), если модель обучена воспринимать их как опорные точки.
Практическое внедрение 22:09
Авторы исследования предлагают способы адаптации моделей под этот метод:
- Zero-shot: Даже без дообучения сохранение первых токенов заметно улучшает стабильность генерации.
- Дообучение (Fine-tuning): Добавление специальных «нулевых» токенов в начало обучающих примеров позволяет модели осознанно использовать их как стоки. Это делает решение ещё более устойчивым, позволяя использовать всего один токен в качестве стока.
Янник Килчер отмечает, что данный метод является интуитивно понятным и легко интегрируемым в современные фреймворки для инференса. В заключение он проводит параллели с моделью Big Bird, которая также использовала концепцию глобального внимания к первым токенам, но подчеркивает, что StreamingLLM даёт новое понимание того, как именно модели управляют своим вниманием при работе с бесконечными последовательностями.