Calcolatore della memoria con accumulo del gradiente
Dati di input
| Dimensione del micro-batch | 4 |
|---|---|
| Passi di accumulo | 8 |
| GPU con parallelismo dei dati | 1 |
| Attivazione per campione | 0,5 |
Calcolatore della memoria con accumulo del gradiente
Calcola la dimensione effettiva del batch raggiunta con l'accumulo del gradiente e la memoria delle attivazioni che richiede, a partire dalla dimensione del micro-batch, dai passi di accumulo, dalle repliche con parallelismo dei dati e dal costo di attivazione per campione.
Dati di input
Batching
Memoria
Risultati
Inserisci un valore per visualizzare i risultati.
Dettagli
La memoria con accumulo del gradiente
I modelli linguistici di grandi dimensioni si addestrano meglio con batch grandi, ma un batch grande significa molti campioni tenuti in memoria contemporaneamente — e la memoria delle attivazioni è spesso la prima cosa a far traboccare una GPU. L'accumulo del gradiente risolve la tensione: raggiunge un batch effettivo grande mentre il picco di memoria delle attivazioni resta della dimensione di un singolo piccolo micro-batch. Questo calcolatore mostra entrambi i lati di quel compromesso — il batch effettivo che una configurazione raggiunge e la memoria delle attivazioni che effettivamente mantiene.
Cosa fa l'accumulo del gradiente
Di norma un trainer aggiorna i pesi dopo ogni batch. Con l'accumulo, esegue diversi micro-batch in sequenza, ne somma i gradienti e applica un solo passo dell'ottimizzatore solo una volta elaborato il numero di micro-batch previsto. Il gradiente sommato è identico a quello che avrebbe prodotto un singolo batch di quella dimensione combinata, quindi l'aggiornamento è matematicamente lo stesso — cambia solo la sua tempistica. I pesi si muovono una volta per ciclo di accumulo anziché una volta per micro-batch.
Perché la memoria resta costante
Il picco di memoria delle attivazioni è governato dal più grande passaggio in avanti e all'indietro attivo in un dato momento, e quello è un singolo micro-batch. L'accumulo elabora un micro-batch alla volta e mantiene solo una somma progressiva dei gradienti, la cui dimensione corrisponde ai parametri del modello e non cresce con il numero di passi. Quindi aumentare il conteggio dei passi di accumulo alza il batch effettivo lasciando intatta la memoria delle attivazioni. È esattamente questo il punto: un batch effettivo grande su un budget di memoria che non riuscirebbe mai a contenerlo tutto in una volta.
La formula
Con dimensione del micro-batch , passi di accumulo , repliche con parallelismo dei dati e costo di attivazione per campione in gigabyte,
EM=b⋅a⋅g=b⋅Adove è la dimensione effettiva del batch e è il picco di memoria delle attivazioni su una GPU. Il batch effettivo si moltiplica per ogni replica e ogni passo di accumulo, mentre il termine di memoria dipende dal solo micro-batch.
Esempio svolto
Consideriamo un micro-batch di 4 campioni, accumulato su 8 passi su una singola GPU, con ciascun campione che costa 0,5 GB di attivazioni:
EM=4×8×1=32=4×0,5=2 GBL'esecuzione si addestra come se il batch fosse 32, mentre solo 2 GB di attivazioni sono mai residenti. Distribuendo la stessa configurazione su 4 GPU con parallelismo dei dati il batch effettivo sale a , e la memoria delle attivazioni per GPU resta di 2 GB.
Leggere il risultato
La dimensione effettiva del batch è il valore rispetto al quale vengono regolate le pianificazioni del tasso di apprendimento e gli altri iperparametri, non il micro-batch. Va notato che la memoria delle attivazioni è solo una parte del budget di addestramento: lo stato dell'ottimizzatore, i gradienti e i parametri stessi di solito dominano, e questo calcolatore isola deliberatamente il termine delle attivazioni per rendere visibile il compromesso del batching. Per il quadro completo della memoria vedi il Calcolatore della VRAM di addestramento per LLM, e per ridurre il numero di parametri addestrabili con adattatori a basso rango, il Calcolatore dei parametri LoRA.
Domande frequenti (FAQ)
Come funziona l'accumulo del gradiente?
Invece di aggiornare i pesi dopo ogni micro-batch, il trainer esegue diversi micro-batch in sequenza, ne somma i gradienti e applica un singolo passo dell'ottimizzatore una volta raggiunto il numero di micro-batch previsto.
Il gradiente sommato è identico a quello che produrrebbe un singolo batch grande della stessa dimensione totale, quindi la matematica dell'aggiornamento resta invariata — cambia solo la tempistica. I pesi si muovono una volta per ciclo di accumulo anziché una volta per micro-batch.
Perché la memoria resta costante all'aumentare dei passi di accumulo?
Il picco di memoria delle attivazioni è determinato dal più grande passaggio in avanti e all'indietro tenuto in memoria in un dato momento, che è un singolo micro-batch. L'accumulo elabora un micro-batch alla volta e mantiene solo una somma progressiva dei gradienti, la cui dimensione è pari ai parametri del modello e non cresce con il numero di passi.
Quindi raddoppiare i passi di accumulo raddoppia il batch effettivo mentre la memoria delle attivazioni resta invariata — il compromesso centrale che rende accessibili batch effettivi grandi su memoria limitata.
Cosa significa dimensione effettiva del batch?
La dimensione effettiva del batch è il numero di campioni che influenzano un singolo aggiornamento dei pesi. Con il parallelismo dei dati ogni replica contribuisce con il proprio micro-batch, e con l'accumulo ogni replica contribuisce con diversi micro-batch a turno, quindi il batch effettivo è il prodotto del micro-batch, dei passi di accumulo e del numero di repliche.
Le pianificazioni del tasso di apprendimento e gli altri iperparametri vengono regolati rispetto a questo valore effettivo, non al micro-batch.
Avvertenze legali
Questa stima modella la memoria delle attivazioni a partire dal solo micro-batch e omette lo stato dell'ottimizzatore, i gradienti, i parametri e l'overhead del framework, che dominano la memoria totale di addestramento. Usala per ragionare sul compromesso del batching, non come budget di memoria completo.
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.