Low-Rank Adaptation (LoRA) (BG)

From Systems analysis wiki
Jump to navigation Jump to search

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. 1.0 1.1 1.2 Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [1]
  2. Mao, K., et al. «A Survey on LoRA of Large Language Models». arXiv:2407.11046. [2]
  3. Noble, Joshua. «What is LoRA (Low-Rank Adaption)?». IBM Technology. [3]
  4. Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [4]
  5. Jiang, Z., et al. «MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning». arXiv:2405.12130. [5]
  6. «LoRA (Low-Rank Adaptation)». Hugging Face LLM Course. [6]