Fundamentos

Otimizadores: de SGD a Momentum, Adam e AdamW

Adam compra tamanhos de passo por coordenada guardando dois tensores de momento ao lado dos parâmetros — estado extra que torna o treinamento completo muito mais intensivo em memória que a inferência.

Atualizada em

01 · Conceito

Conceito

A lição 2.6 deixou uma falha concreta sobre a mesa. Numa tigela cem vezes mais íngreme ao longo de um eixo do que do outro, qualquer learning rate pequeno o bastante para manter a direção íngreme estável deixa a direção rasa se arrastando, e qualquer taxa rápida o bastante para a direção rasa explode a íngreme. A retropropagação não ajuda — ela reportou os dois gradientes corretamente. O conserto precisa viver em como a atualização usa esses gradientes, que é o que um otimizador é.

O SGD de minibatch puro faz o mínimo: θt=θt1ηgt\theta_t=\theta_{t-1}-\eta g_t. Pouco estado, interpretação clara, e exatamente a falha descrita acima.

O Momentum acrescenta uma velocidade, geralmente uma média móvel exponencial de gradientes, e dá o passo ao longo dela em vez do gradiente bruto. Componentes que persistem entre passos se acumulam; componentes que alternam de sinal se cancelam parcialmente. Na ravina, o quique de parede a parede ao longo do eixo íngreme se cancela em grande medida enquanto o empurrão constante ao longo do eixo raso se acumula. Bibliotecas diferentes usam equações ligeiramente diferentes e variantes de Nesterov, então hiperparâmetros não se transferem só pelo nome.

O Adam ataca o descasamento de escala diretamente. Por coordenada ele mantém um primeiro momento mtm_t, um gradiente suavizado, e um segundo momento bruto vtv_t, um gradiente ao quadrado suavizado. Depois da correção de viés — necessária porque ambas as médias começam em zero e de outro modo ficam enviesadas nessa direção no início — a atualização é aproximadamente

θt=θt1ηm^tv^t+ϵ.\theta_t=\theta_{t-1}-\eta\,\frac{\hat m_t}{\sqrt{\hat v_t}+\epsilon}.

Descubra o que isso faz com a ravina. Ao longo do eixo íngreme os gradientes são consistentemente grandes, então v^\sqrt{\hat v} é grande e divide o passo de volta para baixo. Ao longo do eixo raso os gradientes são consistentemente minúsculos, então v^\sqrt{\hat v} é minúsculo e divide o passo de volta para cima. Se o gradiente de uma coordenada tem magnitude estável g|g|, então m^g\hat m\approx g e v^g\sqrt{\hat v}\approx|g|, então a razão é aproximadamente ±1\pm1 e o parâmetro se move cerca de η\eta — independentemente de o gradiente dele ter sido 10x10x ou 0.1y0.1y. O Adam tornou o tamanho do passo aproximadamente livre de escala por direção. Essa é a propriedade que a lição 2.6 disse que um único η\eta global não conseguia fornecer.

Agora o erro clássico, que ficou em código de produção por anos. Você quer regularização, então soma uma penalidade L2 à loss. A contribuição dela ao gradiente é λθ\lambda\theta, e você entrega a soma ao Adam. Raciocine sobre o que acontece em seguida: esse termo entra em mm e vv junto com todo o resto, e então a coisa toda é dividida por v^\sqrt{\hat v}. Um parâmetro cujos gradientes por acaso são grandes tem seu decay encolhido; um parâmetro com gradientes minúsculos tem seu decay amplificado. O comportamento pretendido — puxar todo peso rumo a zero pela mesma proporção a cada passo — não é o que ocorre, e a força do regularizador agora depende de estatísticas de gradiente sem relação com ele. O AdamW conserta isso desacoplando: compute a atualização adaptativa, aplique-a, e depois encolha separadamente os parâmetros por ηλθ\eta\lambda\theta. Mesmo nome, operação diferente, e a razão pela qual essencialmente todo modelo grande hoje é treinado com AdamW em vez de Adam mais L2.

Nem todo parâmetro deveria sofrer decay. Biases e parâmetros de escala de normalização costumam ir para um grupo sem decay, um detalhe de configuração que é fonte frequente de bugs silenciosos — registre quais nomes de parâmetro entraram em qual grupo e falhe ruidosamente diante de omissões inesperadas.

