Если вам доводилось общаться с каким-либо разговорным роботом с искусственным интеллектом, вы наверняка можете вспомнить некоторые крайне «разочаровывающие» моменты. Например, ключевые моменты, упомянутые вами в разговоре накануне, были полностью забыты ИИ...
Это связано с тем, что большинство нынешних студентов, имеющих степень магистра права, могут запоминать лишь ограниченный контекст.
Представьте себе, если бы ИИ-помощник в чате мог бы контекстуально ссылаться на разговоры, произошедшие несколько недель или месяцев назад, или если бы вы могли попросить ИИ-ассистента подвести итог отчету длиной в тысячи страниц. Разве это не завидно?
Чтобы LLM запоминал больше и лучше, исследователи постоянно усердно работают. Недавно исследователи из MIT, Meta AI и CMU предложили метод под названием «StreamingLLM», позволяющий языковым моделям плавно обрабатывать бесконечный текст.
* Бумажный адрес:
адрес проекта:
Принцип работы StreamingLLM заключается в идентификации и сохранении исходных токенов, привязанных к внутренним «приемникам внимания» модели для ее рассуждений. В сочетании с кэшем последних токенов StreamingLLM ускоряет вывод в 22 раза без ущерба для точности. Всего за несколько дней проект набрал 2,5 тыс. звезд на платформе GitHub:
В частности, StreamingLLM позволяет языковой модели точно запоминать счет приземления в последней игре, имя новорожденного, длительный контракт или содержание дебатов, точно так же, как память ИИ-помощника была модернизирована для безупречной обработки. более тяжелые нагрузки.
Далее давайте посмотрим на технические детали.
Инновационный метод
Обычно LLM ограничен окном внимания при предварительном обучении. Хотя ранее была проделана большая работа по расширению размера этого окна и повышению эффективности обучения и вывода, приемлемая длина последовательности LLM по-прежнему ограничена, что не подходит для постоянного развертывания.
В этой статье исследователи впервые представили концепцию потоковых приложений LLM и задали вопрос: «Можно ли развернуть LLM с бесконечно длинными входными данными без ущерба для эффективности и производительности?»
При применении LLM к бесконечно длинным входным потокам возникают две основные проблемы:
На этапе декодирования LLM на основе преобразователя кэширует статус ключа и значения (KV) всех предыдущих токенов, как показано на рисунке 1 (a), что может вызвать чрезмерное использование памяти и увеличить задержку декодирования;
Возможность экстраполяции длины существующих моделей ограничена, то есть, когда длина последовательности превышает размер окна внимания, установленный во время предварительного обучения, ее производительность снизится.
Интуитивный метод называется Window Attention (рисунок 1 b). Этот метод поддерживает только скользящее окно фиксированного размера для состояния KV самого последнего токена, хотя он может гарантировать, что он может поддерживать стабильное использование памяти и скорость декодирования, но как только длина последовательности превысит размер кэша или даже просто вытеснит KV первого токена, модель рухнет. Другой метод — пересчитать скользящее окно (показано на рисунке 1 c). Этот метод восстанавливает состояние KV последнего токена для каждого сгенерированного токена. Несмотря на высокую производительность, он требует расчета вторичного внимания внутри окна. результат значительно медленнее, что не идеально для реальных потоковых приложений.
В процессе понимания провала внимания к окну исследователи обнаружили интересный феномен авторегрессии LLM: как показано на рисунке 2, большое количество оценок внимания присваивается исходным токенам, независимо от того, связаны ли эти токены с задачей моделирования языка. . .
Исследователи называют эти токены «пулами внимания»: хотя они лишены смыслового значения, они занимают большое количество точек внимания. Исследователи связывают это явление с Softmax (который требует, чтобы сумма оценок внимания всех токенов контекста была равна 1). Даже если текущий запрос не имеет сильного соответствия среди многих предыдущих токенов, модели все равно необходимо передать это ненужное внимание. Значения где-то присваиваются так, что их сумма равна 1. Причина, по которой исходный токен становится «пулом», интуитивно понятна: из-за особенностей авторегрессионного языкового моделирования исходный токен виден почти всем последующим токенам, что облегчает их обучение в качестве пула внимания.
Основываясь на вышеизложенном, исследователи предложили StreamingLLM — простую и эффективную структуру, которая позволяет модели внимания, обученной с использованием ограниченного окна внимания, обрабатывать бесконечно длинный текст без тонкой настройки.
StreamingLLM использует тот факт, что пулы внимания имеют высокие значения внимания, и сохранение этих пулов внимания может сделать распределение оценок внимания близким к нормальному распределению. Таким образом, StreamingLLM необходимо только сохранить значение KV токена пула внимания (достаточно только 4 начальных токенов) и значение KV скользящего окна, чтобы закрепить расчет внимания и стабилизировать производительность модели.
Используя StreamingLLM, можно надежно моделировать модели, включая Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B и Pythia [2.9,6.9,12] B. Моделирование 4 миллион токенов или даже больше.
По сравнению с единственным возможным базовым вариантом, пересчитывающим скользящее окно, StreamingLLM работает в 22,2 раза быстрее без ущерба для производительности.
Оценка
В экспериментальном сеансе, как показано на рисунке 3, с текстом, охватывающим 20 тысяч токенов, сложность StreamingLLM сравнима с базовым уровнем Oracle (пересчет скользящего окна). В то же время, когда длина входных данных превышает окно предварительного обучения, плотное внимание выйдет из строя, а когда длина входных данных превышает размер кэша, внимание к окну столкнется с проблемой, что приведет к удалению исходного токена.
Рисунок 5 дополнительно подтверждает, что StreamingLLM может надежно обрабатывать текст необычных размеров, включая более 4 миллионов токенов, охватывая различные семейства моделей и размеры. Сюда входят Лама-2-[7,13,70] В, Сокол-[7,40] В, Пифия-[2.8,6.9,12] В и MPT-[7,30] В.
Впоследствии исследователи подтвердили гипотезу о «пуле внимания» и доказали, что языковая модель может быть предварительно обучена и требует только токена пула внимания во время потокового развертывания. В частности, они рекомендуют добавлять дополнительный обучаемый токен в начале всех обучающих образцов в качестве назначенного пула внимания. Предварительно обучив языковую модель со 160 миллионами параметров с нуля, исследователи продемонстрировали, что этот метод может поддерживать производительность модели. Это резко контрастирует с нынешними языковыми моделями, которые требуют повторного введения нескольких начальных токенов в качестве пулов внимания для достижения того же уровня производительности.
Наконец, исследователи сравнили задержку декодирования и использование памяти StreamingLLM со скользящим окном перерасчета и протестировали на одном графическом процессоре NVIDIA A6000 с использованием моделей Llama-2-7B и Llama-2-13B. Как показано на рисунке 10, по мере увеличения размера кэша скорость декодирования StreamingLLM увеличивается линейно. Задержка декодирования последнего увеличивается по квадратичной кривой. Эксперименты доказали, что StreamingLLM обеспечивает впечатляющее ускорение: скорость каждого токена увеличивается до 22,2 раза.
Более подробную информацию об исследовании можно найти в оригинальной статье.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Благодаря поддержке до 4 миллионов контекстов токенов и скорости вывода в 22 раза, StreamingLLM стал популярным и получил 2,5 тыс. звезд на GitHub.
Редактор: Яичный соус
Если вам доводилось общаться с каким-либо разговорным роботом с искусственным интеллектом, вы наверняка можете вспомнить некоторые крайне «разочаровывающие» моменты. Например, ключевые моменты, упомянутые вами в разговоре накануне, были полностью забыты ИИ...
Это связано с тем, что большинство нынешних студентов, имеющих степень магистра права, могут запоминать лишь ограниченный контекст.
Представьте себе, если бы ИИ-помощник в чате мог бы контекстуально ссылаться на разговоры, произошедшие несколько недель или месяцев назад, или если бы вы могли попросить ИИ-ассистента подвести итог отчету длиной в тысячи страниц. Разве это не завидно?
Чтобы LLM запоминал больше и лучше, исследователи постоянно усердно работают. Недавно исследователи из MIT, Meta AI и CMU предложили метод под названием «StreamingLLM», позволяющий языковым моделям плавно обрабатывать бесконечный текст.
Принцип работы StreamingLLM заключается в идентификации и сохранении исходных токенов, привязанных к внутренним «приемникам внимания» модели для ее рассуждений. В сочетании с кэшем последних токенов StreamingLLM ускоряет вывод в 22 раза без ущерба для точности. Всего за несколько дней проект набрал 2,5 тыс. звезд на платформе GitHub:
Инновационный метод
Обычно LLM ограничен окном внимания при предварительном обучении. Хотя ранее была проделана большая работа по расширению размера этого окна и повышению эффективности обучения и вывода, приемлемая длина последовательности LLM по-прежнему ограничена, что не подходит для постоянного развертывания.
В этой статье исследователи впервые представили концепцию потоковых приложений LLM и задали вопрос: «Можно ли развернуть LLM с бесконечно длинными входными данными без ущерба для эффективности и производительности?»
При применении LLM к бесконечно длинным входным потокам возникают две основные проблемы:
На этапе декодирования LLM на основе преобразователя кэширует статус ключа и значения (KV) всех предыдущих токенов, как показано на рисунке 1 (a), что может вызвать чрезмерное использование памяти и увеличить задержку декодирования;
Возможность экстраполяции длины существующих моделей ограничена, то есть, когда длина последовательности превышает размер окна внимания, установленный во время предварительного обучения, ее производительность снизится.
В процессе понимания провала внимания к окну исследователи обнаружили интересный феномен авторегрессии LLM: как показано на рисунке 2, большое количество оценок внимания присваивается исходным токенам, независимо от того, связаны ли эти токены с задачей моделирования языка. . .
Основываясь на вышеизложенном, исследователи предложили StreamingLLM — простую и эффективную структуру, которая позволяет модели внимания, обученной с использованием ограниченного окна внимания, обрабатывать бесконечно длинный текст без тонкой настройки.
StreamingLLM использует тот факт, что пулы внимания имеют высокие значения внимания, и сохранение этих пулов внимания может сделать распределение оценок внимания близким к нормальному распределению. Таким образом, StreamingLLM необходимо только сохранить значение KV токена пула внимания (достаточно только 4 начальных токенов) и значение KV скользящего окна, чтобы закрепить расчет внимания и стабилизировать производительность модели.
Используя StreamingLLM, можно надежно моделировать модели, включая Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B и Pythia [2.9,6.9,12] B. Моделирование 4 миллион токенов или даже больше.
По сравнению с единственным возможным базовым вариантом, пересчитывающим скользящее окно, StreamingLLM работает в 22,2 раза быстрее без ущерба для производительности.
Оценка
В экспериментальном сеансе, как показано на рисунке 3, с текстом, охватывающим 20 тысяч токенов, сложность StreamingLLM сравнима с базовым уровнем Oracle (пересчет скользящего окна). В то же время, когда длина входных данных превышает окно предварительного обучения, плотное внимание выйдет из строя, а когда длина входных данных превышает размер кэша, внимание к окну столкнется с проблемой, что приведет к удалению исходного токена.
Наконец, исследователи сравнили задержку декодирования и использование памяти StreamingLLM со скользящим окном перерасчета и протестировали на одном графическом процессоре NVIDIA A6000 с использованием моделей Llama-2-7B и Llama-2-13B. Как показано на рисунке 10, по мере увеличения размера кэша скорость декодирования StreamingLLM увеличивается линейно. Задержка декодирования последнего увеличивается по квадратичной кривой. Эксперименты доказали, что StreamingLLM обеспечивает впечатляющее ускорение: скорость каждого токена увеличивается до 22,2 раза.