StreamingLLM: как заставить языковые модели работать бесконечно

Yannic Kilcher 38,2 тыс. 32 мин 2 мин 14.10.2023
Главное

Решение проблемы контекстного окна: StreamingLLM и феномен Attention Sinks 💡 0:00

Большие языковые модели (LLM) сталкиваются с фундаментальным ограничением: их способность к генерации текста ограничена размером контекстного окна, заложенным при обучении. Исследователи из MIT, Meta и Университета Карнеги — Меллон предложили элегантное и эффективное решение этой проблемы, получившее название StreamingLLM. В основе метода лежит открытие специфического свойства нейронных сетей, позволяющее моделям работать практически бесконечно долго без потери качества или необходимости дорогостоящих перевычислений.

Проблема «бесконечного» текста 1:20

При попытке использовать языковую модель за пределами её обучающего окна возникают серьёзные препятствия:

Существующий метод скользящего окна (sliding window attention) позволяет ограничить «память» модели лишь последними токенами, но он страдает от критического недостатка: как только самый первый токен выходит за пределы окна, накопленные в KV-кэше (Key-Value Cache) вычисления становятся невалидными. Это вынуждает систему производить полную пересборку контекста на каждом шаге генерации, что крайне медленно.

Открытие: Attention Sinks (Стоки внимания) 10:45

Исследователи обнаружили, что нейросети склонны концентрировать значительную часть «энергии» внимания на первых токенах последовательности. Этот феномен получил название Attention Sinks.

По мнению авторов исследования, модель во время обучения привыкает к тому, что первый токен (позиция 0) всегда присутствует в контексте. При расчёте функции softmax, которая должна суммировать веса внимания до единицы, модель «сбрасывает» излишки внимания, которые не несут смысловой нагрузки, именно на эти начальные позиции.

Метод StreamingLLM: сохранение «стоков» 18:47

Суть предложенного метода заключается в том, чтобы при использовании скользящего окна всегда сохранять начальные токены (Attention Sinks) в памяти, независимо от их удалённости от текущего токена.

  1. Комбинированная стратегия: Кэш состоит из двух частей: фиксированные токены «стоков» (начало) и «скользящее окно» из самых последних токенов.
  2. Эффективность: Этот подход позволяет использовать кэш KV, достигая ускорения до 22 раз по сравнению с методом полной перекомпутации.
  3. Гибкость: Эксперименты показали, что в качестве стоков могут выступать даже нейтральные символы (например, newline), если модель обучена воспринимать их как опорные точки.

Практическое внедрение 22:09

Авторы исследования предлагают способы адаптации моделей под этот метод:

Янник Килчер отмечает, что данный метод является интуитивно понятным и легко интегрируемым в современные фреймворки для инференса. В заключение он проводит параллели с моделью Big Bird, которая также использовала концепцию глобального внимания к первым токенам, но подчеркивает, что StreamingLLM даёт новое понимание того, как именно модели управляют своим вниманием при работе с бесконечными последовательностями.

💬 Цитаты

«Этот метод предлагает довольно простую идею решения проблемы, возникающей, когда вы пытаетесь запустить генеративную модель бесконечно долго.»

Янник Килчер 00:15

«В практике модель просто сбрасывает всё лишнее внимание на первые токены.»

Янник Килчер 12:36
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Attention Sinks
Специфические токены в начале последовательности, на которые модель «сбрасывает» излишки внимания.
KV Cache
Кэш ключей и значений, используемый для ускорения генерации текста в трансформерах.
Перплексия (Perplexity)
Метрика, отражающая уверенность модели в предсказании следующего токена.
Causal Attention Mask
Механизм внимания, ограничивающий модель только просмотром прошлых токенов.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект StreamingLLM Attention Sinks Yannic Kilcher Large Language Models