Метод LLaMA Pro: прогрессивное расширение нейросетей без потери старых знаний

Yannic Kilcher 35,4 тыс. 31 мин 5 мин 07.01.2024
Главное

Как расширить знания большой языковой модели без риска стереть всё, чему она научилась ранее? В своем новом видео популярный ИИ-разработчик и блогер Янник Килхер (Yannic Kilcher) подробно разбирает научную статью, посвященную методу LLaMA Pro. Этот подход предлагает оригинальное решение проблемы «катастрофического забывания» с помощью прогрессивного расширения блоков (Block Expansion), позволяя безболезненНО обучать ИИ новым специализированным навыкам, таким как программирование и математика.

🧠 Суть метода LLaMA Pro и проблема «катастрофического забывания» 0:00

В области машинного обучения давно существует фундаментальная проблема: когда предобученную большую языковую модель (LLM) начинают дообучать на новых специфических данных, она быстро теряет свои прежние базовые навыки. Этот феномен называется катастрофическим забыванием (catastrophic forgetting). Как отмечает Янник Килхер, авторы исследуемой статьи предлагают новый этап в жизненном цикле нейросетей — так называемое «пост-предобучение» (post-pre-training). Эта стадия располагается строго между классическим базовым предобучением на гигантском корпусе текстов и последующей настройкой инструкций (instruction tuning).

В качестве экспериментальной основы авторы взяли базовую модель LLaMA 2 с 7 миллиардами параметров (7B). По общему правилу, заложенные в модель данные напрямую определяют её итоговые возможности. Если обычная LLaMA 2 сильна в понимании естественного языка и абстрактном мышлении, она заметно проседает в специализированных задачах. Специализированные же модели (например, Code LLaMA) великолепно пишут код, но теряют общие языковые компетенции. Целью создателей LLaMA Pro было объединить эти два мира, расширив возможности базовой модели в математике и программировании, но сохранив её первоначальный потенциал.

🛠️ Математика «кувалды»: как работают новые слои 7:10

Современная архитектура трансформеров, по ироничному замечанию Килхера, в 2023–2026 годах свелась к простому правилу: «давайте повторим один и тот же блок много раз и зальем туда побольше данных». Модель LLaMA 2 состоит из набора таких повторяющихся трансформерных блоков, содержащих механизмы внимания (attention) и полносвязные слои (feed-forward).

Метод Block Expansion устроен следующим образом:

Однако простое копирование блоков резко изменило бы выходной сигнал всей сети, нарушив её работу. Чтобы этого избежать, авторы задействовали механизм остаточных связей (residual connections). Сигнал в трансформере разделяется на две ветви: одна идет в обход блока в неизменном виде, а вторая проходит через вычисления внутри блока, после чего результаты складываются. Если заставить новый блок выдавать строго нулевой результат, то на выходе мы получим точную копию входного сигнала (тождественную функцию).

Для обнуления выхода нового блока авторы применили прямолинейное решение: они просто обнулили финальные матрицы весов (output weight matrices) как в модуле внимания, так так и в полносвязном слое. Янник Килхер называет этот подход «ударом кувалдой» по матрице весов, однако признает, что на этапе инициализации это позволяет идеально сохранить структуру сети. По мере последующего обучения веса новых слоев начинают меняться, сдвигаться от нуля и активно участвовать в обработке новых специализированных данных.

🧐 Скепсис ведущего: почему метод может давать сбой 10:11

Несмотря на впечатляющие результаты исследования, Янник Килхер выражает определенный скептицизм относительно теоретической базы авторов. Авторы статьи утверждают, что их метод симулирует человеческий мозг, способный осваивать новые навыки без ущерба для старых. Блогер с этим не согласен, приводя бытовую аналогию: если вы в детстве играли на музыкальном инструменте, а затем забросили его на много лет, вам потребуется немало времени на восстановление мышечной памяти и воспоминаний о песнях. При этом он признает, что нейросети забывают информацию в разы быстрее человека.

Главный повод для сомнений Килхера — отсутствие в архитектуре механизма динамической маршрутизации сигнала. Нейросеть не способна распознать, к какому домену (старому или новому) относится входящий запрос; абсолютно любой сигнал проходит через новые добавленные слои. Поскольку веса новых блоков после обучения перестают быть нулевыми, они неизбежно искажают обработку даже старых, базовых запросов.

