LlaMA-2: Open Foundation and Fine-Tuned Chat Models
[Статья][Код]
Не прошло и года (и даже половины года), как запрещенная в России экстремистская организация Meta выпустила новую версию всем полюбившейся LLM-ки: LLaMA-2.
Первая версия модели стала настоящим хитом среди исследователей, практиков, да и простых обывателей, будучи наиболее качественной языковой моделью среди находящихся в публичном доступе. LLaMA стала основой для множества чатботов, получила множество интеграций для запуска на чем угодно начиная от продвинутых GPU и заканчивая калькуляторами и микроволновками.
Нововведения
В плане архитектуры. и процедуры предобучения LLaMA-2 не претерпела значительных изменений.
Вместо стандартного Attention блока, где количество голов в Query, Key, Value проекциях одинаково, и каждому Query соотвествует отдельный Key и Value, используется grouped query attention c 8️⃣ проекциями вместо
Длину контекста увеличили до 4k токенов. RoPE позиционные энкодинги могут работать и с более длинным контекстом.
Данные отфильтровали более тщательно, увеличили в размере на 40% и обучили все модели на 2T токенов вместо 1T.
Итоговая модель на Common Sense Reasoning, Question Answering, World Knowledge, и т.д оказывается лучше прошлой версии и всех других моделей в открытом доступе, но уступает флагманским закрытым - GPT-4, Palm-2-L.
Куда более занимательна (ей же и уделено основное внимание) процедура instruction-finetuning и получения чатбота из языковой модели.
Instruction-finetuning процедура состоит из 2 стадий:
1️⃣ SFT - Supervised Finetuning
2️⃣ RLHF - Reinforcement Learning
Авторы собирают свой собственный датасет из инструкций, в котором акцент был сделан не на количество инструкций, а на их качество и разнообразие (актуальные работы утверждают, что для instruction finetuning данных много и не требуется). В полученном датасете 27540 инструкций.
На первом стадии (SFT) модель обучают на Causal LM, как на этапе преобучения на датасете инструкций. Промты и ответы контатенируют с одну последовательность, разделяя специальным токеном.
Данные для обучения reward модели собирали с помощью человекоподобных разметчиков. Каждый респодент выбирает между двумя вариантами с градацией разницы significantly better, better,
slightly better, or negligibly better/unsure. Для максимизации разнообразия варианты ответов генерируются случайно выбранными моделями из семейства LLaMA-2 с разной температурой.
[Статья][Код]
Не прошло и года (и даже половины года), как запрещенная в России экстремистская организация Meta выпустила новую версию всем полюбившейся LLM-ки: LLaMA-2.
Первая версия модели стала настоящим хитом среди исследователей, практиков, да и простых обывателей, будучи наиболее качественной языковой моделью среди находящихся в публичном доступе. LLaMA стала основой для множества чатботов, получила множество интеграций для запуска на чем угодно начиная от продвинутых GPU и заканчивая калькуляторами и микроволновками.
Нововведения
В плане архитектуры. и процедуры предобучения LLaMA-2 не претерпела значительных изменений.
Вместо стандартного Attention блока, где количество голов в Query, Key, Value проекциях одинаково, и каждому Query соотвествует отдельный Key и Value, используется grouped query attention c 8️⃣ проекциями вместо
num_heads (т.е каждая Key, Value активация спаривается с num_heads // 8 головами Query). Делать полный multi query с 1 проекций на все головы не стали по двум соображениям - 1) на инференсе они параллелизует вычисления между 8 GPU, и пришлось бы все равно копировать Key, Value между всеми устройствами 2) multi query просаживается по качеству по сравнению с исходным attention, а grouped query имеет примерно то же качество. Данное изменение полезно при авторегрессионой генерации с использованием Key, Value кэшей, так как приводит к заметной экономии в памяти (при той же длине последовательности экономия в num_heads // 8 рвз). Длину контекста увеличили до 4k токенов. RoPE позиционные энкодинги могут работать и с более длинным контекстом.
Данные отфильтровали более тщательно, увеличили в размере на 40% и обучили все модели на 2T токенов вместо 1T.
Итоговая модель на Common Sense Reasoning, Question Answering, World Knowledge, и т.д оказывается лучше прошлой версии и всех других моделей в открытом доступе, но уступает флагманским закрытым - GPT-4, Palm-2-L.
Куда более занимательна (ей же и уделено основное внимание) процедура instruction-finetuning и получения чатбота из языковой модели.
Instruction-finetuning процедура состоит из 2 стадий:
1️⃣ SFT - Supervised Finetuning
2️⃣ RLHF - Reinforcement Learning
Авторы собирают свой собственный датасет из инструкций, в котором акцент был сделан не на количество инструкций, а на их качество и разнообразие (актуальные работы утверждают, что для instruction finetuning данных много и не требуется). В полученном датасете 27540 инструкций.
На первом стадии (SFT) модель обучают на Causal LM, как на этапе преобучения на датасете инструкций. Промты и ответы контатенируют с одну последовательность, разделяя специальным токеном.
Данные для обучения reward модели собирали с помощью человекоподобных разметчиков. Каждый респодент выбирает между двумя вариантами с градацией разницы significantly better, better,
slightly better, or negligibly better/unsure. Для максимизации разнообразия варианты ответов генерируются случайно выбранными моделями из семейства LLaMA-2 с разной температурой.
🔥3
Обучают две reward модели:
1️⃣ Helpfullness (полезность)
2️⃣ Safety (безопасность)
Для моделирования reward используются предобученные чекпоинты с 1-го этапа.
В качестве функции потерь используется бинарная ранжировочная функция потерь из Instruct GPT с добавкой, зависящей от степени увереннности в ответе, чтобы разница в оценках для ответа с большей уверенностью была больше, чем для менее уверенного ответа.
Полученные reward модели сравнивают с теми, что получаются при обучении на других instruction датасетах и GPT4. И по отдельности reward модели оказываются лучше безйлайнов на своих и прочих датасетах (но для GPT4 нет данных на других instruction датасетах).
Затем исследуется scaling поведение от количества данных и размеров модели. Ожидаемо, большие модели и большее количество данных улучшает качество reward модели.
С ростом количества полученных данных от аннотаторов авторы итеративно дообучают reward модель (5-версий) с использованием Proximal Policy Optimization (PPO) и Rejection Sampling.
Нередко перед чатботом ставится задача следовать некоторой инструкции или парадигме поведения на протяжении нескольких раундов вопрос-ответ или всего диалога. Чтобы поддерживать в модели подобный сценарий поведения, авторы статьи используют метод GAtt (Ghost Attention). Ко всем запросам пользователя добавляется целевая инструкция, но чтобы не нарушать распределение данных (диалог, где пользователь повторяет одну и ту же инструкцию много раз смотрится неестественно), лосс от прошлых сообщений в диалоге не учитывается.
Данная модификация действительно способствует следованию ассистентом целевой инструкции.
1️⃣ Helpfullness (полезность)
2️⃣ Safety (безопасность)
Для моделирования reward используются предобученные чекпоинты с 1-го этапа.
В качестве функции потерь используется бинарная ранжировочная функция потерь из Instruct GPT с добавкой, зависящей от степени увереннности в ответе, чтобы разница в оценках для ответа с большей уверенностью была больше, чем для менее уверенного ответа.
Полученные reward модели сравнивают с теми, что получаются при обучении на других instruction датасетах и GPT4. И по отдельности reward модели оказываются лучше безйлайнов на своих и прочих датасетах (но для GPT4 нет данных на других instruction датасетах).
Затем исследуется scaling поведение от количества данных и размеров модели. Ожидаемо, большие модели и большее количество данных улучшает качество reward модели.
С ростом количества полученных данных от аннотаторов авторы итеративно дообучают reward модель (5-версий) с использованием Proximal Policy Optimization (PPO) и Rejection Sampling.
Нередко перед чатботом ставится задача следовать некоторой инструкции или парадигме поведения на протяжении нескольких раундов вопрос-ответ или всего диалога. Чтобы поддерживать в модели подобный сценарий поведения, авторы статьи используют метод GAtt (Ghost Attention). Ко всем запросам пользователя добавляется целевая инструкция, но чтобы не нарушать распределение данных (диалог, где пользователь повторяет одну и ту же инструкцию много раз смотрится неестественно), лосс от прошлых сообщений в диалоге не учитывается.
Данная модификация действительно способствует следованию ассистентом целевой инструкции.
Результаты
LlaMA-2-chat уверенно побеждает чатботов, основанных на моделях в открытом доступе, сопоставимых размеров, и с небольшим отрывом оказывается лучше (с точки зрения человеческих предпочтений) чем ChatGPT при оценке helpfulness на собранных Meta 4k инструкциях.
При обучении на safety данных, с ростом количества safety данных стабильно уменьшается доля небезопасных ответов без просадки по метрике полезности.
По safety (доле небезопасных ответов) и общему рейтингу полезности и безопасности LlaMA-2 чатботы опережают конкуретных открытых чатботов и ChatGPT/PaLM при оценке на собственном бенчмарке из 2k промптов.
Из дополнительных экспериментов авторы показывают, что модель можно научить действовать корректно подав инструкцию относящуюся к заданному времени (например, модель не будет знать ответ на то, кто побелил во Второй мировой войне, если бы запрос был адресован в 1940 году) и хорошо взаимодействует с ToolFormer.
Итог
LLaMA-2 - новая SOTA среди моделей в открытом доступе, и с учетом бешеного прогресса в области, большого интереса в DL-сообществе, за несколько дней с выпуска, народ уже успел изрядно поиграться с моделью, покрутить и повертеть ее. Данная работа - труд скорее инженерный, чем научный, но, безусловно, полезный и важный. Приятное отличие от первой версии, где месяцами можно было ждать одобрения на скачивание весов (хотя все кому надо воспользовались пиратками), в том, что запрос на LlaMA-2 удовлетворяется оперативно (обычно в течение пары часов).
LlaMA-2-chat уверенно побеждает чатботов, основанных на моделях в открытом доступе, сопоставимых размеров, и с небольшим отрывом оказывается лучше (с точки зрения человеческих предпочтений) чем ChatGPT при оценке helpfulness на собранных Meta 4k инструкциях.
При обучении на safety данных, с ростом количества safety данных стабильно уменьшается доля небезопасных ответов без просадки по метрике полезности.
По safety (доле небезопасных ответов) и общему рейтингу полезности и безопасности LlaMA-2 чатботы опережают конкуретных открытых чатботов и ChatGPT/PaLM при оценке на собственном бенчмарке из 2k промптов.
Из дополнительных экспериментов авторы показывают, что модель можно научить действовать корректно подав инструкцию относящуюся к заданному времени (например, модель не будет знать ответ на то, кто побелил во Второй мировой войне, если бы запрос был адресован в 1940 году) и хорошо взаимодействует с ToolFormer.
Итог
LLaMA-2 - новая SOTA среди моделей в открытом доступе, и с учетом бешеного прогресса в области, большого интереса в DL-сообществе, за несколько дней с выпуска, народ уже успел изрядно поиграться с моделью, покрутить и повертеть ее. Данная работа - труд скорее инженерный, чем научный, но, безусловно, полезный и важный. Приятное отличие от первой версии, где месяцами можно было ждать одобрения на скачивание весов (хотя все кому надо воспользовались пиратками), в том, что запрос на LlaMA-2 удовлетворяется оперативно (обычно в течение пары часов).
No Train No Gain: Revisiting Efficient Training
Algorithms For Transformer-based Language Models
[Статья][Код]
С течением времени запрос на обучение языковых моделях, основанных на Трансформерах, растет быстрее, чем имеющиеся в распоряжении вычислительные ресурсы. Потому и возникает запрос на эффективное обучение моделей.
Коллективный разум DL-сообщества предложил великое множество стратегий ускорения обучения: модификации процедуры обучения с использованием только части слоев, использованием части данных и алгоритмами отпимизации.
Каждая статья заявляет в той или иной форме, что предложенный метод эффективнее базового решения. Но что означает эффективнее? Ответ на этот вопрос не столь тривиален.
Сравнение эффективности алгоритмов
Количество шагов алгоритмов может быть плохим показателем - так как время одного шага может существенно различаться между алгоритмами. Алгоритм делающий в два раза меньше шагов, но с пятикратной стоимостью шага не слишком полезен.
Время работы зависит от используемой конфигурации вычислительных ресурсов.
Число операций с плавающей точкой зачастую не отражает специфику реализации математических операций на железе, время доступа к памяти, накладные расходы на коммуникацию….
Потому авторы предлагают использовать относительное время работы, привязанное к конкретному железу. Для некоторой конфигурации (видеокарты, CPU, ОЗУ) фиксируется вычислительный бюджет, и при запуске на другом сервере надо замерить отношение работы алгоритма к исходной конфигурации и с поправкой на этот фактор проводить все замеры. Т.е если новый сервер в 2 раза быстрее - то эксперимент должен быть в два раза короче.
Algorithms For Transformer-based Language Models
[Статья][Код]
С течением времени запрос на обучение языковых моделях, основанных на Трансформерах, растет быстрее, чем имеющиеся в распоряжении вычислительные ресурсы. Потому и возникает запрос на эффективное обучение моделей.
Коллективный разум DL-сообщества предложил великое множество стратегий ускорения обучения: модификации процедуры обучения с использованием только части слоев, использованием части данных и алгоритмами отпимизации.
Каждая статья заявляет в той или иной форме, что предложенный метод эффективнее базового решения. Но что означает эффективнее? Ответ на этот вопрос не столь тривиален.
Сравнение эффективности алгоритмов
Количество шагов алгоритмов может быть плохим показателем - так как время одного шага может существенно различаться между алгоритмами. Алгоритм делающий в два раза меньше шагов, но с пятикратной стоимостью шага не слишком полезен.
Время работы зависит от используемой конфигурации вычислительных ресурсов.
Число операций с плавающей точкой зачастую не отражает специфику реализации математических операций на железе, время доступа к памяти, накладные расходы на коммуникацию….
Потому авторы предлагают использовать относительное время работы, привязанное к конкретному железу. Для некоторой конфигурации (видеокарты, CPU, ОЗУ) фиксируется вычислительный бюджет, и при запуске на другом сервере надо замерить отношение работы алгоритма к исходной конфигурации и с поправкой на этот фактор проводить все замеры. Т.е если новый сервер в 2 раза быстрее - то эксперимент должен быть в два раза короче.
Архитектурные модификации
Layer stacking
Обучаем меньшую модель некоторое число шагов, а затем дублируем слои и обучаем далее уже вдвое большую модель.
Предполагаемый выигрыш за счет того, что меньшая модель делает большее число шагов при фиксированном размере.
Layer dropping
В архитектурах с residual connections в целях регуляризации иногда пропускают вычисления части слоев (например MHA или FeedForward block). Кроме того, сия процедура дает некоторую экономию в количестве вычислений. Обыкновенно в начале обучения
вероятность пропуска слоя равна нулю и с течением времени растет до некоторого максимального значения. Кроме того, вероятность растет от входа модели, к ее выходу (согласно народной мудрости в начале обучаются универсальные и общие представления, а ближе к выходу более специфичные).
Отбор данных
Selective backprop
На обратном проходе градиенты считаются только по примерам с наибольшим значением функции потерь. На прямом проходе считается лосс, а на обратном сэмплируются примеры отранжированные по недавней истории функции потерь.
RHO Loss
Предложенная в работе метод уменьшает вес примеров с большими значениями train лосса, так как они скорее всего соотвествуют шумным или некорректно размеченным данным.
Оптимизаторы
Lion
В качестве альтернативы общеупотребимому Adam-у в начале этого года был предложен отпимизатор Lion, найденный с помощью reinforcement learning. Теоретических гарантий на его превосходство нет, но в ряде работ утверждается, что он немного накидывает по сравнению с Adam. При этом сам алгоритм достаточно прост.
Sophia
Все новое - это хорошо забытое старое, как известно. Sophia - по существу тот же Adam, но использующий другой способ оценки кривизны для preconditioning. В исходной работе использовались две формулировки - через Hutchinson estimator и Gauss-Newton-Bartlett. В экспериментах здесь используется вторая, так как ее реализация была опубликована (и работала немного лучше в cтатье по Sophia).
Layer stacking
Обучаем меньшую модель некоторое число шагов, а затем дублируем слои и обучаем далее уже вдвое большую модель.
Предполагаемый выигрыш за счет того, что меньшая модель делает большее число шагов при фиксированном размере.
Layer dropping
В архитектурах с residual connections в целях регуляризации иногда пропускают вычисления части слоев (например MHA или FeedForward block). Кроме того, сия процедура дает некоторую экономию в количестве вычислений. Обыкновенно в начале обучения
вероятность пропуска слоя равна нулю и с течением времени растет до некоторого максимального значения. Кроме того, вероятность растет от входа модели, к ее выходу (согласно народной мудрости в начале обучаются универсальные и общие представления, а ближе к выходу более специфичные).
Отбор данных
Selective backprop
На обратном проходе градиенты считаются только по примерам с наибольшим значением функции потерь. На прямом проходе считается лосс, а на обратном сэмплируются примеры отранжированные по недавней истории функции потерь.
RHO Loss
Предложенная в работе метод уменьшает вес примеров с большими значениями train лосса, так как они скорее всего соотвествуют шумным или некорректно размеченным данным.
Оптимизаторы
Lion
В качестве альтернативы общеупотребимому Adam-у в начале этого года был предложен отпимизатор Lion, найденный с помощью reinforcement learning. Теоретических гарантий на его превосходство нет, но в ряде работ утверждается, что он немного накидывает по сравнению с Adam. При этом сам алгоритм достаточно прост.
Sophia
Все новое - это хорошо забытое старое, как известно. Sophia - по существу тот же Adam, но использующий другой способ оценки кривизны для preconditioning. В исходной работе использовались две формулировки - через Hutchinson estimator и Gauss-Newton-Bartlett. В экспериментах здесь используется вторая, так как ее реализация была опубликована (и работала немного лучше в cтатье по Sophia).
🔥2
Эксперименты
Для сравнения различных методик эффективного обучения авторы берут BERT и T5 модели, обучают на задачи MLM и span-corrupting MLM, соответственно. Для предобучения используется C4. Для каждого метода параметры подстраиваются на основе некоторой сетки.
Алгоритмы сравниваются на вычислительных бюджетах в 6,12,24 часов на одной RTX 3090 (A100 для Т5).
Для оценки качества модели BERT валидируют результат файтьюнинга BERT на задачах из GLUE/SuperGLUE бенчмарков. Кроме того, оценивается качество работы MLM на валидации для BERT и T5. И для T5 модель проверяют на Super Natural Instructions.
Как оказалось, ни один из перечисленных методов оптимизации процедуры обучения не дают стабильного выигрыша по сравнению со стандартной процедуро обучения (Adam без наворотов).
На коротких отрезках - 6-12 часов некоторый профит имеет место от Layer stacking, практически исчезающий при более длительном обучении. Остальные алгоритмы из рассмотренных не дают выигрыша против бейзлайна ни при каких бюджетах обучения. Методы отбора данных при заданном ограничении на время работают хуже и на MLM и на GLUE.
Новомодные отпимизаторы (Lion и T5) сходятся хуже по времени со сравнению с baseline.
Итоги
Результат данной статьи в очередной раз подтверждает важность аккуратного и честного сравнения методов друг с другом. Статьи по Deep Learning выходят все чаще и чаще, потому спрос на ‘санитаров’ леса будет только расти с течением времени.
Наука на то и наука, что фальсифицируема.
Для сравнения различных методик эффективного обучения авторы берут BERT и T5 модели, обучают на задачи MLM и span-corrupting MLM, соответственно. Для предобучения используется C4. Для каждого метода параметры подстраиваются на основе некоторой сетки.
Алгоритмы сравниваются на вычислительных бюджетах в 6,12,24 часов на одной RTX 3090 (A100 для Т5).
Для оценки качества модели BERT валидируют результат файтьюнинга BERT на задачах из GLUE/SuperGLUE бенчмарков. Кроме того, оценивается качество работы MLM на валидации для BERT и T5. И для T5 модель проверяют на Super Natural Instructions.
Как оказалось, ни один из перечисленных методов оптимизации процедуры обучения не дают стабильного выигрыша по сравнению со стандартной процедуро обучения (Adam без наворотов).
На коротких отрезках - 6-12 часов некоторый профит имеет место от Layer stacking, практически исчезающий при более длительном обучении. Остальные алгоритмы из рассмотренных не дают выигрыша против бейзлайна ни при каких бюджетах обучения. Методы отбора данных при заданном ограничении на время работают хуже и на MLM и на GLUE.
Новомодные отпимизаторы (Lion и T5) сходятся хуже по времени со сравнению с baseline.
Итоги
Результат данной статьи в очередной раз подтверждает важность аккуратного и честного сравнения методов друг с другом. Статьи по Deep Learning выходят все чаще и чаще, потому спрос на ‘санитаров’ леса будет только расти с течением времени.
Наука на то и наука, что фальсифицируема.
Графики и картинки из статей лучше прикреплять
Anonymous Poll
31%
Отдельными постами (как раньше)
31%
Комментариями к постам (как в последнем посте)
38%
Без разницы
Retentive Network: A Successor to Transformer for Large Language Models
[Статья][Код]
Каждый исследователь или практик алкает следующих качеств от архитектуры нейронной сети:
1️⃣ Эффективное обучение
2️⃣ Хорошее качество
3️⃣ Дешевый инференс
Архитектура Трансформер, доминирующая во многих областях и приложениях Deep Learning, удовлетворяет первым двух из требований, но, к сожалению, довольно тяжеловесна и прожорлива до вычислений.
Множество работ предлагали различные альтернативы и приближения attention, но ни один из них не стал общеупотребимым на практике. Аналогично, варианты с внедрением рекуррентных механизмов и state-space моделей (S4, H3, Hyena) хоть и получили признание, но не составили полноценной конкуренции attention.
И в этой статье авторы делают довольно громкое заявление о том, что они смогли воплотить невозможный треугольник в реальность, создав архитектуру, обладающую всеми желаемыми аттрибутами - Retentive Network (RetNet). Все прошлые архитектуры можно теперь со спокойной душой отправить на свалку истории.
[Статья][Код]
Каждый исследователь или практик алкает следующих качеств от архитектуры нейронной сети:
1️⃣ Эффективное обучение
2️⃣ Хорошее качество
3️⃣ Дешевый инференс
Архитектура Трансформер, доминирующая во многих областях и приложениях Deep Learning, удовлетворяет первым двух из требований, но, к сожалению, довольно тяжеловесна и прожорлива до вычислений.
Множество работ предлагали различные альтернативы и приближения attention, но ни один из них не стал общеупотребимым на практике. Аналогично, варианты с внедрением рекуррентных механизмов и state-space моделей (S4, H3, Hyena) хоть и получили признание, но не составили полноценной конкуренции attention.
И в этой статье авторы делают довольно громкое заявление о том, что они смогли воплотить невозможный треугольник в реальность, создав архитектуру, обладающую всеми желаемыми аттрибутами - Retentive Network (RetNet). Все прошлые архитектуры можно теперь со спокойной душой отправить на свалку истории.
👍4
Метод
Предложенный механизм рассматривается в качестве альтернативы стандартному Attention в трансформер блоках, то есть чередуется с feedforward слоями и применяется на последовательностях токенов.
Retention является по существу версией RNN, c обновляемым вектором состояния, где каждое последующее состояние получается как взвешенная (матрично) сумма прошлого состояния и текущего элемента последовательности, и с выходной проекцией, превращающей скрытое состояние в выход слоя. Все проекции - взвешивающая скрытое состояние, текущий элемент последовательности и выход, получаются линейным преобразованием входа - полный аналог query, key, value проекций в Attention. В частном случае необучаемых проекций архит
Далее авторы диагонализуют матрицу, преобразующую скрытое состояние, перепараметризуют веса и приходят в итоге к форме, удобной для вычисления. Полученная операция включает в себе attention без softmax, causal masking, и экспоненциальное затухание по длине последовательности.
Замечательным свойством retention является возможность представить его в 3 ипостасях:
1️⃣ Параллельная версия (оптимальная для обучения на GPU)
2️⃣ Последовательная версия (бюджетная на инференсе)
3️⃣ Чанковая реализация (trade-off между двумя первыми)
В первой версии одновременно обрабатывается вся последовательность, во второй один элемент, в третьей - блок некоторого размера.
Далее, как и в оригинальном attention, предлагается многоголовая версия Retention. Однако, если обучаемыми разными головами паттерны в MultiHeadAttention имеют случайное поведение, то здесь разные головы отвечают разным масштабам. Коэффициент затухания γ определяет характерный масштаб (длину контекста), с которой работает данная голова. На выход MultiHeadRetention довешивается GroupNorm.
Для повышения выразительности операции выход MultiHeadRetention умножается на
Предложенный механизм рассматривается в качестве альтернативы стандартному Attention в трансформер блоках, то есть чередуется с feedforward слоями и применяется на последовательностях токенов.
Retention является по существу версией RNN, c обновляемым вектором состояния, где каждое последующее состояние получается как взвешенная (матрично) сумма прошлого состояния и текущего элемента последовательности, и с выходной проекцией, превращающей скрытое состояние в выход слоя. Все проекции - взвешивающая скрытое состояние, текущий элемент последовательности и выход, получаются линейным преобразованием входа - полный аналог query, key, value проекций в Attention. В частном случае необучаемых проекций архит
Далее авторы диагонализуют матрицу, преобразующую скрытое состояние, перепараметризуют веса и приходят в итоге к форме, удобной для вычисления. Полученная операция включает в себе attention без softmax, causal masking, и экспоненциальное затухание по длине последовательности.
Замечательным свойством retention является возможность представить его в 3 ипостасях:
1️⃣ Параллельная версия (оптимальная для обучения на GPU)
2️⃣ Последовательная версия (бюджетная на инференсе)
3️⃣ Чанковая реализация (trade-off между двумя первыми)
В первой версии одновременно обрабатывается вся последовательность, во второй один элемент, в третьей - блок некоторого размера.
Далее, как и в оригинальном attention, предлагается многоголовая версия Retention. Однако, если обучаемыми разными головами паттерны в MultiHeadAttention имеют случайное поведение, то здесь разные головы отвечают разным масштабам. Коэффициент затухания γ определяет характерный масштаб (длину контекста), с которой работает данная голова. На выход MultiHeadRetention довешивается GroupNorm.
Для повышения выразительности операции выход MultiHeadRetention умножается на
swish(XW_G) - gating механизм, и пропускается через выходную проекцию W_O.Эксперименты
Предложенную архитектуру RetNet обучают на задаче CausalLM на смеси из The Pile, C4, The Stack. В качестве бейзлайна берут стандартный трансформер.
Для оценки качества модели используют 0-shot и few-shot бенчмарки из LM Evaluation Harness.
Retention Network достигает меньшей перплексии на валидации по сравнению с Transformer на размерах 2.7B, 6.7B, и по форме кривой авторы утверждают, что Retention Network масштабируется лучше трансформера (сильноватое заявление на основе графика из 3-х точек). Аналогично, Retention Network превосходит Transformer на 0-shot и few-shot.
Далее следуют замеры расхода памяти и скорости инференса, и RetNet оказывается быстрее и экономичнее по расходу GPU RAM даже оптимизированной версии Flash Attention на тритоне.
Расход памяти, при работе в рекуррентном режиме не растет с размером последовательности, как и скорость генерации одного токена не зависит от длины последовательности.
При сравнении на ряде бенчмарков по Language modelling RetNet превосходит другие альтернативы трансформера - State-Space модели, RWKV, линейный трансформер.
Удивительно, что нет сравнения на Long Range Arena, которое является признанным мерилом способности сети работать с длинным контекстом, каким бы данный бенчмарк ограниченным не несовершенным ни был.
Авторы проводят ablation компонент архитектуры и все компоненты - GroupNorm, multi-head, экспоненциальный спад γ с разным коэффициентом в разных головах оказывается важен. Хоть разница, не сказать, чтобы кардинальная для каждой из компонент.
Предложенную архитектуру RetNet обучают на задаче CausalLM на смеси из The Pile, C4, The Stack. В качестве бейзлайна берут стандартный трансформер.
Для оценки качества модели используют 0-shot и few-shot бенчмарки из LM Evaluation Harness.
Retention Network достигает меньшей перплексии на валидации по сравнению с Transformer на размерах 2.7B, 6.7B, и по форме кривой авторы утверждают, что Retention Network масштабируется лучше трансформера (сильноватое заявление на основе графика из 3-х точек). Аналогично, Retention Network превосходит Transformer на 0-shot и few-shot.
Далее следуют замеры расхода памяти и скорости инференса, и RetNet оказывается быстрее и экономичнее по расходу GPU RAM даже оптимизированной версии Flash Attention на тритоне.
Расход памяти, при работе в рекуррентном режиме не растет с размером последовательности, как и скорость генерации одного токена не зависит от длины последовательности.
При сравнении на ряде бенчмарков по Language modelling RetNet превосходит другие альтернативы трансформера - State-Space модели, RWKV, линейный трансформер.
Удивительно, что нет сравнения на Long Range Arena, которое является признанным мерилом способности сети работать с длинным контекстом, каким бы данный бенчмарк ограниченным не несовершенным ни был.
Авторы проводят ablation компонент архитектуры и все компоненты - GroupNorm, multi-head, экспоненциальный спад γ с разным коэффициентом в разных головах оказывается важен. Хоть разница, не сказать, чтобы кардинальная для каждой из компонент.