Ce înseamnă LoRA
LoRA (Low-Rank Adaptation) este o tehnică de adaptare a modelelor mari, publicată în 2021 de cercetători de la Microsoft. În loc să modifici toate miliardele de ponderi ale unui model (fine-tuning complet, foarte scump), îngheți modelul original și antrenezi doar câteva matrice mici, adăugate în anumite straturi.
Rezultatul este un fișier mic (de obicei de la câțiva megaocteți la câteva sute), numit adaptor, care se „pune” peste modelul de bază. LoRA este foarte populară în comunitatea Stable Diffusion, pentru stiluri sau personaje, și la adaptarea modelelor de limbaj open source pe calculatoare obișnuite.
Cum funcționează
O matrice de ponderi dintr-un strat poate fi foarte mare, de exemplu 4.096 × 4.096. LoRA nu o modifică direct, ci adaugă lângă ea produsul a două matrice înguste, B × A, de dimensiuni 4.096 × r și r × 4.096, unde r (rangul) este mic, de exemplu 8. Doar A și B se antrenează.
Ideea se bazează pe observația că schimbările necesare pentru a adapta un model la o sarcină nouă pot fi descrise, de obicei, cu mult mai puține numere decât are modelul. Varianta QLoRA combină LoRA cu cuantizarea, ca adaptarea să încapă pe o singură placă video.
Pe înțelesul tuturor
În loc să rescrii o carte întreagă ca s-o adaptezi pentru copii, lipești pe margini câteva bilețele cu modificări. Cartea rămâne intactă, bilețelele ocupă puțin loc, iar dacă vrei altă adaptare, schimbi doar bilețelele.
Exemplu
Matricea de 4.096 × 4.096 are 16.777.216 ponderi. Cu LoRA de rang 8, se antrenează 4.096 × 8 + 8 × 4.096 = 65.536 de ponderi, adică aproximativ 0,4% din original. O firmă poate avea un singur model de bază și câte un adaptor LoRA separat pentru suportul clienți, pentru juridic și pentru marketing, schimbându-le după nevoie.
De reținut
- LoRA antrenează doar matrice mici adăugate; modelul de bază rămâne neschimbat.
- Costă mult mai puțină memorie și putere de calcul decât fine-tuning-ul complet.
- Adaptorul LoRA funcționează doar cu modelul de bază pentru care a fost antrenat.
Nu confunda
- LoRA vs. LoRa: LoRa (cu „a” mic) este o tehnologie radio pentru dispozitive IoT, fără legătură cu AI.
Termeni înrudiți
- Fine-tuning: Antrenarea suplimentară a unui model deja antrenat, pe un set mic de exemple, ca să se specializeze pe o sarcină, un domeniu sau un stil.
- Transfer learning: Refolosirea unui model antrenat deja pe o sarcină mare, pentru a rezolva cu puține date o sarcină nouă, înrudită.
- Parametri (ponderi): Numerele învățate de un model în timpul antrenării, în care este stocat tot ce „știe” acesta; modelele mari au miliarde.
- Cuantizare: Tehnica prin care parametrii unui model sunt stocați pe mai puțini biți, ca modelul să ocupe mai puțină memorie și să ruleze mai repede.
- Stable Diffusion: Model de generare a imaginilor din text, publicat în 2022 cu ponderi deschise, care poate rula pe un calculator personal cu o placă video bună.