Как мы можем эффективно развертывать большие языковые модели в потоковых приложениях? Эта статья об искусственном интеллекте представляет фреймворк StreamingLLM для бесконечной длины последовательности.

Эффективное применение больших языковых моделей в потоковых приложениях рассмотрение фреймворка StreamingLLM для обработки бесконечных последовательностей

“`

Крупные модели языка (LLM) все чаще используются для работы с приложениями обработки естественного языка, такими как автозавершение кода, ответы на вопросы, составление краткого содержания документов и системы диалога. Предварительно обученные LLM должны быть способны выполнять расширенную последовательностную генерацию точно и быстро для достижения своего полного потенциала. Идеальный помощник ChatBot, например, может надежно редактировать контент протяженных чатов, продолжавшихся целый день. Для обобщения на последовательности большей длины, чем на которой они были предварительно обучены, например, 4K для Llama-2, LLM очень сложно. Из-за окна внимания во время предварительного обучения LLM ограничены.

Хотя проделано значительное количество попыток увеличить размер этого окна и повысить эффективность обучения и вывода для длинных входных данных, необходимо пересмотреть допустимую длину последовательности, что предотвращает постоянное внедрение. Исследователи из Института технологии Массачусетса, Meta AI и Карнеги-Меллонского университета начинают обсуждение идеи потокового применения LLM в этом исследовании и ставят следующий вопрос: При использовании LLM для бесконечных входных потоков возникают две основные проблемы:

1. LLM, основанные на трансформаторах, кэшируют состояния ключа и значения (KV) всех предыдущих токенов на этапе декодирования, как показано на рисунке 1(a), что может привести к чрезмерному использованию памяти и увеличению задержки декодирования.

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

Рисунок 1 сравнивает StreamingLLM с предыдущими методиками. T-й токен (T >> L) предсказывается языковой моделью, которая была предварительно обучена на текстах длиной L. (a) Плотное внимание имеет растущую емкость кэша и временную сложность O(T^2). Когда длина текста превышает длину предварительного обучения, его производительность ухудшается. (b) Оконное внимание хранит KV последних L токенов в своем кэше. Несмотря на хорошие результаты вывода, оно быстро ухудшается, когда удаляются ключи и значения начальных токенов. Для каждого нового токена (c) Ползущее окно с рекомпьютеризацией восстанавливает состояния KV с использованием L последних токенов. Несмотря на то, что оно отлично справляется с обработкой длинных текстов, из-за квадратичной сложности O(T L^2) и квадратичного внимания в повторном вычислении контекста, оно работает невероятно медленно. (d) Для стабильного вычисления внимания StreamingLLM сохраняет “источник внимания” (несколько начальных токенов) вместе с последними токенами. Он эффективно и последовательно работает с длинными текстами. Для вычисления показателей шокирующего спутанности модель Llama-2-13B используется для первой книги (65 тыс. токенов) в тестовом наборе PG-19.

Внимание окна – очевидная стратегия, которая сохраняет смещаемое окно фиксированного размера на состояниях KV самых последних токенов (рисунок 1b). Даже просто удаление KV первого токена приводит к схлопыванию модели после превышения длины последовательности емкости кэша, даже если гарантируется постоянное использование памяти и производительность декодирования после первого заполнения кэша. Значительно более медленной тактикой является ползущее окно с рекомпьютеризацией (рисунок 1c), которое восстанавливает состояния KV последних токенов для каждого созданного токена. Вычисление квадратичного внимания в пределах его окна делает эту технику значительно медленнее, даже если она работает хорошо, что делает ее непригодной для потоковых приложений в реальном мире.

Они обнаруживают интересное явление авторегрессионных LLM для объяснения неудачи оконного внимания: начальные токены получают удивительно высокие оценки внимания, независимо от их релевантности для задачи языкового моделирования. Эти токены называются “источниками внимания”. Они получают значительные оценки внимания, имея мало семантической ценности. Софтмакс-операция, требующая, чтобы оценки внимания составляли единицу для всех контекстных токенов, указывается как причина. В результате модель должна присваивать эти дополнительные значения внимания, чтобы их сумма составляла единицу, даже когда текущему запросу не соответствует множество ранее показанных токенов.

“`

Начальные маркеры используются как впадины внимания по простой причине: они видны практически всем последующим маркерам из-за природы авторегрессивного моделирования языка, что делает их тренировку проще. Они предлагают StreamingLLM, простую и эффективную архитектуру, которая позволяет LLM, подготовленным с ограниченным окном внимания, работать с текстом неограниченной продолжительности без повторного настройки, основываясь на вышеупомянутых открытиях. Поскольку впадины внимания имеют высокие значения внимания, StreamingLLM использует это свойство, чтобы сохранить достаточно регулярное распределение оценок внимания. StreamingLLM поддерживает ключи и значения скользящего окна и маркеры впадин внимания (требуются только четыре начальных маркера) для привязки вычисления внимания и стабилизации работы модели.

Модели, такие как Llama-2-B, MPT-B, Falcon-B и PythiaB могут точно представлять 4 миллиона маркеров с помощью StreamingLLM, а, возможно, и больше. StreamingLLM достигает ускорения до 22,2 по сравнению с единственной практической базовой моделью со скользящим окном и повторным вычислением, реализуя потоковое использование LLM. Наконец, они показывают, что языковые модели могут быть предварительно обучены с требованием только одного маркера впадины внимания для потокового развертывания, подтверждая свою гипотезу о маркерах впадин внимания. Они предлагают реализовать выбранный маркер впадины внимания как дополнительный обучаемый маркер в начале каждого образца обучения. Введение этого единственного маркера впадины поддерживает работу модели в потоковых случаях, предварительно обучая языковые модели с 160 миллионами параметров с нуля. Это в отличие от обычных моделей, которые требуют внесения нескольких начальных маркеров впадин для сохранения той же степени производительности.