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

Metodo

Fine-tuning completo

Il fine-tuning completo aggiorna ogni peso nel modello. Ha il massimo margine per modificare il comportamento, ma richiede una memoria GPU pari a molte volte le dimensioni del modello stesso ed è il più propenso a erodere le competenze che il modello di base possedeva.

Capitolo 6Lettura di 5 min5 riferimenti

Cos'è

Il fine-tuning completo continua l'addestramento dell'intero modello sui propri esempi: ogni peso in ogni layer può cambiare. È la forma più diretta di fine-tuning e meccanicamente identica alle fasi finali di costruzione del modello. L'alternativa è il parameter-efficient fine-tuning (PEFT), come LoRA, che congela i pesi originali e addestra invece un piccolo componente aggiuntivo.

Dove viene impiegata la memoria

L'esecuzione di un modello richiede solo i suoi pesi. L'addestramento di ogni peso richiede, per ciascuno di essi, il peso stesso, il suo gradiente e lo stato dell'ottimizzatore. Con AdamW nella consueta configurazione a precisione mista, si tratta di un peso a 16 bit e di un gradiente a 16 bit per i passaggi in avanti e all'indietro, più una copia master a 32 bit del peso e le due medie mobili a 32 bit di Adam, mantenute per aggiornamenti stabili. Il calcolo del paper ZeRO stima questo valore a 16 byte per peso; altre configurazioni che mantengono i gradienti a 32 bit arrivano a circa 18.

Memoria per peso addestrabile
per trainable weight · AdamW · mixed precision
  16-bit weight              2 bytes
  16-bit gradient            2 bytes
  32-bit master weight       4 bytes
  32-bit Adam momentum       4 bytes
  32-bit Adam variance       4 bytes
  ───────────────────────────────────
                            16 bytes   + activations

7B model:  7 × 10⁹ × 16 bytes ≈ 112 GB
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).
Un modello da 7 miliardi di parametri, in tre modi
  1. Sola esecuzione a 16 bit: 7 miliardi × 2 byte ≈ 14 GB.
  2. Fine-tuning completo con AdamW: 7 miliardi × 16 byte ≈ 112 GB, prima delle attivazioni. Si tratta di una capacità superiore a quella di una singola GPU da 80 GB, pertanto il lavoro viene suddiviso su più GPU con tecniche come ZeRO o FSDP, che ripartiscono lo stato dell'ottimizzatore, i gradienti e i pesi tra di esse.
  3. LoRA a rango 16 su tutti i layer lineari di un modello da 7B in stile Llama: circa 40 milioni di pesi addestrabili, lo 0,6% del modello. Il loro stato di addestramento è di circa 40 milioni × 16 byte ≈ 0,6 GB, in aggiunta ai 14 GB della base congelata: all'incirca 15 GB.
  4. QLoRA: la base congelata mantenuta a 4 bit occupa circa 3,5 GB, quindi il totale è di circa 4–5 GB più le attivazioni, alla portata di una singola GPU consumer.
  5. Le attivazioni si aggiungono in ogni caso e crescono con la dimensione del batch e la lunghezza della sequenza. Il gradient checkpointing scambia calcolo aggiuntivo con una minore memoria di attivazione.

Cosa offre

Il fine-tuning completo può modificare il modello in qualsiasi direzione, non solo all'interno del piccolo sottospazio raggiungibile da un adattatore. Uno studio che ha confrontato i due metodi ha rilevato che il fine-tuning completo apprende modifiche con un rango da 10 a 100 volte superiore rispetto alle tipiche impostazioni LoRA e che ha appreso di più su ampi set di addestramento di codice e matematica di circa 100.000 esempi. Per il comune caso d'uso aziendale, da poche centinaia a qualche migliaio di esempi di chat che insegnano il tono, il formato e la terminologia di dominio, LoRA applicato a tutti i layer generalmente eguaglia il fine-tuning completo.

Gli svantaggi: la dimenticanza

La dimenticanza catastrofica è la tendenza di una rete addestrata su qualcosa di nuovo a perdere ciò che ha appreso in precedenza. Poiché il fine-tuning completo può spostare ogni peso, ha il massimo margine per sovrascrivere le abilità generali: un modello di supporto che risponde perfettamente alle domande sui prodotti ma è peggiorato nel seguire istruzioni non correlate. Uno studio empirico sul continual instruction tuning ha osservato la dimenticanza in modelli da 1B a 7B parametri, e si è scoperto che i modelli ottimizzati con LoRA, che mantiene la base congelata, dimenticano meno.

  • Meno epoche e un tasso di apprendimento inferiore, in modo che i pesi si discostino meno dal punto di partenza.
  • Integrazione di dati generali, come una quota di esempi ampi di esecuzione di istruzioni insieme ai propri.
  • Valutazione oltre il proprio compito. Includere alcune domande generali nella valutazione in modo da evidenziare un'eventuale regressione.
  • Preferire un adattatore a meno che non sia stato effettivamente misurato un vantaggio derivante dal fine-tuning completo.

Fine-tuning completo e LoRA a confronto

AspettoFine-tuning completoAdattatore LoRA
Pesi addestrabiliTuttiTipicamente 0,1–1%
Memoria per l'addestramentoCirca 16 byte per peso, più le attivazioniLa base congelata (2 byte per peso, o circa 0,5 a 4 bit) più un piccolo adattatore
Risultato salvatoUna copia completa del modello, ad es. circa 14 GB per 7B a 16 bitUn file adattatore, spesso da decine a centinaia di MB
Tasso di apprendimento tipicoCirca 1e-5Circa 10 volte superiore
Rischio di oblioMaggioreMinore
Ideale perGrandi set di dati che insegnano nuove competenze sostanzialiTono, formato e fraseggio di dominio; diverse varianti di una singola base

Errori comuni

  • Scegliere il fine-tuning completo perché sembra più approfondito. Sui piccoli dataset di solito costa molto di più senza alcun vantaggio misurabile.
  • Preventivare la memoria della GPU in base alle dimensioni di download del modello. L'addestramento di ogni peso richiede circa otto volte i pesi a 16 bit, più le attivazioni.
  • Addestrare per molte epoche a un tasso di apprendimento elevato e testare solo il compito target, per poi scoprire che le competenze generali si sono degradate.
  • Dimenticare che ogni fine-tuning completo è un modello a grandezza naturale da archiviare e servire.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01ZeRO: Memory Optimizations Toward Training Trillion Parameter ModelsRajbhandari et al., 2019 · arXiv · arxiv.orgL'origine del calcolo di 16 byte per parametro e dello sharding utilizzato per distribuirlo su più GPU.
  2. 02GPU memory usageHugging Face Transformers docs · huggingface.coUna scomposizione di pesi, stati dell'ottimizzatore, gradienti e attivazioni durante l'addestramento.
  3. 03LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgUn attento confronto tra fine-tuning completo e LoRA su codice e matematica: cosa apprende e cosa dimentica ciascuno.
  4. 04An Empirical Study of Catastrophic Forgetting in Large Language Models During Continual Fine-tuningLuo et al., 2023 · arXiv · arxiv.org
  5. 05LoRA vs. full fine-tuningTogether AI docs · docs.together.aiI consigli pratici di un provider su quando passare da un adattatore al fine-tuning completo.

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