Адаптация низкого ранга (LoRA)
Материал из MachineLearning.
| | Статья написана с использованием LLM GPT-4 и проверена участником Artem Mukovnin 21:42, 19 июля 2026 (MSD) |
Адаптация низкого ранга (англ. Low-Rank Adaptation, LoRA) — метод эффективного переноса обучения (fine-tuning) больших нейронных сетей, предложенный Эдвардом Ху (Edward J. Hu) и коллегами из Microsoft в 2021 году. Статья «LoRA: Low-Rank Adaptation of Large Language Models»[1] стала фундаментальной работой в области больших языковых моделей (LLM), кардинально снизив вычислительные требования к дообучению моделей с миллиардами параметров.
Суть метода заключается в «замораживании» весов предобученной модели и внедрении в её архитектуру небольших обучаемых матриц разложения низкого ранга. Это позволяет сократить количество обучаемых параметров в 10 000 раз и потребление GPU-памяти в 3 раза по сравнению с полным дообучением, не создавая дополнительной задержки при инференсе. LoRA стал стандартом де-факто для адаптации LLM и генеративных моделей изображений (например, Stable Diffusion), фактически демократизировав процесс тонкой настройки ИИ и сделав его доступным на потребительском оборудовании.
Содержание |
Предыстория: проблема дообучения больших моделей
Эпоха больших языковых моделей
К 2020–2021 годам масштаб трансформерных моделей достиг беспрецедентных размеров. Модель GPT-3 (2020) содержала 175 миллиардов параметров, а последующие модели (PaLM, Chinchilla) измерялись сотнями миллиардов.
Полное дообучение (full fine-tuning) таких моделей на специфических задачах (медицинские консультации, юридический анализ, специфические стили текста) требовало колоссальных ресурсов. Для обновления весов 175-миллиардной модели в формате float32 требовалось не только загрузить сами веса (около 700 ГБ), но и хранить оптимизатор (например, Adam), градиенты и активации, что суммарно превышало 1–2 ТБ видеопамяти. Это делало дообучение эксклюзивной прерогативой корпораций с огромными вычислительными кластерами.
Ранние методы PEFT
Для решения этой проблемы исследователи начали разрабатывать методы эффективного переноса обучения (Parameter-Efficient Fine-Tuning, PEFT):
- Адаптеры (Adapter Layers, 2019). Хоулсби и коллеги предложили вставлять небольшие полносвязные слои между слоями трансформера. Хотя это снижало число параметров, добавляло последовательные вычисления, что увеличивало задержку при инференсе (inference latency).
- Prefix-tuning (2021). Ли и Лян предложили обучать непрерывные векторы-префиксы, добавляемые к входным эмбеддингам. Метод был эффективен для генерации текста, но сложен в настройке и нестабилен при обучении.
- Prompt tuning (2021). Упрощение prefix-tuning, где обучаются только виртуальные токены.
Все эти методы имели компромиссы: либо они ухудшали скорость инференса, либо были сложны в реализации, либо уступали в качестве полному дообучению. Требовался метод, который сочетал бы эффективность, простоту и отсутствие накладных расходов при выводе.
Авторы и мотивация
Команда Microsoft
Работа была выполнена группой исследователей Microsoft, в которую вошли Эдвард Ху (Edward J. Hu), Йелонг Шень (Yelong Shen), Филлип Уоллис (Phillip Wallis), Зюань Аллен-Чжу (Zeyuan Allen-Zhu), Юаньчжи Ли (Yuanzhi Li), Шиань Ван (Shean Wang), Лу Ван (Lu Wang) и Вэйчжу Чен (Weizhu Chen).
Эдвард Ху, ведущий автор, на момент публикации был старшим исследователем в Microsoft Research. Группа специализировалась на оптимизации и сжатии нейронных сетей, что позволило им взглянуть на проблему дообучения через призму теории матриц и линейной алгебры.
Гипотеза о низком ранге
Ключевой инсайт авторов заключался в следующем наблюдении: при дообучении большой модели на конкретной задаче матрица обновлений весов $\Delta W$ (разница между весами дообученной и исходной модели) имеет очень низкий «внутренний ранг» (intrinsic rank).
Проще говоря, хотя модель имеет миллиарды параметров, для адаптации к новой задаче ей фактически требуется изменить лишь небольшое количество скрытых «направлений» в пространстве параметров. Авторы предположили, что $\Delta W$ можно аппроксимировать произведением двух матриц гораздо меньшего размера без потери качества.
Принцип работы
Математическое обоснование
В стандартном подходе при дообучении мы обновляем матрицу весов $W_0 \in \mathbb{R}^{d \times k}$ предобученного слоя:
- $W' = W_0 + \Delta W$
В LoRA матрица $\Delta W$ представляется в виде разложения низкого ранга:
- $\Delta W = B A$
где $B \in \mathbb{R}^{d \times r}$ и $A \in \mathbb{R}^{r \times k}$, а ранг $r \ll \min(d, k)$.
Таким образом, прямое распространение сигнала через слой выглядит следующим образом:
- $h = W_0 x + \Delta W x = W_0 x + B A x$
где $x$ — входной вектор, $h$ — выходной. Во время обучения $W_0$ замораживается и не получает градиентов. Обучаются только матрицы $A$ и $B$.
Выбор ранга и масштабирование
Ранг $r$ является главным гиперпарметром LoRA. На практике авторы показали, что значение $r$ от 4 до 64 более чем достаточно даже для моделей с сотнями миллиардов параметров.
Кроме того, результат умножения $BA$ масштабируется на коэффициент $\frac{\alpha}{r}$, где $\alpha$ — константа (обычно равная $r$ или удвоенному $r$). Это позволяет фиксировать масштаб обновлений при изменении ранга $r$, что упрощает подбор гиперпараметров.
Куда внедряется LoRA
В архитектуре трансформера матрицы $W$ используются в проекциях запроса (Query), ключа (Key), значения (Value) и в полносвязных слоях (Feed-Forward Networks). Эксперименты Ху и коллег показали, что внедрение LoRA только в матрицы внимания (Query и Value) дает результаты, сопоставимые с полным дообучением, при минимальном числе параметров. Однако современные реализации (например, в библиотеке Hugging Face PEFT) часто применяют LoRA ко всем линейным слоям для максимального качества.
Преимущества метода
Отсутствие задержки при инференсе
Это главное преимущество LoRA перед адаптерными слоями (Adapter Layers). Поскольку обновление весов является аддитивным ($W_0 + BA$), после обучения матрицу $BA$ можно просто сложить с исходной матрицей $W_0$.
В результате модель для инференса не имеет никаких дополнительных слоев или вычислительных веток. Скорость генерации текста (tokens per second) у модели с LoRA и у полностью дообученной модели абсолютно идентична.
Резкое снижение требований к памяти
Поскольку градиенты вычисляются только для матриц $A$ и $B$, объем памяти, необходимой для хранения состояния оптимизатора (Adam), сокращается пропорционально. Для модели GPT-3 (175B) при $r=4$ количество обучаемых параметров составляет всего около 0.01% от общего числа (около 35 миллионов параметров вместо 175 миллиардов). Это позволило дообучать гигантские модели на одной потребительской видеокарте (например, NVIDIA RTX 3090/4090 с 24 ГБ памяти).
Модульность
Поскольку веса LoRA ($A$ и $B$) отделены от базовой модели, они весят очень мало (от нескольких мегабайт до сотен мегабайт). Это позволяет:
- Хранить тысячи различных адаптеров LoRA для одной базовой модели.
- Динамически переключаться между разными задачами (например, между «медицинским ассистентом» и «переводчиком») на лету, просто подгружая разные матрицы $BA$, без перезагрузки базовой модели.
Вариации и развития метода
Успех LoRA породил целое семейство методов, расширяющих его возможности:
QLoRA (Quantized LoRA)
Предложен Тимом Деттмерсом (Tim Dettmers) и коллегами в 2023 году[2]. QLoRA сочетает LoRA с 4-битным квантованием базовой модели (используя формат NF4).
- Принцип: Базовая модель сжимается до 4 бит, что радикально экономит VRAM. LoRA-адаптеры обучаются в формате float16 или bfloat16.
- Результат: Метод позволил дообучить модель LLaMA-65B на одной видеокарте с 48 ГБ памяти без потери качества по сравнению с 16-битным LoRA.
AdaLoRA (Adaptive LoRA)
Предложен в 2023 году. Вместо фиксированного ранга $r$ для всех слоев, AdaLoRA динамически распределяет «бюджет ранга» между слоями трансформера. Более важным слоям выделяется больший ранг, менее важным — меньший, вплоть до полного отключения. Это позволяет еще сильнее сократить число параметров.
DoRA (Weight-Decomposed Low-Rank Adaptation)
Предложен в 2024 году. DoRA разлагает вес предобученной модели на величину (magnitude) и направление (direction). LoRA применяется только для обучения направления, а величина обучается отдельно. Это позволяет LoRA точнее имитировать поведение полного дообучения, особенно в задачах, требующих глубокого изменения знаний модели.
LoRA для генерации изображений
В 2022–2023 годах LoRA стал стандартом для тонкой настройки моделей диффузии (Stable Diffusion). Метод DreamBooth в связке с LoRA позволил пользователям обучать модель на 5–10 фотографиях конкретного человека или объекта, чтобы затем генерировать его в любых стилях и контекстах.
Критика и ограничения
Проблема выбора ранга
Хотя авторы утверждают, что малый ранг ($r=4$ или $8$) работает хорошо, на практике для сложных задач (внедрение больших объемов новых фактических знаний, сложное логическое рассуждение) малого ранга может быть недостаточно. Слишком низкий ранг создает «узкое горлышко» (information bottleneck), не позволяя модели усвоить сложную информацию. Подбор ранга остается эмпирической задачей.
Ограничения в емкости знаний
LoRA отлично подходит для изменения «стиля» или «формата» ответов модели (например, заставить её говорить как пират или отвечать в формате JSON). Однако, если задача требует кардинального изменения фактических знаний (например, обучение на свежих научных статьях, которых не было в предобучении), LoRA может уступать полному дообучению или методам, вроде RAG (Retrieval-Augmented Generation), так как низкоранговые матрицы физически не могут вместить огромный объем новой информации.
Нестабильность при очень больших рангах
Парадоксально, но увеличение ранга $r$ до больших значений (например, $r > 128$) иногда приводит к ухудшению качества и нестабильности обучения по сравнению с умеренными значениями. Это явление до конца не изучено и является активной областью исследований.
Наследие и влияние
Демократизация ИИ
LoRA совершил революцию в экосистеме открытого ИИ. До его появления сообщество независимых разработчиков и исследователей было ограничено в возможностях использования открытых моделей (таких как LLaMA, Falcon, Mistral). LoRA позволил энтузиастам, студентам и стартапам создавать узкоспециализированные модели на обычных игровых видеокартах.
Платформа Hugging Face наполнилась тысячами моделей LoRA для самых разных задач: от написания кода на редких языках программирования до имитации литературных стилей.
Стандарт индустрии
К 2024 году LoRA стал неотъемлемой частью стандартного стека технологий машинного обучения. Библиотека `peft` от Hugging Face, реализующая LoRA и его вариации, была загружена десятки миллионов раз. Практически все современные фреймворки для обучения LLM (Axolotl, Unsloth, LLaMA-Factory) используют LoRA как метод по умолчанию.
Влияние на аппаратное обеспечение
Популярность LoRA и QLoRA изменила рынок потребительского железа. Спрос на видеокарты с большим объемом памяти (24 ГБ и выше) со стороны энтузиастов ИИ резко возрос, поскольку именно этот параметр стал главным ограничением для локального дообучения моделей.
См. также
- Перенос обучения
- Трансформер (модель)
- Большие языковые модели
- Квантование нейронных сетей
- Stable Diffusion
- Hugging Face
- Регуляризация
Примечания
↑ Hu E. J. et al. LoRA: Low-Rank Adaptation of Large Language Models // ICLR. — 2022. ↑ Dettmers T. et al. QLoRA: Efficient Finetuning of Quantized LLMs // NeurIPS. — 2024. ↑ Houlsby N. et al. Parameter-Efficient Transfer Learning for NLP // ICML. — 2019. ↑ Li X. L., Liang P. Prefix-Tuning: Optimizing Continuous Prompts for Generation // ACL. — 2021. ↑ Zhang Q. et al. AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning // ICLR. — 2023.
Литература
- Hu E. J. et al. LoRA: Low-Rank Adaptation of Large Language Models // ICLR. — 2022.
- Dettmers T. et al. QLoRA: Efficient Finetuning of Quantized LLMs // NeurIPS. — 2024.
- Zhang Q. et al. AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning // ICLR. — 2023.
- Liu S. et al. DoRA: Weight-Decomposed Low-Rank Adaptation // ICML. — 2024.
- Houlsby N. et al. Parameter-Efficient Transfer Learning for NLP // ICML. — 2019.
- Vaswani A. et al. Attention Is All You Need // NeurIPS. — 2017.

