LoRA: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 23: | Riga 23: | ||
=== Links === | === Links === | ||
https://brev.dev/blog/how-qlora-works | https://brev.dev/blog/how-qlora-works | ||
{{#seo: | |||
|title=LoRA | |||
|title_mode=append | |||
|keywords="LoRA, QLoRA, modelli di linguaggio, fine tuning, quantizzazione, basso rango, matrici, layer, Mistral, Llama, addestramento" | |||
|description="Questo articolo spiega LoRA (Low Rank Adaptation), un metodo di fine tuning per modelli di linguaggio di grandi dimensioni. LoRA riduce il numero di parametri da addestrare, rendendo il processo più efficiente. Viene descritto anche QLoRA, una variante che combina la quantizzazione con LoRA, consentendo l'addestramento su hardware meno potente." | |||
|image=File:Lora.png | |||
}} |
Versione delle 13:30, 17 ago 2024
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