tariel.ge › Полезное: бесплатные книги › ИИ изнутри: от нейрона до своей моделиБесплатно · автор Тариел Бежанидзе
← ИИ изнутри ЛИСТ 13Языковые моделиРЕВ. 1
Глава 13 · Языковые модели

LoRA: дообучить модель на своём ноутбуке

Обучить 7B целиком — нужны десятки гигабайт видеопамяти. Обучить крошечную добавку к ней — хватит ваших шестнадцати. Как устроен приём и как им пользоваться.

Идея

Из главы 03: при обучении помимо весов надо хранить градиенты и состояния оптимизатора — втрое-вчетверо больше памяти, чем занимает модель. Для 7B это десятки гигабайт. У вас 16.

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

что происходит
обычное дообучение:   W  →  W'        (меняем 7 млрд чисел)

LoRA:                 W  +  A·B       (W заморожен,
                      ↑     ↑          учим только A и B)
                   не трогаем    несколько миллионов чисел

Хитрость в том, что A и B — узкие матрицы. Если исходная матрица 4096×4096 (это 16 миллионов чисел), то A размером 4096×8 и B размером 8×4096 дают вместе 65 тысяч — в 250 раз меньше. А их произведение имеет тот же размер, что исходная матрица, и потому может к ней прибавляться.

Почему это вообще работает

Наблюдение, лежащее в основе: изменения, нужные для адаптации модели к новой задаче, оказываются простыми по структуре. Их можно описать гораздо меньшим числом параметров, чем саму модель. Это не доказано строго, но подтверждается на практике повсеместно.

Что вы получаете

Полное дообучение 7BLoRA к 7B
ВидеопамятьДесятки ГБУмещается в 16 ГБ
ВремяДни на нескольких картахЧасы на одной
Размер результатаВся модель заново, гигабайтыФайл в десятки мегабайт
Можно ли отключитьНетДа — просто не подключать
Сколько штукОднаМного, переключаемые
КачествоЭталонБлизко для узких задач
Самое ценное свойство

Результат — маленький отдельный файл. Одна базовая модель плюс несколько адаптеров: один под ваш стиль текстов, другой под строгий формат вывода, третий под грузинский. Переключаются мгновенно, места почти не занимают.

Ещё экономнее: квантованный вариант

Можно пойти дальше: держать замороженную базовую модель в сжатом виде (4 бита, как в главе 10 книги «ИИ»), а обучать адаптер в обычной точности. Это то, что обычно называют QLoRA.

Экономия огромная: 7B в четырёх битах занимает около 4 ГБ вместо 14, и на ваших 16 ГБ остаётся достаточно места для самого обучения. Именно этот вариант делает дообучение на ноутбуке реальным.

Главные настройки

ПараметрЧто значитС чего начать
rank (r)Ширина добавки. Больше — выразительнее и тяжелее8 или 16. Для стиля хватает 8, для сложного — 32
alphaНасколько сильно добавка влияетОбычно берут вдвое больше rank
target modulesК каким матрицам подключатьНачните с матриц внимания; шире — сильнее, но дороже
learning rateРазмер шага из главы 04Для LoRA заметно больше, чем при полном дообучении
epochsСколько раз пройти данные1–3. Больше — почти гарантированное переобучение
batch + накоплениеПриём из главы 04 для экономии памятиМаленький батч, накопление 4–8 шагов
Конкретные числа зависят от инструмента

Значения по умолчанию в разных библиотеках различаются, и они меняются от версии к версии. Берите значения из документации того инструмента, которым будете пользоваться, — таблица выше про то, что настраивать и в какую сторону, а не про точные цифры.

Данные важнее всего остального

Здесь ровно как в главе 05: результат определяется данными, а не настройками.

Сколько примеровЧто получится
Меньше 50Почти ничего. Либо не изменится, либо сломается
100–500Стиль и формат схватываются
1000–5000Уверенный результат для узкой задачи
Больше 10000Хорошо, но собрать качественно — уже работа
Правило, которое экономит недели

Двести отличных примеров лучше пяти тысяч посредственных. Модель выучит ровно то, что вы показали, включая ваши опечатки, непоследовательность формата и случайно затесавшийся мусор. Час на вычитку данных даёт больше, чем день на подбор параметров.

Формат данных — те же пары «задание — ответ», что в главе 12. Важно, чтобы ответы были единообразны: если в половине примеров вы пишете маркированным списком, а в половине сплошным текстом, модель выучит случайность.

Порядок работы

  1. Сформулируйте, что именно хотите изменить. «Пусть будет лучше» — не цель. «Пусть отвечает в стиле моих учебников: короткие абзацы, без вводных слов, с примерами из электроники» — цель.
  2. Соберите 200–500 примеров в едином формате. Это основная работа.
  3. Отложите 10% на проверку и не показывайте их при обучении.
  4. Обучите с небольшим rank и одной эпохой. Посмотрите на результат.
  5. Сравните с базовой моделью на одних и тех же вопросах.
  6. Меняйте что-то одно за раз и сравнивайте по тому же списку.

Что пойдёт не так

СимптомПричинаРешение
Не хватает видеопамятиСлишком большой батч или длинные примерыБатч 1 плюс накопление; укоротить примеры; сжатая база
Ничего не изменилосьМало данных, мало эпох, слишком маленький шагБольше данных; проверить, что адаптер вообще подключён
Дословно повторяет обучающие примерыПереобучение — глава 05Меньше эпох, меньше rank, больше данных
Стала хуже в обычных задачахЗабывание: адаптер перетянул одеялоМеньше rank и alpha, меньше эпох
Выдаёт бессвязноеСлишком большой шаг обученияУменьшить в несколько раз
Ошибка в середине обученияДлинный пример не влезОграничить длину, отфильтровать данные

Реалистичные ожидания для вашей машины

Размер моделиНа 16 ГБ видеопамяти
1–3BСвободно, быстро. Хорошо для тренировки навыка
7–8BРеально в сжатом варианте. Основной рабочий размер
14BВозможно в сжатом, с короткими примерами и маленьким батчем
32B и вышеНет
Начните с маленькой

Первую LoRA сделайте на модели 1–3B, даже если она вам не нужна. Цикл пройдёт за десятки минут, вы увидите весь процесс целиком и набьёте руку на настройках. Начинать сразу с 7B — значит по три часа ждать результата каждой ошибки.

Проверьте, что поняли

Что дальше

Языковые модели закончились. Переходим к совершенно другому классу — тому, что рисует картинки. Механизм там неожиданно изящный.

Глава13 — LoRA: дообучить модель на своём ноутбуке
БлокЯзыковые модели
Далее14 — Диффузия: как из шума получается картинка
Ревизия1
↑ Оглавление Предыдущая глава← 12 · Дообучение: что на самом деле меняют SFT, RLHF и DPO Следующая глава14 · Диффузия: как из шума получается картинка →

Бесплатная книга · tariel.ge · версии инструментов и команды проверяйте в документации проектов

Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.