Low-Rank Adaptation (LoRA) (BG)
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).
- Създаване на модели за класификация и генериране на текст в тясно специализирани области.
- Персонализиране на модели към конкретен стил или формат на данни.
Връзки
- Официална документация на библиотеката PEFT от Hugging Face
Литература
- 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]