Risorse/Addestramento del modello/Cosa accade durante l'addestramento

Metodo

LoRA e adattatori (PEFT)

LoRA congela il modello di base e addestra due piccole matrici accanto a layer selezionati, il cui prodotto viene aggiunto ai pesi congelati. Riduce drasticamente i pesi addestrabili e la memoria e, se ben configurato, eguaglia il fine-tuning completo sui tipici set di dati di fine-tuning.

Capitolo 6Lettura di 6 min5 riferimenti

Cos'è

Il PEFT (parameter-efficient fine-tuning) è una famiglia di metodi che adatta un modello addestrando un piccolo numero di nuovi pesi, mantenendo congelati quelli originali. LoRA (Low-Rank Adaptation), introdotto da Hu et al. nel 2021, è il più utilizzato. Si basa su un'osservazione: la modifica che il fine-tuning deve apportare a una grande matrice dei pesi può essere descritta con un numero di valori molto inferiore rispetto alla matrice stessa. In termini matematici, la modifica ha un basso rango.

xinputWd × d · congelata 🔒Ar × dBd × raddestrabile · rango r (4–16)+hh = Wx + BAx
LoRA mantiene congelata la matrice dei pesi originale W e apprende due matrici sottili al suo fianco. Il loro prodotto B·A ha la stessa forma di W ma solo rango r, pertanto un livello 4096 × 4096 (16,8M di pesi) viene adattato con 2 × 4096 × 8 ≈ 65k pesi addestrabili a rango 8.

Come funziona

Prendiamo un layer lineare con matrice dei pesi W di forma d × k. Il fine-tuning completo apprenderebbe una modifica ΔW della stessa forma: d × k nuovi numeri. LoRA apprende invece tale modifica come il prodotto di due matrici sottili. A (r × k) comprime l'input del layer a r numeri, e B (d × r) li espande nuovamente. Il rango r è piccolo, in genere 4–64, mentre d e k sono nell'ordine delle migliaia.

L'aggiornamento LoRA
h = W·x + (α / r) · B·A·x

W : d × k    frozen
A : r × k    trainable, random at the start
B : d × r    trainable, zero at the start   →   B·A = 0 at step 0

trainable weights per adapted layer = r × (d + k)
  • Inizializzazione. A inizia in modo casuale e B inizia da zero, quindi B·A = 0 e il modello adattato è esattamente il modello di base al passaggio 0. L'addestramento lo allontana gradualmente.
  • Scaling. L'output dell'adattatore viene moltiplicato per alpha ÷ r. Questo mantiene la dimensione del suo effetto approssimativamente stabile quando r cambia, in modo che il learning rate non debba essere ricalibrato per ogni rango. Una variante, la rank-stabilised LoRA (rsLoRA), divide invece per la radice quadrata di r, comportandosi meglio a ranghi elevati.
  • Merging. Dopo l'addestramento, B·A può essere moltiplicato e aggiunto a W. Il modello unito mantiene la forma originale e viene eseguito alla velocità originale, senza latenza aggiuntiva. In alternativa, l'adattatore viene conservato come un piccolo file separato e caricato sopra la base, consentendo a un singolo modello di base di servire più adattatori.
Conteggio dei pesi: un layer, poi un intero modello
  1. Una proiezione di attenzione 4096 × 4096: 16,8 milioni di pesi in W.
  2. LoRA a rango 8: A è 8 × 4096 e B è 4096 × 8, quindi 2 × 4096 × 8 = 65.536 pesi addestrabili, lo 0,4% del layer.
  3. Un modello 7B in stile Llama a rango 16 su tutti i layer lineari (quattro proiezioni di attenzione e tre MLP in ciascuno dei 32 layer): circa 40 milioni di pesi addestrabili, approssimativamente lo 0,6% del modello.
  4. Memoria di addestramento: quei 40 milioni di pesi richiedono circa 0,6 GB per i gradienti e lo stato AdamW, contro i circa 112 GB per il fine-tuning completo di tutti i 7 miliardi.
  5. L'adattatore salvato a 16 bit è di circa 80 MB, contro i 14 GB per una copia completa del modello.
  6. Nel paper originale, su GPT-3 175B, LoRA ha ridotto i parametri addestrabili fino a 10.000 volte e la memoria GPU di circa 3 volte rispetto al fine-tuning completo con Adam.
Fine-tuning completo16 bit + Adam≈ 112 GBLoRAbase a 16 bit, congelata≈ 15 GBQLoRAbase a 4 bit, congelata≈ 4–5 GBAdam + copia fp32pesi congelatipesi addestrabiligradientistato dell'ottimizzatore
Memoria GPU approssimativa per il fine-tuning di un modello da 7 miliardi di parametri, prima delle attivazioni. Il fine-tuning completo con Adam richiede circa 16 byte per ogni peso: i pesi, i relativi gradienti, una copia master a precisione completa e due statistiche dell'ottimizzatore. LoRA mantiene la base congelata, pertanto i gradienti e lo stato dell'ottimizzatore esistono solo per il piccolo adattatore (qui circa 40 milioni di pesi).

Le impostazioni

Rango (r)Tipico 4–16; fino a 64 per set di dati di grandi dimensioni#

La dimensione interna di A e B, e quindi la capacità dell'adattatore: quante direzioni di cambiamento indipendenti può apprendere in ogni layer. I pesi addestrabili crescono in proporzione a r. Ranghi bassi sono sufficienti per tono, stile e formato; i set di dati più ampi e ricchi di conoscenze traggono vantaggio da ranghi superiori. Una volta che l'adattatore ha capacità sufficiente per i dati, un rango più elevato aggiunge costi senza migliorare i risultati. Alcuni provider definiscono questo parametro come dimensione dell'adattatore.

