Что такое LoRA — дообучение модели, где учится 0,01% весов

Смотри, какая цифра: чтобы дообучить GPT-3 под свою задачу через LoRA, авторы метода учили в 10 000 раз меньше параметров, чем при обычном дообучении. Памяти видеокарты понадобилось втрое меньше.
Не на 10% меньше. В десять тысяч раз.
Звучит как жульничество. Разберёмся, в чём фокус — потому что фокус честный, и именно благодаря ему ты можешь дообучить модель на арендованной видеокарте за пару долларов.
Что такое LoRA простыми словами
LoRA — это Low-Rank Adaptation, «адаптация низкого ранга». Способ дообучить модель, не трогая саму модель.
Обычное дообучение работает в лоб: берём все веса модели и двигаем каждый. У модели на 7 миллиардов параметров это 7 миллиардов чисел, которые надо держать в памяти, считать по ним градиенты и хранить состояние оптимизатора. Отсюда и требования, от которых больно: десятки гигабайт видеопамяти на модель, которую ты вообще-то просто хотел научить своему стилю.
LoRA заходит иначе. Базовые веса замораживаются — их вообще не двигают. Рядом пристраиваются две маленькие матрицы, и учатся только они. При работе модель складывает: свой замороженный ответ плюс поправку от этих матриц.
Метафора простая. Обычное дообучение — переписать весь учебник. LoRA — оставить учебник как есть и вложить в него тонкую пачку стикеров с поправками. Читаешь учебник вместе со стикерами — получаешь другой результат.
Как две маленькие матрицы заменяют одну большую
Тут вся математика, и она короткая.
Поправка к большой матрице весов — тоже матрица, ровно такого же огромного размера. Хранить её целиком глупо. Ключевое наблюдение авторов: эта поправка избыточна — в ней мало настоящей новизны, её можно разложить на две узкие матрицы.
Представь лист 1000×1000 — это миллион клеток. А теперь возьми две полоски: 1000×8 и 8×1000. Перемножь их — получишь лист того же размера 1000×1000. Но хранил и учил ты всего 16 тысяч чисел вместо миллиона.
Восьмёрка здесь — это ранг (r), главная настройка LoRA. Типичное значение как раз 8. Меньше ранг — меньше обучаемых чисел и грубее поправка; больше — тоньше и дороже.
Ещё одна экономия: LoRA обычно навешивают не на всю модель, а только на блоки внимания. Практика показывает, что этого достаточно.
Почему это меняет расклад для тебя
Экономия памяти — только половина истории. Вторая половина интереснее.
Адаптер весит мегабайты, а не гигабайты. Результат обучения — не новая модель на 14 ГБ, а файлик с двумя матрицами. Его можно выложить, скачать, отправить другу.
Адаптеры меняются как насадки. База одна, адаптеров сколько угодно: один под твой стиль писем, другой под разметку JSON, третий под конкретного персонажа. Держишь в памяти одну модель и подключаешь нужный. Именно так устроены библиотеки LoRA-стилей для картиночных моделей — та самая мешанина стилей, которую ты видел, это адаптеры к одной базе.
Скорость не страдает. Перед выкладыванием адаптер можно слить с базовыми весами обратно в одну матрицу. После слияния модель работает ровно с той же скоростью, что и оригинал: никакой дополнительной задержки на инференсе.
Именно поэтому LoRA живёт в мире открытых весов. Чтобы навесить стикеры, учебник надо сначала открыть — с закрытой моделью, которую ты видишь только через API, этот фокус не провернуть.
Где ты с ней столкнёшься
Три ситуации, где слово LoRA выскочит само.
Первая — картиночные модели. Скачиваешь модель, а к ней десяток «стилей» по 50–150 МБ. Это LoRA-адаптеры.
Вторая — локальные языковые модели. Гоняешь модель на своей машине (как запустить ИИ-модель локально) и хочешь научить её формату своих ответов. LoRA — единственный реалистичный путь без аренды фермы.
Третья — сервисы дообучения. Многие «файнтюны» под капотом — это LoRA, просто тебе не говорят.
И сразу главная развилка, чтобы не потратить выходные зря. LoRA учит манере: формату, стилю, тону, структуре ответа. Она плохо запихивает в модель факты — твою базу знаний, свежие документы, цены на товары. Для фактов нужен другой инструмент, и разница разобрана отдельно: RAG или дообучение.
Правило простое: «отвечай вот в таком формате» — LoRA. «Знай содержимое вот этих документов» — не LoRA.
Сколько данных нужно для LoRA?
Меньше, чем кажется: часто хватает нескольких сотен хороших примеров. Качество важнее количества — сто вычищенных пар «запрос → идеальный ответ» дадут больше, чем десять тысяч случайных. Плохие примеры модель выучит так же старательно, как хорошие.
LoRA портит базовую модель?
Нет. Базовые веса заморожены и не меняются вообще — адаптер лежит отдельным файлом. Удалил файл — вернулась исходная модель. Это одна из причин, почему с LoRA не страшно экспериментировать.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