По мнению Килхера, предложенный метод работает успешно только по двум причинам:

  1. Новый датасет (код и математика) имеет колоссальное пересечение (overlap) с теми данными, на которых LLaMA изначально обучалась.
  2. Авторы провели глубокую эмпирическую оценку и тонкую настройку параметров, что компенсировало архитектурные недостатки.

Ведущий сомневается, что метод Block Expansion покажет себя так же хорошо при радикальной смене домена знаний (например, если обучать языковую модель чисто медицинским или узкобиологическим данным) без подмешивания старой информации в обучающую выборку.

💻 Масштабы обучения, загадочные GPU и чужие идеи 13:07

Процесс расширения LLaMA Pro сложно назвать легковесным решением, которое можно запустить на домашнем компьютере, вроде адаптеров LoRA. Новые блоки обучались на корпусе из 80 миллиардов токенов, состоящем из открытых датасетов с кодом и математическими формулами. Для этого потребовалось 2830 GPU-часов. В статье утверждается, что вычисления велись на 16 видеокартах Nvidia H800 в течение примерно 7 дней. Килхер признался, что на момент записи ролика не сталкивался с моделью H800 и предположил, что авторы могли иметь в виду флагманские ускорители H100 (стоит отметить, что карты H800 действительно существуют и представляют собой урезанные версии H100, поставляемые на китайский рынок из-за экспортных ограничений США).

Янник также обратил внимание на то, что концепция расширения слоев через тождественные копии не нова. Подобный подход описывался год-два назад в статье "Stage-wise Training for Transformer Language Models". Однако там исследователи обнуляли масштабирующие параметры в модулях LayerNorm. Авторы LLaMA Pro попытались применить этот трюк, но обнаружили, что для архитектуры LLaMA он неэффективен, поэтому перешли к обнулению выходных весов матриц. Блогер с иронией комментирует данный факт, отмечая, что это нормальная практика в научном сообществе — взять чужую отправную точку и адаптировать под свои нужды.

Отдельной порции критики Килхера удостоилось математическое оформление статьи. Авторы вводят сложные переменные для описания разделения слоев: общее число блоков $L$, целевое число $L'$, количество групп $n$ и число копируемых блоков $P$. При этом переменная $L'$ далее в тексте вообще не используется, параметры выбора $n$ не определены, а $P$ в экспериментах всегда равен единице (то есть копируется строго по одному верхнему блоку из каждой группы). Кроме того, фраза авторов об «интерливинге» (чередовании блоков) противоречит их собственному утверждению о том, что блоки просто складываются поверх каждой группы, что вызвало искреннее замешательство ведущего.

📊 Результаты и выводы 28:43

В ходе экспериментов архитектура исходной модели была расширена с 32 до 40 блоков (8 групп увеличились с 4 до 5 блоков за счет копирования). Результаты тестов подтвердили жизнеспособность подхода:

Янник Килхер резюмирует, что увеличение числа параметров закономерно ведет к улучшению результатов. Несмотря на теоретические вопросы к методу (включая возможное нарушение баланса масштабирования сигналов при обнулении весов), качественные эмпирические тесты доказывают, что Block Expansion — это рабочий и эффективный инструмент для расширения возможностей ИИ в современных реалиях.

💬 Цитаты

«Машинное обучение в 2023–2024 годах стало просто правилом: давайте повторим эту штуку кучу раз и засунем туда данные.»

Янник Килхер 06:45

«Это своего рода кувалда, которую вы применяете к матрице весов, просто говоря: так, всё это уходит в ноль.»

Янник Килхер 19:56
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Пост-предобучение
Промежуточный этап настройки языковой модели между обучением на гигантском общем корпусе текстов и финальной подгонкой под инструкции пользователя.
Катастрофическое забывание
Тенденция нейросети полностью и резко терять информацию, усвоенную ранее, при обучении новым данным.
Остаточные связи
Архитектурный элемент нейросетей, пропускающий входной сигнал напрямую к выходу слоя в обход основных вычислений для улучшения сходимости.
Тождественная функция
Математическая функция, которая всегда возвращает то же самое значение, которое было использовано в качестве ее аргумента (f(x) = x).
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект LLaMA Pro Block Expansion Янник Килхер Nvidia H800