Zubnet AIAprenderWiki › Optimizador Adam
Entrenamiento

Optimizador Adam

También conocido como: Adam, AdamW
El algoritmo de optimización más ampliamente usado para entrenar redes neuronales. Adam (Adaptive Moment Estimation) combina momentum (usando un promedio móvil de gradientes pasados) con tasas de aprendizaje adaptativas (escalando actualizaciones por el inverso de las magnitudes de gradientes pasados). AdamW agrega weight decay desacoplado para mejor regularización. Casi todos los LLMs modernos se entrenan con AdamW.

Por qué importa

Adam funciona bien en una amplia gama de tareas e hiperparámetros, haciéndolo el optimizador predeterminado. Entenderlo explica por qué el entrenamiento "simplemente funciona" la mayor parte del tiempo (Adam se adapta por parámetro) y por qué a veces no (los requisitos de memoria de Adam son 2x los parámetros del modelo, lo que importa para modelos grandes). También es la respuesta a "¿qué optimizador debería usar?" en el 90% de los casos.

En profundidad

Adam mantiene dos promedios móviles por parámetro: el primer momento (media de gradientes — momentum) y el segundo momento (media de gradientes al cuadrado — escalado adaptativo). La regla de actualización: parámetro -= lr × m̂ / (√v̂ + ε), donde m̂ y v̂ son momentos corregidos por sesgo. Los parámetros con gradientes consistentemente grandes reciben actualizaciones más pequeñas (ya están bien calibrados). Los parámetros con gradientes pequeños y ruidosos reciben actualizaciones más grandes (necesitan movimiento más agresivo).

AdamW: la corrección

El Adam original aplicaba weight decay agregándolo al gradiente antes de calcular los momentos, lo que causaba que el decay fuera escalado por la tasa de aprendizaje adaptativa — no lo que quieres. AdamW (Loshchilov & Hutter, 2017) desacopla el weight decay de la actualización de gradiente, aplicándolo directamente a los parámetros. Esto parece una corrección menor pero mejora significativamente la generalización. Todo el entrenamiento de LLMs modernos usa AdamW.

Costo de memoria

Adam almacena dos valores adicionales por parámetro (primer y segundo momentos), triplicando la memoria necesaria para el estado del optimizador: un modelo de 70B necesita ~140 GB para pesos (FP16) más ~280 GB para estados de Adam (FP32), totalizando ~420 GB. Por eso el sharding de estado del optimizador (DeepSpeed ZeRO, FSDP) es esencial para el entrenamiento de modelos grandes. Algunos optimizadores más nuevos (Adafactor, CAME, Lion) reducen esta sobrecarga de memoria a costa de cierta estabilidad.

← Todos los términos