Low‑Rank Adaptation (LoRA)
Low-Rank Adaptation (LoRA) — это метод параметрически-эффективного дообучения (PEFT), который позволяет адаптировать большие языковые модели (LLM) к новым задачам с минимальными вычислительными затратами. Технология была впервые представлена в работе Эдварда Ху (Edward Hu) и его коллег в 2021 году[1].
Полное дообучение (full fine-tuning) крупных моделей, таких как LLaMA или GPT, требует огромных ресурсов, что делает его недоступным для большинства исследователей и разработчиков. LoRA решает эту проблему, позволяя дообучать лишь малую часть параметров модели, при этом сохраняя высокое качество и производительность, сопоставимые с полным дообучением[2].
Принцип работы
Основная идея LoRA заключается в том, чтобы не изменять исходные веса предобученной модели, а добавить к ним небольшую «корректирующую» матрицу. Вместо того чтобы напрямую обучать огромную матрицу весов `W`, LoRA представляет её изменение как произведение двух небольших матриц малого ранга.
Формально, если исходная матрица весов слоя `W_0` имеет размер `d × k`, её обновление представляется как `ΔW = BA`, где `B` — матрица размерности `d × r`, а `A` — матрица размерности `r × k`. Ранг `r` является гиперпараметром и значительно меньше (`r << d, k`). В процессе дообучения замораживаются исходные веса `W_0`, а обучаются только матрицы `A` и `B`. Итоговая матрица весов вычисляется как `W = W_0 + BA`.
Это позволяет сократить количество обучаемых параметров в тысячи раз. Например, при дообучении GPT-3 (175 млрд параметров) LoRA уменьшает число обучаемых параметров в 10 000 раз и снижает требования к GPU-памяти в 3 раза[1].
Ключевые преимущества
- Экономия ресурсов: Резко снижается количество обучаемых параметров (до 90% и более), что значительно уменьшает потребление видеопамяти (VRAM) и ускоряет процесс обучения.
- Отсутствие задержки при выводе (inference): После обучения матрицы `B` и `A` можно «слить» с основной матрицей `W_0`, вычислив `W = W_0 + BA`. Таким образом, во время использования модели не добавляется никаких дополнительных вычислений или задержек[1].
- Модульность и быстрая смена задач: Обученные LoRA-адаптеры представляют собой небольшие файлы (несколько мегабайт). Это позволяет легко хранить десятки адаптеров для разных задач и быстро переключаться между ними, не меняя основную модель[3].
Ограничения и модификации
Хотя LoRA очень эффективна, её низкоранговая природа может быть ограничением для задач, требующих запоминания большого объёма новой информации. Для решения этой и других проблем были предложены различные модификации.
QLoRA
QLoRA (Quantized Low-Rank Adaptation) — одна из самых популярных модификаций, предложенная в 2023 году. Она объединяет LoRA с 4-битным квантованием базовой модели[4]. Это позволяет ещё больше снизить требования к памяти, делая возможным дообучение моделей с десятками миллиардов параметров (например, 65B-модели) на одном потребительском GPU. На основе QLoRA была создана, в частности, модель Guanaco, которая показала результаты, сопоставимые с ChatGPT.
Другие модификации
- MoRA (High-Rank Updating): Предложена для задач, где LoRA показывает недостаточную производительность из-за ограничения ранга. MoRA использует методы, позволяющие обновлять веса с высоким рангом, сохраняя при этом параметрическую эффективность[5].
Реализация и применение
Технология LoRA получила широкое распространение благодаря своей эффективности и простоте интеграции. Ключевую роль в её популяризации сыграла библиотека PEFT (Parameter-Efficient Fine-Tuning) от компании Hugging Face. PEFT предоставляет единый интерфейс для применения LoRA и других методов PEFT к моделям из экосистемы Transformers[6].
LoRA активно используется для:
- Адаптации чат-ботов и диалоговых систем (например, дообучение LLaMA, Mistral).
- Создания моделей для классификации и генерации текста в узкоспециализированных областях.
- Персонализации моделей под конкретный стиль или формат данных.
Ссылки
Литература
- Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
- Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
- Zhang, Q. et al. (2023). AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning. arXiv:2303.10512.
- Chen, Y. et al. (2023). LongLoRA: Efficient Fine-Tuning of Long-Context Large Language Models. arXiv:2309.12307.
- Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
- Jiang, T. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
- Liu, Z. et al. (2024). ALoRA: Allocating Low-Rank Adaptation for Fine-Tuning Large Language Models. arXiv:2403.16187.
- Liu, J. et al. (2025). RoRA: Efficient Fine-Tuning of LLM with Reliability Optimization for Rank Adaptation. arXiv:2501.04315.
- Albert, P. et al. (2025). RandLoRA: Full-Rank Parameter-Efficient Fine-Tuning of Large Models. arXiv:2502.00987.
- Tastan, N. et al. (2025). LoFT: Low-Rank Adaptation That Behaves Like Full Fine-Tuning. arXiv:2505.21289.
Примечания
- ↑ 1,0 1,1 1,2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
- ↑ Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
- ↑ Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
- ↑ Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
- ↑ Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
- ↑ «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]