Acúmulo de Gradiente

Como os modelos realmente aprendem, da descida do gradiente simples ao Adam

O acúmulo de gradiente simula um batch maior quando a memória é limitada. Em vez de dar um passo depois de cada micro-batch, você soma os gradientes de vários micro-batches e depois dá um único passo do otimizador.

O tamanho efetivo do batch é o tamanho do micro-batch vezes o número de passos de acúmulo. Isso permite que uma GPU pequena se comporte mais como se tivesse treinado com um batch maior.

Um barril de água da chuva captura a ideia. Uma xícara pequena não consegue regar o jardim inteiro de uma vez, então você despeja várias xícaras num barril e depois usa a quantidade do barril. O acúmulo de gradiente reúne várias contribuições pequenas de gradiente antes de uma atualização. A figura abaixo é literalmente esse processo: cada novo termo é uma xícara, e as barras que sobem são o barril enchendo em direção ao seu total. O acúmulo de gradiente é uma soma parcial de gradientes que você resgata como um único passo.

Onde isso aparece no MLO acúmulo de gradiente é comum em grandes modelos de linguagem, imagens grandes e memória limitada de GPU. Ele permite que as equipes escolham um tamanho efetivo de batch sem exigir que o batch inteiro caiba de uma vez.
▶ Acúmulo de Gradiente
← Escalonamento do Tamanho do BatchInicialização & Escala do Sinal →