Низкоранговая адаптация (LoRA)

Низкоранговая адаптация (LoRA, Low-Rank Adaptation) — это параметрически эффективная техника дообучения, которая радикально снижает стоимость и требования к оборудованию при кастомизации крупной модели. Вместо обновления всех миллиардов исходных весов модели при дообучении (что требует хранения градиентов и состояний оптимизатора для каждого параметра — крайне ресурсоёмко по памяти), LoRA замораживает всю исходную модель и внедряет небольшие обучаемые "низкоранговые" матрицы рядом с определёнными слоями (обычно слоями внимания); обучаются только эти крошечные добавленные матрицы, тогда как подавляющая часть исходной модели остаётся полностью нетронутой. Математически техника использует наблюдение о том, что обновления весов, необходимые для адаптации модели к новой задаче, как правило, имеют низкий "внутренний ранг" — то есть их можно хорошо аппроксимировать произведением двух гораздо меньших матриц, сокращая число обучаемых параметров в 100-1000 раз по сравнению с полным дообучением при сопоставимой производительности задачи. Это чрезвычайно важно для разработчиков SaaS и независимых разработчиков, потому что превращает дообучение из задачи "нужен кластер GPU A100 и выделенная ML-команда" в нечто выполнимое на одной потребительской видеокарте или скромном облачном инстансе. Конкретный пример: дообучение модели с открытыми весами на 7 миллиардов параметров (например, Mistral-7B) методом полного дообучения требует хранения градиентов и состояния оптимизатора для всех 7 миллиардов параметров — часто 60-100+ ГБ видеопамяти GPU. С LoRA обучается всего несколько миллионов параметров (внедрённые низкоранговые матрицы, часто менее 1% от размера исходной модели), что комфортно помещается в менее чем 16 ГБ VRAM — одна потребительская видеокарта — при этом создаётся небольшой файл "адаптера" (часто всего несколько десятков мегабайт), который можно загрузить поверх замороженной базовой модели во время инференса. Это также открывает практичный продуктовый паттерн: SaaS-компания может обучить десятки лёгких LoRA-адаптеров для разных клиентов или сценариев использования (по одному на голос бренда, по одному на отраслевую вертикаль) и подключать/отключать их во время инференса поверх единой общей базовой модели, вместо хранения десятков полных дообученных копий модели. QLoRA расширяет этот подход, дополнительно квантуя замороженную базовую модель, делая дообучение доступным даже на скромном оборудовании. LoRA-адаптеры также компонуемы способами, недоступными полному дообучению: некоторые фреймворки поддерживают объединение нескольких LoRA-адаптеров во время инференса или динамическую замену активного адаптера для каждого запроса в зависимости от вызывающего клиента или контекста, поскольку каждый адаптер — это лишь небольшой набор дополнительных матриц, наложенных на одну и ту же замороженную базовую модель, а не отдельный полноценный чекпоинт модели. Для мультитенантной SaaS-платформы, предлагающей функцию "настройте тон/поведение AI под ваш бренд", это делает LoRA-адаптеры на клиента по-настоящему практичной архитектурой — обучение лёгкого адаптера для каждого клиента на его собственных примерах без затрат на хранение и обслуживание десятков полных дублирующих копий модели.

Похожие термины

Ещё термины: Основы ИИ