Schedules importam tanto quanto a regra de atualização. Warmup mantém pequenos os passos efetivos iniciais enquanto ativações e estimativas de momento se assentam; o decay reduz o passo mais tarde para convergência. Um experimento justo reporta as equações do otimizador ou a implementação, a curva de learning rate, o tamanho do batch, o limiar de clipping, os grupos de decay, o total de tokens e as sementes. SGD, Momentum, Adam e AdamW são regras de atualização com vieses indutivos diferentes, não uma escada cronológica em que o nome mais novo vence.

Um detalhe operacional que custa dias às pessoas: checkpoints de otimizador precisam incluir o contador de passos e os dois buffers de momento, não apenas os pesos do modelo. Retomar o Adam com momentos vazios muda silenciosamente a regra de atualização por centenas de passos mesmo com os parâmetros batendo exatamente, e avançar o schedule uma vez por batch em vez de uma vez por fronteira de acumulação produz uma curva de learning rate inteiramente diferente. Uma execução reprodutível registra essas fronteiras e verifica a primeira atualização retomada contra uma referência ininterrupta.

02 · Analogia

Analogia

Quatro ciclistas descem uma pista sinuosa. O SGD puro se guia apenas pela inclinação atual. O Momentum carrega velocidade, suavizando curvas alternadas. O Adam mantém medidores separados de direção recente e de magnitude ao quadrado em cada comando, dando passos menores onde os gradientes são consistentemente grandes. O AdamW ainda aplica um encolhimento deliberado aos pesos como regra separada de manutenção. Nenhuma bicicleta vence toda pista; schedule, piso e ajuste decidem a corrida.

03 · Explique de volta

Explique de volta

Explique como o segundo momento do Adam dá a cada coordenada seu próprio tamanho de passo efetivo, por que o AdamW desacopla o weight decay, e por que o estado adicional do Adam torna o treinamento completo muito mais intensivo em memória que a inferência.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Aguardando sua explicação.

Comparar com uma resposta-modelo

O Adam mantém um primeiro momento m (um gradiente suavizado) e um segundo momento bruto v (um gradiente ao quadrado suavizado) por coordenada, corrige o viés dos dois, e dá o passo por m̂ dividido pela raiz quadrada de v̂ mais epsilon. Dividir pela magnitude típica torna o passo aproximadamente livre de escala por coordenada, então uma direção íngreme e uma rasa avançam a taxas comparáveis sob um único learning rate global. Somar um termo L2 ao gradiente não sobrevive a essa divisão como encolhimento uniforme, então o AdamW aplica o decay diretamente aos parâmetros depois do passo adaptativo. Os dois momentos, e muitas vezes uma cópia mestre em precisão maior, convivem com pesos, gradientes e ativações; a memória exata depende de dtype, contabilidade e sharding, cuja aritmética completa pertence à lição 9.3.

04 · Teste seu entendimento

Teste seu entendimento

01A lição 2.6 mostrou que um único learning rate global não consegue servir a uma direção íngreme e a uma rasa ao mesmo tempo. Como o Adam ataca esse problema específico?
Resposta e explicação

Ele divide o passo de cada coordenada pela raiz quadrada da média recente do gradiente ao quadrado daquela coordenada, de modo que os passos ficam aproximadamente livres de escala por direção — O segundo momento atua como um normalizador barato por coordenada, aproximando comportamento geométrico útil sem formar uma matriz de segundas derivadas.

02Qual é a mudança definidora do AdamW em relação ao Adam com uma penalidade L2 somada à loss?
Resposta e explicação

O weight decay é aplicado diretamente aos parâmetros, fora da computação adaptativa de gradiente — Passar a penalidade pela divisão por coordenada do Adam faz o encolhimento depender do histórico de gradientes, o que não é o que weight decay deveria significar.

03Por que o AdamW torna a memória do treinamento completo muito maior que a memória de inferência?
Resposta e explicação

Ele mantém dois tensores de momento por parâmetro treinado, muitas vezes junto de uma cópia mestre em precisão maior, gradientes e ativações — O orçamento exato em bytes depende de dtypes, cópias e sharding e é derivado uma vez na lição 9.3; o ponto durável aqui é que o estado do otimizador acrescenta tensores para todo parâmetro treinado.

Conclua o teach-back e acerte o quiz para finalizar a aula.

◎ · Marcador de evidência

Fontes

  1. Diederik P. Kingma e Jimmy Ba (2014). Adam: A Method for Stochastic Optimization.
  2. Ilya Loshchilov e Frank Hutter (2017). Decoupled Weight Decay Regularization.
  3. Microsoft DeepSpeed Team (2026). DeepSpeed Memory Requirements.
  4. Qwen Team (2026). Qwen3.8-27B Model Card.