Ce înseamnă LoRA și QLoRA
Fine-tuning-ul complet modifică toți parametrii unui model, deci cere multă memorie și produce o copie completă pentru fiecare sarcină. LoRA (Hu et al., Microsoft, 2021) îngheață ponderile originale și învață doar o modificare de rang mic.
Pentru GPT-3 175B, comparat cu fine-tuning-ul complet cu Adam, LoRA a redus numărul de parametri antrenabili de 10.000 de ori și memoria GPU necesară de 3 ori.
Cum funcționează
Pentru o matrice de ponderi W0 de dimensiune d × k, ieșirea devine W0x + BAx, unde B are dimensiunea d × r, A are r × k, iar rangul r este mult mai mic decât d și k. A pornește aleator, B pornește de la zero, deci la început modelul este neschimbat.
QLoRA (Dettmers et al., 2023) ține modelul de bază cuantizat pe 4 biți (formatul NF4) și antrenează adaptoare LoRA peste el. Așa a fost posibil fine-tuning-ul unui model de 65B pe un singur GPU de 48 GB.
Pe înțelesul tuturor
În loc să retipărești o carte de 2.000 de pagini ca să adaugi câteva proceduri, lipești câteva foi adezive pe paginile relevante. Cartea rămâne aceeași, iar foile se pot scoate sau schimba.
Exemplu
În lucrarea LoRA, cu r = 4 și doar matricele Query și Value adaptate, checkpoint-ul pentru GPT-3 a scăzut de la 350 GB la 35 MB.
Pe același model de bază încărcat o singură dată se pot schimba adaptoare diferite pentru sarcini diferite.
De reținut
- Lucrarea LoRA raportează calitate egală sau mai bună decât fine-tuning-ul complet pe RoBERTa, DeBERTa, GPT-2 și GPT-3.
- Biderman et al. (2024) au găsit că, pe programare și matematică, LoRA rămâne mult sub fine-tuning-ul complet, dar uită mai puțin din cunoștințele din afara domeniului („LoRA Learns Less and Forgets Less”).
Nu confunda
- LoRA vs. QLoRA: QLoRA este LoRA aplicat peste un model de bază cuantizat pe 4 biți, ca să încapă în mai puțină memorie.
Termeni înrudiți
- Supervised Fine-Tuning (SFT): Etapa în care un model de bază este antrenat pe exemple de instrucțiuni și răspunsuri bune, ca să învețe formatul și comportamentul unui asistent.
- Cuantizarea Modelelor (Quantization): Reducerea preciziei numerice a ponderilor, de la 16 biți la 8, 4 sau mai puțini, ca modelul să ocupe mai puțină memorie și să ruleze mai repede.
- Pre-antrenarea (Pre-training): Prima etapă de antrenare, în care modelul învață limba și cunoștințe generale prezicând următorul token pe trilioane de tokeni de text.
- DPO (Direct Preference Optimization): Metodă de aliniere care învață direct din perechi răspuns preferat / răspuns respins, cu o simplă pierdere de clasificare, în locul pipeline-ului RLHF cu PPO.