Low-Rank Adaptation (LoRA) (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

Low-Rank Adaptation (LoRA) — este o metodă de fine-tuning eficientă din punct de vedere parametric (PEFT), care permite adaptarea modelelor lingvistice mari (LLM) la sarcini noi cu costuri computaționale minime. Tehnologia a fost prezentată pentru prima dată în lucrarea lui Edward Hu și a colegilor săi în 2021[1].

Fine-tuning-ul complet (full fine-tuning) al modelelor mari, precum LLaMA sau GPT, necesită resurse imense, ceea ce îl face inaccesibil pentru majoritatea cercetătorilor și dezvoltatorilor. LoRA rezolvă această problemă, permițând antrenarea doar a unei mici părți din parametrii modelului, menținând în același timp o calitate și performanță ridicate, comparabile cu fine-tuning-ul complet[2].

Principiul de funcționare

Ideea principală a LoRA constă în faptul că nu se modifică ponderile originale ale modelului preantrenat, ci se adaugă la acestea o mică matrice „corectivă". În loc să antreneze direct o matrice de ponderi uriașă `W`, LoRA reprezintă modificarea acesteia ca produsul a două matrice mici de rang redus.

Formal, dacă matricea originală de ponderi a stratului `W_0` are dimensiunea `d × k`, actualizarea sa este reprezentată ca `ΔW = BA`, unde `B` este o matrice de dimensiune `d × r`, iar `A` este o matrice de dimensiune `r × k`. Rangul `r` este un hiperparametru și este semnificativ mai mic (`r << d, k`). În procesul de fine-tuning, ponderile originale `W_0` sunt înghețate, iar doar matricele `A` și `B` sunt antrenate. Matricea de ponderi finală se calculează ca `W = W_0 + BA`.

Aceasta permite reducerea numărului de parametri antrenabili de mii de ori. De exemplu, la fine-tuning-ul GPT-3 (175 de miliarde de parametri), LoRA reduce numărul de parametri antrenabili de 10 000 de ori și scade cerințele de memorie GPU de 3 ori[1].

Avantaje cheie

  • Economie de resurse: Numărul de parametri antrenabili scade drastic (până la 90% și mai mult), ceea ce reduce semnificativ consumul de memorie video (VRAM) și accelerează procesul de antrenare.
  • Absența latenței la inferență (inference): După antrenare, matricele `B` și `A` pot fi „îmbinate" cu matricea principală `W_0`, calculând `W = W_0 + BA`. Astfel, în timpul utilizării modelului nu se adaugă niciun calcul suplimentar sau latență[1].
  • Modularitate și schimbare rapidă a sarcinilor: Adaptoarele LoRA antrenate reprezintă fișiere mici (câțiva megabyți). Aceasta permite stocarea ușoară a zeci de adaptoare pentru diferite sarcini și comutarea rapidă între ele, fără a modifica modelul de bază[3].

Limitări și modificări

Deși LoRA este foarte eficientă, natura sa de rang redus poate constitui o limitare pentru sarcinile care necesită memorarea unui volum mare de informații noi. Pentru rezolvarea acestei și a altor probleme au fost propuse diverse modificări.

QLoRA

QLoRA (Quantized Low-Rank Adaptation) — una dintre cele mai populare modificări, propusă în 2023. Aceasta combină LoRA cu cuantizarea pe 4 biți a modelului de bază[4]. Acest lucru permite reducerea și mai mare a cerințelor de memorie, făcând posibil fine-tuning-ul modelelor cu zeci de miliarde de parametri (de exemplu, modele de 65B) pe un singur GPU de consum. Pe baza QLoRA a fost creat, în special, modelul Guanaco, care a demonstrat rezultate comparabile cu ChatGPT.

Alte modificări

  • MoRA (High-Rank Updating): Propusă pentru sarcinile în care LoRA prezintă performanțe insuficiente din cauza limitării de rang. MoRA utilizează metode care permit actualizarea ponderilor cu rang ridicat, menținând în același timp eficiența parametrică[5].

Implementare și aplicare

Tehnologia LoRA s-a răspândit pe scară largă datorită eficienței și ușurinței de integrare. Un rol cheie în popularizarea sa l-a jucat biblioteca PEFT (Parameter-Efficient Fine-Tuning) de la compania Hugging Face. PEFT oferă o interfață unificată pentru aplicarea LoRA și a altor metode PEFT la modelele din ecosistemul Transformers[6].

LoRA este utilizată activ pentru:

  • Adaptarea chatbot-urilor și a sistemelor de dialog (de exemplu, fine-tuning pentru LLaMA, Mistral).
  • Crearea de modele pentru clasificarea și generarea de text în domenii înalt specializate.
  • Personalizarea modelelor pentru un anumit stil sau format de date.

Referințe

  • Documentația oficială a bibliotecii PEFT de la Hugging Face

Bibliografie

  • 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.

Note

  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]