LORA

Для большой и «делающей всё одинаково плохо» базовой модели,
требования и к железу, и к качеству обучающего датасета при fine
tuning дообучении заметно ниже, чем при полноценной тренировке.
Настолько, что это уже вполне осуществимо на очень продвинутом
пользовательском компьютере. Но всё равно ресурсов нужно много,
даже для обучения только одного слоя языковой модели. Плюс, на
выходе получается полноценная изменённая копия модели, в
смысле размера: гигабайты весов.
А можно обучать совсем «на минималках»? Меньше, чем слой? Можно.
Для этого придумали концепцию LORA — "Низкоранговая адаптация больших языковых
моделей".
Идея заключается в том, чтобы тренировать не сами веса модели, а
изменения весов. Мы не трогаем параметры. Вместо этого, для каждого
слоя мы добавляем небольшую матрицу произвольной (но небольшой)
размерности, которая описывает только изменения. По сути, патч. И
тренируем только эти дополнительные параметры при обучении.
Оказывается, этого более чем достаточно для полноценной адаптации
базовой модели к задаче.
Плюсов море. Это очень экономный способ тренировки. «Дообучение для
бедных». Снижает требования к видеопамяти в несколько раз по
сравнению с полноценным обучением. Настолько, что достаточно уже
самой обычной пользовательской видеокарты. На выходе получается
небольшая по размерам заплатка (несколько десятков мегабайт для
модели размером в сотни гигабайт) которую легко хранить в памяти и
на диске. Применение LORA обратимо: изменения весов можно применять
и отменять прямо в процессе работы модели, гибко подстраивая модель
под задачу.
Интересно, что триумф концепции «базовая модель» + «точная
настройка» явно демонстрирует пока не столько семейство GPT моделей
(на слуху пока один ChatGPT, результат натаскивания базовой модели
на диалог), сколько «пущенная в народ» Stable Diffusion. Вот там
просто буйство адаптаций основы (которая умеет рисовать всё, но
плохо) под узкие задачи. Никто не будет мучить «ванильную» SD и
заставлять её хорошо рисовать в аниме стиле. Вместо этого загрузят
дообученную модель под нужный стиль аниме рисунка, а сверху добавят
LORA для отображения конкретного персонажа. И никаких лишних
пальцев.


Это тем интереснее, что концепция LORA изначально придумывалась и
обкатывалась именно на GPT, и в SD применяется (если не ошибаюсь)
именно к «трансформерной» части сети — слоям внимания.
Я к чему: не стоит переживать, что ChatGPT сейчас плохо сочиняет анекдоты про Штирлица. Как раньше
переживали, что у SD Гитлер выходит не похожий на себя. Стоит
подождать полноценной утечки весов хорошей GPT модели «в народ»
(уже, если не ошибаюсь) и через каких пол года всё будет по
другому: пользователь будет загружать дообученную «под генерацию
юмора» модель и сверху ставить LORA на «короткие анекдоты про
Штирлица» (которую, если энтузиаст, сам же и обучил на прошлой
неделе). Вот тогда и посмотрим, как у трансформеров с юмором на
самом деле.
|
</> |