Accumulazione del Gradiente

Come i modelli imparano davvero, dalla discesa del gradiente vanilla ad Adam

La gradient accumulation simula una batch più grande quando la memoria è limitata. Invece di fare un passo dopo ogni micro-batch, sommi i gradienti di più micro-batch, poi compi un solo passo dell'ottimizzatore.

La batch size effettiva è la dimensione del micro-batch moltiplicata per il numero di passi di accumulazione. Questo permette a una piccola GPU di comportarsi più come se si fosse addestrata su una batch più grande.

Un barile per l'acqua piovana cattura l'idea. Una piccola tazza non può innaffiare tutto il giardino in una volta, quindi versi diverse tazze nel barile e poi usi la quantità del barile. La gradient accumulation raccoglie diversi piccoli contributi di gradiente prima di un aggiornamento. La figura sotto è letteralmente questo processo: ogni nuovo termine è una tazza, e le barre che salgono sono il barile che si riempie verso il suo totale. La gradient accumulation è una somma parziale di gradienti che incassi come un unico passo.

Dove si trova nel MLLa gradient accumulation è comune per grandi modelli linguistici, immagini grandi e memoria GPU limitata. Permette ai team di scegliere una batch size effettiva senza richiedere che l'intera batch stia in memoria in una volta.
▶ Accumulazione del Gradiente
← Scalatura della Batch SizeInizializzazione e Scala del Segnale →