Skip to content

English · Español

Fase 28 — Fine-Tuning, LoRA, QLoRA

Requiere: 26 — Cuantización en profundidad · 27 — Optimizaciones modernas de attention Enseña: fine-tuning · sft · lora · qlora · catastrophic-forgetting Salta a cualquier capítulo desde el índice de referencia de fases.

Mapa del capítulo

Preescrito según A12. La teoría y los enunciados del laboratorio son borradores estables; las soluciones se escriben justo a tiempo al abrir la fase.

LoRA = adaptación barata de modelos preentrenados. Dos matrices pequeñas reemplazan miles de millones de parámetros congelados durante el fine-tuning. QLoRA = LoRA pero con el modelo base en NF4. Así es como el ecosistema open-source ajusta modelos en hardware modesto. En esta fase: especializar MiniGPT en corregir conjugaciones de verbos irregulares (goed → went).


Objetivo

Toma el modelo MiniGPT de la Fase 17 y aplícale fine-tuning sobre el subconjunto de verbos irregulares del corpus de la Fase 12 usando LoRA. El objetivo es doble: (1) demostrar que la actualización de bajo rango (rank) de LoRA basta para subir la accuracy de conjugación de verbos irregulares en 10+ puntos porcentuales (el modelo puntúa de forma fiable went por encima de goed, ate por encima de eated, etc., para los 8 verbos irregulares be, have, do, go, come, see, eat, write), y (2) demostrar que LoRA preserva el conocimiento del modelo base en una tarea de control ortogonal — los 12 verbos regulares (work, play, walk, talk, listen, watch, study, finish, start, look, want, like) deberían seguir conjugándose correctamente con -ed (sin olvido catastrófico).

Esta fase también adelanta QLoRA: combinar el cuantizador NF4 de la Fase 26 (src/miniquant/) con el LoRA de esta fase da la receta estándar para hacer fine-tuning de modelos de 7B+ en una sola GPU de consumo de 24 GB. Para MiniGPT los ahorros absolutos de memoria son modestos — lo que importa es interiorizar la receta y las proporciones.

Ubicación del módulo

El toolkit de fine-tuning vive en src/minituner/ (nuevo en esta fase): lora.py, qlora.py, train.py, data.py. El compositor de QLoRA lee de src/miniquant/ (Fase 26). Ver src/minituner/BLUEPRINT.md para el contrato de la API.

Orden de lectura

  1. theory/00-motivation.md — por qué el fine-tuning necesitaba reforma; la observación de sobre-parametrización.
  2. theory/01-sft-and-forgetting.md — fine-tuning supervisado y olvido catastrófico.
  3. theory/02-parameter-count.md — derivar el ahorro en conteo de parámetros de LoRA.
  4. theory/03-memory-footprint.md — derivar en detalle los ahorros de memoria de LoRA y QLoRA.
  5. theory/04-alignment-survey.md — survey conceptual: DPO, ORPO, SimPO, RLHF, RLAIF. Sólo lectura.
  6. lab/00-lora-by-hand.md — implementar LoRALinear desde cero y verificar la propiedad de identidad en init.
  7. lab/01-lora-counts.md — derivar y medir conteos de parámetros / memoria para MiniGPT bajo full FT vs LoRA vs QLoRA.
  8. lab/02-lora-finetune.md — entrenar MiniGPT + LoRA en el subconjunto de verbos irregulares; medir accuracy de la tarea + deriva de PPL en verbos regulares; barrer el rango.
  9. lab/03-qlora-preview.md — combinar base NF4 con LoRA; medir memoria; verificar que las salidas coincidan con LoRA-only dentro del error de cuantización.

solutions/ se rellena al abrir la fase, después de que la API de src/minituner/ se estabilice.

Definición de Hecho (DoD)

Ver PHASE_28_PLAN.md §6. En resumen:

  • src/minituner/lora.py + src/minituner/qlora.py implementados (Borja).
  • El fine-tuning eleva la accuracy de la tarea de verbos irregulares ≥ 10 puntos; deriva de PPL del control de verbos regulares ≤ 5%.
  • Gráfica de ablación de rango (rank) committeada.
  • La ejecución de la vista previa de QLoRA se completa con ahorros de memoria medidos.
  • Punto de control (checkpoint) sólo-adaptador < 1% del tamaño del checkpoint base.

Lo que esta fase intencionadamente NO cubre

  • RLHF / DPO / PPO implementados de verdad. Survey conceptual sólo en theory 04. Implementar el entrenamiento de alineación es una fase propia; por ahora queremos sólida la mecánica de SFT.
  • Métodos de adaptador (adapter) distintos a LoRA (prefix tuning, prompt tuning, IA³). Mencionados brevemente; LoRA es el caballo de batalla y el único que implementamos.
  • Gestión multi-adaptador (cargar/descargar adaptadores en tiempo de servicio). Territorio de la Fase 31.
  • Fine-tuning de un modelo de 7B+. Nuestro modelo es MiniGPT (n_layer=4, n_head=4, d_model=64). La matemática escala; el experimento no necesita hacerlo.
  • Búsqueda de hiperparámetros a escala. Un LR razonable + un batch size razonable + una planificación de decaimiento. El rango es la única perilla barrida.
  • Entrenamiento de modelo de recompensa. Fuera de alcance.
  • Pronombres plurales o tiempos verbales más allá de los 5 del §A13 (infinitivo, presente simple, pasado simple, participio pasado, futuro simple). El corpus es lo que es.

El alcance de la Fase 28 es mecánica de LoRA, aplicada a MiniGPT, con QLoRA como variante de ahorro de memoria, especializado en conjugación de verbos irregulares. Nada más.

Lecturas recomendadas

Opcional — enriquece pero no es necesario para aprobar la fase.