Calcolatore dei parametri LoRA
Dati di input
| Livelli | 32 |
|---|---|
| Moduli adattati per livello | 4 |
| Dimensione nascosta | 4.096 |
| Rango LoRA | 8 |
Calcolatore dei parametri LoRA
Stima il numero di parametri addestrabili che un fine-tuning LoRA aggiunge e la memoria dell'ottimizzatore che richiede, a partire dal numero di livelli, dai moduli adattati per livello, dalla dimensione nascosta e dal rango LoRA.
Dati di input
Architettura del modello
Adattatore LoRA
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
Parametri LoRA
Low-Rank Adaptation, o LoRA, è il modo più comune per fare il fine-tuning di un modello linguistico di grandi dimensioni con un budget limitato. Invece di aggiornare ogni peso, congela il modello base e addestra una piccola coppia di matrici a basso rango accanto a ciascuna matrice di pesi adattata. Il risultato si comporta quasi come un fine-tuning completo pur toccando una frazione minima dei parametri. Questo calcolatore stima a quanti parametri ammonta quella frazione, e quanta memoria dell'ottimizzatore richiede, a partire dalla forma del modello e dal rango dell'adattatore.
Come LoRA riduce l'insieme addestrabile
Una matrice di pesi di un transformer mappa un vettore nascosto in un altro, quindi per un livello quadrato contiene circa valori. Fare il fine-tuning di tutti è costoso: l'ottimizzatore deve memorizzare gradienti e statistiche correnti per ognuno. LoRA sostituisce quell'aggiornamento denso con il prodotto di due matrici sottili — una di forma e una di forma , dove il rango è molto più piccolo di . I pesi base non si muovono mai; vengono addestrati solo questi due fattori e, in fase di inferenza, il loro prodotto viene riaggiunto alla matrice originale.
Poiché ogni matrice adattata contribuisce con valori addestrabili — e quando le larghezze di ingresso e uscita sono uguali — l'insieme addestrabile è di solito ben al di sotto dell'uno percento del modello completo. È questo che rende LoRA pratico su un singolo acceleratore.
La formula
Con livelli, moduli adattati per livello, rango e dimensione nascosta , il conteggio dei parametri addestrabili è
P=L⋅m⋅2⋅r⋅dAdam a precisione mista mantiene all'incirca sedici byte di stato dell'ottimizzatore e dei pesi master per parametro addestrabile — la copia master a 32 bit, più le stime del primo e del secondo momento — quindi la memoria dell'ottimizzatore in megabyte è
M=10616PQuesto conta solo lo stato dell'adattatore. Il modello base congelato occupa ancora memoria per i suoi pesi, ma non ha bisogno di gradienti né di stato dell'ottimizzatore, ed è da qui che nasce il risparmio.
Esempio svolto
Prendiamo un modello con 32 livelli, che adatta le quattro proiezioni dell'attenzione in ciascun livello, al rango 8 con una dimensione nascosta di 4096:
P=32×4×2×8×4096=8388608Sono circa 8,39 milioni di parametri addestrabili. Lo stato dell'ottimizzatore è
M=10616×8388608≈134,2 MBPer un modello base da sette miliardi di parametri, quegli 8,39 milioni di adattatori sono all'incirca un decimo di percento dell'insieme — eppure sono sufficienti a specializzare il modello per molti compiti a valle.
Scegliere il rango e i moduli
Il rango è il principale regolatore di capacità. Ranghi da 4 a 8 sono comuni per un adattamento leggero del compito; da 16 a 64 danno più margine quando il compito di destinazione è lontano dall'addestramento del modello base. Raddoppiare il rango raddoppia sia i parametri addestrabili sia la memoria dell'ottimizzatore, quindi conviene aumentarlo solo quando un rango più basso sottoadatta. Il valore dei moduli per livello riflette quali matrici ricevono un adattatore: due per le sole query e value, quattro per l'intero blocco di attenzione, o più se vengono incluse le matrici feed-forward.
Per confrontare l'adattatore con la dimensione del modello completo, vedi il Calcolatore del numero di parametri di un transformer. Per dimensionare la memoria totale di una sessione di addestramento, inclusi i pesi congelati e le attivazioni, vedi il Calcolatore della VRAM di addestramento per LLM.
Domande frequenti (FAQ)
Che cosa controlla il rango LoRA?
Il rango fissa la dimensione dell'aggiornamento a basso rango aggiunto a ciascuna matrice di pesi adattata. Un rango più alto dà all'adattatore più capacità di catturare i cambiamenti rispetto al modello base, al costo di più parametri addestrabili e più memoria dell'ottimizzatore, che crescono entrambi linearmente con il rango. Un rango più basso è più piccolo e veloce, ma può sottoadattare i compiti più difficili.
La maggior parte dei fine-tuning usa un rango tra 4 e 64, con 8 o 16 come punto di partenza comune; il valore migliore dipende da quanto il compito di destinazione differisce dal modello base.
Quanto è più piccolo un fine-tuning LoRA rispetto a un fine-tuning completo?
LoRA addestra solo gli adattatori a basso rango e congela i pesi base, quindi l'insieme addestrabile è di solito ben al di sotto dell'uno percento del modello completo. Un modello da sette miliardi di parametri adattato a un rango modesto ha spesso solo pochi milioni di parametri addestrabili.
Poiché lo stato dell'ottimizzatore cresce con i parametri addestrabili anziché con i parametri totali, il risparmio di memoria è notevole. La dimensione del modello completo, per il confronto, può essere stimata con il calcolatore del conteggio dei parametri dall'architettura.
Quali moduli vengono solitamente adattati?
La scelta più comune sono le matrici di proiezione dell'attenzione — query, key, value e output — che corrispondono a quattro moduli per livello. Alcune ricette adattano solo le proiezioni query e value (due moduli), mentre altre aggiungono le matrici feed-forward per una copertura più ampia a un costo di parametri maggiore. Imposta il valore dei moduli per livello in modo che corrisponda alle matrici prese di mira dalla tua configurazione.
Avvertenze legali
Questa stima assume matrici adattate quadrate e conta solo i fattori LoRA e il loro stato dell'ottimizzatore Adam a precisione mista, a circa 16 byte per parametro. Esclude il modello base congelato, le attivazioni, i gradienti dei parametri non adattatori e qualsiasi messa a punto di bias o embedding. Trattala come un valore di pianificazione, non come un conteggio esatto della memoria.
Da provare dopo
Calcolatore della VRAM di addestramento per LLM
Stima la VRAM della GPU necessaria per il fine-tuning completo di un modello linguistico di grandi dimensioni a partire dal numero di parametri, dalla scelta dell'ottimizzatore e dalla memoria delle attivazioni, usando la regola di Adam in precisione mista di 16 byte per parametro.
Calcolatore del numero di parametri di un transformer
Stima il numero totale di parametri di un transformer solo-decoder a partire dal numero di strati, dalla dimensione nascosta, dall'espansione feed-forward e dalla dimensione del vocabolario, con una formula architetturale di primo ordine.