Dos problemas en ambos extremos del entrenamiento
Problema en los primeros pasos: los pesos recién inicializados no pueden dar grandes pasos
En el paso 0, cada peso comienza como un número aleatorio pequeño muestreado de una distribución cercana a cero. Las activaciones permanecen cerca de cero. Los gradientes apenas contienen información sobre una solución final. Aplicar una tasa de aprendizaje máxima a esos gradientes hace que el modelo salte lejos de la inicialización en direcciones que no codifican estructura significativa.
ANDREA-120M v1 cometió este error. Sin warmup. El paso 1 usó lr = 0.0003 sobre pesos recién inicializados. Resultado: el modelo quedó atrapado en un mal mínimo de parámetros en unos pocos cientos de pasos. Las cifras de pérdida parecían razonables; las muestras generaban bucles de repetición hacia el paso 80K y nunca se recuperaron.
Problema de Etapa Tardía: Los Grandes Pasos No Pueden Pulir una Solución
[BLOCK_TYPE SECTION/STEP]Para el paso 100K, un modelo ya ha aprendido la estructura gruesa. Los gradientes ahora transportan señales finas: qué peso de token necesita un pequeño ajuste, qué cabeza de atención requiere un ligero rebalanceo. Aplicar una tasa de aprendizaje máxima en esta etapa sobrepasa cada ajuste fino, oscilando alrededor de un óptimo sin estabilizarse. [BLOCK_TYPE SECTION/STEP]
Dos problemas, extremos opuestos del entrenamiento. Una sola programación, dos regiones: subir suavemente, bajar suavemente. [BLOCK_TYPE SECTION/STEP]
Linear Warmup: First 2000 Steps
La Fórmula
[BLOCK_TYPE SECTION/STEP]ANDREA-120M v2 usa warmup lineal durante 2000 pasos:
lr(t) = lr_scheduled(t) * min(1, (t + 1) / warmup_steps)
donde t es el número de paso (indexado desde 0), warmup_steps = 2000, y lr_scheduled(t) es lo que prescribiría el programa coseno ignorando el calentamiento.
Lectura de la fórmula:
- En t = 0: lr = lr_scheduled(0) min(1, 1/2000) = lr_scheduled(0) 0.0005. Pequeño primer paso.
- En t = 1000: lr = lr_scheduled(1000) min(1, 1001/2000) = lr_scheduled(1000) 0.5. Mitad de fuerza.
[BLOCK_TYPE SECTION/STEP]
- En t = 2000: lr = lr_scheduled(2000) min(1, 2001/2000) = lr_scheduled(2000) 1.0. Fuerza completa.
[BLOCK_TYPE SECTION/STEP]
- En t > 2000: el clamp mantiene el multiplicador en 1, el warmup ya no afecta nada, la decaída cosenoidal toma el control sola.
[BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
La rampa lineal desde cero da al modelo 2000 pasos para formar representaciones gruesas antes de que AdamW y el recorte de gradientes vean actualizaciones de fuerza completa. Para el paso 2000, los pesos han cambiado lo suficiente como para que el lr máximo ya no los empuje hacia una región mala.
[BLOCK_TYPE SECTION/STEP]
Cálculo de LR durante el Warmup [BLOCK_TYPE SECTION/STEP]
Decaimiento Coseno Después del Calentamiento
La Curva
Después de que el calentamiento termina en el paso 2000, la tasa de aprendizaje sigue una curva coseno desde el pico hasta cero en los pasos restantes:
lr(t) = lr_min + (lr_peak - lr_min) 0.5 (1 + cos(pi * progress))
donde progress = (t - warmup_steps) / (total_steps - warmup_steps). En progress = 0 (justo después del calentamiento), cos(0) = 1, lr = peak. En progress = 1 (paso final), cos(pi) = -1, lr = lr_min (normalmente 0 o un valor mínimo muy pequeño).
¿Por qué coseno y no lineal o exponencial?
La caída cosenoidal comienza lenta (la curva está casi plana cerca del pico), acelera en la mitad y luego vuelve a ralentizarse cerca de cero. Tres beneficios:
1. Meseta cerca del pico. Los primeros pasos después del calentamiento siguen recibiendo casi el lr completo, permitiendo que el modelo aproveche un largo tramo de alta tasa de aprendizaje para construir representaciones.
2. Transición suave en la mitad. Sin saltos bruscos que AdamW deba absorber.
3. Meseta cerca de cero. Los pasos finales reciben un lr muy pequeño para el pulido fino, similar al recocido simulado.
ANDREA-120M entrena un total de 200K pasos; 198K de ellos corresponden a la región de decaimiento coseno después del calentamiento de 2000 pasos.
Reinicio Cálido de ANDREA-12M en el Paso 25K
La Meseta
ANDREA-12M entrenó 60K pasos con decaimiento coseno desde un lr máximo de 0.0004. Alrededor del paso 22K, la pérdida se estabilizó en un EMA ~2.4. El decaimiento coseno había reducido el lr a ~0.00015. El bandido seguía alimentando datos diversos; el modelo dejó de mejorar.
Diagnóstico: lr había decaído demasiado para que el modelo pudiera escapar de su cuenca actual. Los datos de Hermes estaban a punto de entrar en el plan de estudios (paso 25K), lo que aportaría 590K nuevas conversaciones. El modelo necesitaba energía para absorber ese choque de datos.
El reinicio
En el paso 25K, el programa ejecutó un reinicio cálido: elevó lr de 0.00015 (decaído) hasta 0.0004 (pico original) y luego reanudó la decadencia cosenoidal durante los pasos restantes.
Loshchilov & Hutter (2017) denominaron a esta técnica "SGDR" (descenso de gradiente estocástico con reinicios cálidos). La intuición: un lr alto añade suficiente energía cinética para escapar de una cuenca local y explorar las vecinas; la posterior decadencia cosenoidal re-anneala hacia una cuenca mejor.
Resultado. La EMA de pérdida bajó de 2.40 a 2.10 en los siguientes 10K pasos tras el reinicio. El modelo se publicó en el paso 43.6K con una pérdida SMMA de 2.0, demostrando una estructura coherente de turnos de Q&A.
ANDREA-120M v2 decidió NO usar reinicios cálidos: con 200K pasos disponibles y un recuento de parámetros mucho mayor, la caída monótona suave produjo una convergencia más estable. El reinicio funciona mejor cuando el entrenamiento es corto y una meseta coincide con un cambio conocido de datos.
Diagnosticando el fallo de v1
Elecciones de Programación en la Práctica
Actividades Adyacentes
Tres hermanos enlazan con la programación de LR:
- Actividad 10: AdamW. El calentamiento da tiempo a la corrección de sesgo de AdamW para estabilizarse. Sin calentamiento, la amplificación de 10x en el paso 1 multiplica cualquier ruido que lleven los gradientes; con calentamiento, el multiplicador alcanza la señal real.
- Actividad 12: Recorte de gradientes. El recorte limita la norma L2 del gradiente a 1.0 ANTES de AdamW. El calentamiento amortigua lr; el recorte amortigua g. Juntos mantienen seguros los pasos iniciales incluso en currículos propensos a shocks.
- Actividad 22: Puntos de control. Un reinicio cálido requiere cargar el estado del optimizador (m, v, contador de pasos) desde un punto de control, luego mutar el programa a mitad de ejecución. El reinicio de ANDREA-12M en el paso 25K demuestra esto; se necesitaron dos intentos para que la lógica de carga de estado funcionara correctamente.
El programa, el optimizador y el recorte forman un triángulo de estabilidad. Si se pierde un vértice, se observa el colapso de ANDREA v1.