Alpha (α)Tipico Da r a 2 × r, o un valore fisso di 16–32#

Un fattore di scala: l'output dell'adattatore viene moltiplicato per alpha ÷ r. Un alpha maggiore fa sì che ogni aggiornamento conti di più, in modo simile a un tasso di apprendimento più elevato, motivo per cui molte configurazioni fissano alpha e regolano invece il tasso di apprendimento. Le convenzioni comuni prevedono alpha uguale a r, alpha uguale al doppio di r, o un valore fisso come 16 o 32. È consigliabile scegliere una convenzione e mantenerla: modificare r mantenendo fisso alpha altera anche la scala.

  • I moduli target decidono quali layer ricevono un adattatore. L'articolo originale adattava solo le proiezioni di query e value dell'attenzione. Lavori successivi, tra cui QLoRA e uno studio del 2025 di Thinking Machines, hanno scoperto che per eguagliare il fine-tuning completo è necessario adattare tutti i layer lineari, in particolare i layer MLP (feed-forward). Le librerie offrono solitamente un'opzione per 'tutti i layer lineari'.
  • Il dropout di LoRA azzera in modo casuale una parte dell'input dell'adattatore durante l'addestramento, offrendo una leggera protezione contro l'overfitting su set di dati di piccole dimensioni. I valori comuni vanno da 0 a 0,1.
  • Tasso di apprendimento. LoRA richiede solitamente un tasso di apprendimento più elevato rispetto al fine-tuning completo: circa dieci volte superiore nello studio di Thinking Machines, che ha inoltre rilevato come il tasso ottimale vari poco tra i diversi ranghi.
  • Dimensione del batch. Lo stesso studio ha rilevato che LoRA tollera i batch molto grandi meno bene rispetto al fine-tuning completo, pertanto dimensioni del batch moderate rappresentano la scelta più sicura.

QLoRA: adattatori su una base a 4 bit

QLoRA (Dettmers et al., 2023) addestra normali adattatori LoRA a 16 bit, ma archivia il modello di base congelato in un formato a 4 bit progettato per pesi distribuiti normalmente (NF4). Aggiunge la doppia quantizzazione, che comprime le costanti di quantizzazione stesse, e ottimizzatori impaginati che assorbono i picchi di memoria. L'articolo ha eseguito il fine-tuning di un modello da 65 miliardi di parametri su una singola GPU da 48 GB, preservando le prestazioni del fine-tuning a 16 bit. Il compromesso è la velocità: i pesi a 4 bit vengono decompressi al volo, rendendo ogni passaggio leggermente più lento.

Quando LoRA è la scelta giusta

SituazioneSolitamente preferibile
Tono, formato o fraseggio di dominio, da centinaia a migliaia di esempiLoRA
Memoria GPU o budget limitatiLoRA o QLoRA
Diverse varianti specifiche per attività di un singolo modello di baseLoRA: un piccolo adattatore per ciascuna
Mantenere le abilità generali del modello di base è importanteLoRA, che dimentica meno
Dataset molto ampi che insegnano nuove competenze sostanziali, come il codice o la matematicaIl fine-tuning completo può apprendere di più

Errori comuni

  • Adattare solo i layer di attenzione. Sulla maggior parte dei dati di fine-tuning, questo approccio offre prestazioni inferiori rispetto agli adattatori su tutti i layer lineari, incluso l'MLP.
  • Riutilizzare il tasso di apprendimento di un fine-tuning completo. LoRA ne richiede in genere uno circa dieci volte superiore, altrimenti apprende a malapena.
  • Modificare il rango mantenendo fisso alpha, senza notare che anche alpha ÷ r, e di conseguenza la dimensione effettiva del passo, sono cambiati.
  • Aspettarsi che un rango più elevato possa salvare un set di dati piccolo o incoerente. La capacità non è d'aiuto quando gli esempi non mostrano uno schema chiaro.
  • Caricare un adattatore su un modello di base diverso, o su una sua versione differente, rispetto a quello su cui è stato addestrato.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01LoRA: Low-Rank Adaptation of Large Language ModelsHu et al., 2021 · arXiv · arxiv.orgL'articolo originale: l'idea del basso rango, il ridimensionamento alpha ÷ r e i risultati su GPT-3.
  2. 02QLoRA: Efficient Finetuning of Quantized LLMsDettmers et al., 2023 · arXiv · arxiv.orgPesi di base NF4 a 4 bit, doppia quantizzazione e ottimizzatori impaginati.
  3. 03LoRA Without RegretThinking Machines Lab, 2025 · thinkingmachines.aiQuando LoRA eguaglia il fine-tuning completo, perché tutti i layer sono importanti e la regola del tasso di apprendimento 10×.
  4. 04LoRAHugging Face PEFT docs · huggingface.coOgni impostazione di LoRA così come implementata: rango, alpha, dropout, moduli target e rsLoRA.
  5. 05A Rank Stabilization Scaling Factor for Fine-Tuning with LoRAKalajdzievski, 2023 · arXiv · arxiv.org

Trasformate settimane di lavoro esperto in pochi minuti

Scoprite come Scalata si adatta al vostro team, ai vostri dati e ai vostri Controlli.

Contatta il team vendite