LoRA

Da Wiki AI.
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:

  1. Si parte da un modello iniziale, per esempio Llama o Mistral
  2. 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
  3. Invece di modificare direttamente i layer originali, LoRa applica una trasformazione fra le matrici low-rank e i layer originali
  4. Viene eseguito il fine-tuning sulle matrici low-rank
  5. Durante l'inferenza, i layer originali vengono utilizzati in congiunzione con i layer LoRa, che diventano una specie di "add-on"
Il modello Mistral prima e dopo QLora


Links

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