English · Español
01 — Fine-tuning supervisado y olvido catastrófico¶
SFT es sólo lenguaje habitual con etiquetas (labels). Lo no-trivial es por qué actualizar todos los pesos puede borrar habilidades que el modelo tenía antes. La explicación es geométrica: cada paso de gradiente desplaza los pesos en una dirección, y muchas direcciones útiles del modelo original no están alineadas con el objetivo del fine-tuning.
SFT: la mitad fácil¶
El fine-tuning supervisado es la configuración más simple posible. Dado:
- Un modelo preentrenado
f_θ(x)que mapea entradas a logits del siguiente token. - Un dataset
D = {(x_i, y_i)}de pares(prompt, completion).
El objetivo es cross-entropy estándar:
Descenso de gradiente por mini-batch estándar (AdamW), planificación de LR estándar (warmup + cosine decay), seguimiento de pérdida (loss) estándar. Mecánicamente idéntico al preentrenamiento; sólo cambian los datos.
La parte difícil no es la optimización. Es evitar que la optimización rompa otras cosas.
Olvido catastrófico: la geometría¶
Cuando haces fine-tuning, cada paso de gradiente es:
donde \hat{g} es el gradiente de la pérdida sobre los datos del fine-tuning. A lo largo de K pasos, el desplazamiento total es:
Los datos del fine-tuning te dicen sobre su propia distribución. No dicen nada sobre otras distribuciones. Sin embargo, Δθ ocurre en cada coordenada de θ que tenga gradiente no nulo sobre los datos del fine-tuning — incluyendo coordenadas que eran cruciales para alguna tarea no relacionada.
El olvido catastrófico es el hecho empírico de que, para un Δθ lo bastante grande, el rendimiento del modelo sobre la distribución original (de preentrenamiento) cae.
La demostración estándar: toma un LLaMA-7B ajustado para chat, hazle fine-tuning durante 1000 pasos sobre preguntas/respuestas médicas. Mide su rendimiento en HellaSwag general (un benchmark de razonamiento de sentido común) antes y después. Después: la accuracy en HellaSwag cae 5–15 puntos porcentuales.
Por qué LoRA ayuda geométricamente¶
LoRA congela (freeze) la mayor parte de θ. Sólo las matrices LoRA A, B se actualizan. Así que Δθ está restringido a un subespacio de baja dimensión de ℝ^{|θ|}.
El subespacio consta de matrices de pesos de la forma BA con rango (rank) ≤ r. Para r ≪ min(in, out), es un subespacio diminuto. El θ preentrenado no puede moverse por ninguna dirección fuera de este subespacio.
Si el conocimiento de preentrenamiento para tareas no relacionadas vive en direcciones fuera del subespacio de LoRA, se preserva automáticamente. Esta es la razón geométrica por la que LoRA reduce el olvido.
La afirmación empírica, que el lab 02 mide: para fine-tuning típico, la mayoría del conocimiento de preentrenamiento se asienta en direcciones que LoRA no toca.
Por qué LoRA no elimina el olvido¶
La actualización de LoRA BA está en algún subespacio del espacio de pesos. Si parte de ese subespacio coincide con direcciones importantes para tareas no relacionadas, esas tareas seguirán degradándose. La reducción es significativa pero no perfecta.
Mitigaciones prácticas:
- Usar una tasa de aprendizaje menor.
1e-4para fine-tuning con LoRA (vs1e-5para full FT). Incluso con un LR más alto por params de LoRA, el||Δθ||total se mantiene pequeño porque el subespacio de LoRA es pequeño. - Usar replay. Mezclar una pequeña fracción (~5%) de datos de la distribución de preentrenamiento en cada batch. La dirección del gradiente promedia sobre ambas tareas, reduciendo la deriva sobre la distribución original.
- Usar LoRA con un regularizador. Añadir
λ ||BA||_F²a la pérdida para desincentivar actualizaciones grandes. Rara vez necesario en la práctica.
Para la Fase 28 usamos el LR por defecto (sin replay, sin regularizador) y nos apoyamos en la ventaja estructural de LoRA. El lab 02 mide si eso basta.
Cómo medir el olvido¶
Necesitas dos splits:
- Sonda de tarea (task probe). Secuencias que ejercitan la capacidad objetivo. Para nuestro caso: tests de conjugación de verbos irregulares, p.ej.,
He __ to schooldonde se espera que el modelo puntúewentpor encima degoed. La accuracy sube con el fine-tuning. - Sonda de control (control probe). Secuencias que ejercitan capacidades no relacionadas del mismo modelo. Para nuestro caso: tests de conjugación de verbos regulares —
She __ at home yesterdayesperandoworked, noworken. La PPL debería mantenerse plana. El split de control toca los 12 verbos regulares (work, play, walk, talk, listen, watch, study, finish, start, look, want, like) que el modelo ya maneja correctamente; queremos que sigan manejándose correctamente.
La métrica es la deriva de PPL sobre el control:
El DoD de la Fase 28 la acota al 5%.
Olvido catastrófico vs adopción catastrófica¶
Una preocupación relacionada-pero-distinta: el modelo adopta el estilo o sesgos de los datos del fine-tuning incluso donde no deberían aplicar. P.ej., un modelo ajustado para señalar siempre patrones de verbos irregulares podría empezar a "corregir" verbos regulares en formas irregulares ("she walken yesterday" — sin sentido, pero plausible si LoRA sobre-aplica el prior de verbo irregular).
Esto no es olvido — la capacidad preentrenada para "conjugación regular -ed" podría seguir ahí. Es sobre-aplicar el comportamiento del fine-tuning. La mitigación es la misma (LR menor, replay) más ingeniería de prompts en tiempo de inferencia.
No sondamos esto formalmente en la Fase 28 (requeriría un conjunto de evaluación adicional), pero conviene tenerlo presente.
Preparación de datos SFT¶
Para nuestro caso:
- Fuente: el corpus de verbos de la Fase 12, filtrado a entradas que ejercitan los 8 verbos irregulares (
be, have, do, go, come, see, eat, write) en pasado simple y participio pasado. - Aumento: incluir tanto formas correctas como deliberadamente incorrectas como pares entrada-salida: entrada =
He goed to the store→ salida =He went to the store. (correction: past simple of "go" is "went"). Incluir traducciones al par español como parte de la salida (según §A2 / §A13), p.ej.,went→fue / fuipara "to go". - Formato: pares estándar
prompt → completionseparados por un token delimitador (definido en la Fase 13).
El lab 02 tiene el script de preparación de datos.
Elección del optimizador¶
AdamW es el predeterminado para fine-tuning de LLM. Razones:
- Las tasas de aprendizaje adaptativas por parámetro manejan bien la varianza de escala de gradiente.
- El weight decay desacoplado (W en AdamW) impide que el modelo derive demasiado lejos del
θpreentrenado.
El fine-tuning con LoRA funciona también con SGD, pero AdamW converge más rápido y es más robusto. Usamos AdamW.
Una nota sobre RLHF¶
Una vez que SFT ha alineado el comportamiento del modelo con el formato de la tarea, RLHF (o DPO/ORPO etc.) puede usarse para alinear las preferencias del modelo — es decir, cuando hay múltiples completions correctos, RLHF favorece el que los humanos prefieren. Para la Fase 28 nos paramos en SFT; la teoría de alignment tuning se repasa en theory 04 pero no se implementa.
Ejercicios de práctica¶
Soluciones al abrir la fase en solutions/01-sft-forgetting-ref.md.
- Enuncia la pérdida cross-entropy para predicción del siguiente token en términos de logits e índices de tokens. Luego enuncia el gradiente respecto a un logit
z_t. - Argumenta por qué una tasa de aprendizaje demasiado alta causa olvido catastrófico más que un LR bajo. (Pista: piensa en
||Δθ||.) - El subespacio de LoRA tiene dimensión
r × (in + out)por Linear. Para un Linear(in=768, out=768)conr=8, ¿qué fracción de la dimensión completa del espacio de pesos es esto? - Si la misma tarea pudiera resolverse usando prompting (dándole al modelo un ejemplo few-shot en tiempo de inferencia), ¿por qué hacemos fine-tuning siquiera? Da dos razones.
Recapitulación en un párrafo¶
El fine-tuning supervisado es mecánicamente idéntico al preentrenamiento — misma pérdida, mismo optimizador, datos distintos. El riesgo es el olvido catastrófico: los pasos de gradiente a lo largo de la tarea de fine-tuning pueden degradar capacidades no relacionadas. La explicación geométrica: el fine-tuning completo mueve θ en direcciones arbitrarias, incluyendo direcciones importantes para la distribución original. LoRA restringe las actualizaciones a un subespacio de baja dimensión, preservando la mayor parte de θ y por tanto la mayor parte de la capacidad preentrenada. Mitigaciones como LR menor, replay y regularización están disponibles pero a menudo son innecesarias. El siguiente archivo de teoría deriva los ahorros en conteo de parámetros con precisión.
Siguiente: theory/02-parameter-count.md.