LoRA
LoRA | |
---|---|
Nome Inglese | LoRA |
Sigla |
LoRA, acronimo di "Low Rank Adaptation", è un metodo di fine tuning per modelli di grandi dimensioni che diminuisce drasticamente il numero di parametri da addestrare.
QLoRA è un metodo che combina quantizzazione e LoRa, permettendo di utilizzare delle GPU piccole per fare fine-tuning su modelli di dimensioni enormi (miliardi di parametri).
Il rango delle matrici
Il rango di una matrice rappresenta il numero di colonne linearmente indipendenti: intuitivamente, matrici di rango più basso sono computazionalmente più economiche da moltiplicare. La Decomposizione di Basso Rango è il processo di approssimazione di una matrice A derivando approssimazioni di rango minore. Ricordiamo che nelle reti neurali, ogni strato è rappresentato da una matrice e ogni operazione di inferenza determina dei prodotti tra le matrici e i vettori (o tensori) in input o prodotti dal layer precedente.
Come funziona LoRA
Normalmente il fine-tuning adatta tutti i parametri del modello, ed è computazionalmente dispendioso. In dettaglio:
- Si parte da un modello iniziale, per esempio Llama o Mistral
- Si creano delle approssimazioni (low-rank) delle matrici del modello, che verranno utilizzate per il lavoro di fine tuning. Normalmente vengono create queste approssimazioni per tutti i layer del modello ma esistono eccezioni
- Invece di modificare direttamente i layer originali, LoRa applica una trasformazione fra le matrici low-rank e i layer originali
- Viene eseguito il fine-tuning sulle matrici low-rank
- Durante l'inferenza, i layer originali vengono utilizzati in congiunzione con i layer LoRa, che diventano una specie di "add-on"

Links
https://brev.dev/blog/how-qlora-works