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-forgettingSalta 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¶
theory/00-motivation.md— por qué el fine-tuning necesitaba reforma; la observación de sobre-parametrización.theory/01-sft-and-forgetting.md— fine-tuning supervisado y olvido catastrófico.theory/02-parameter-count.md— derivar el ahorro en conteo de parámetros de LoRA.theory/03-memory-footprint.md— derivar en detalle los ahorros de memoria de LoRA y QLoRA.theory/04-alignment-survey.md— survey conceptual: DPO, ORPO, SimPO, RLHF, RLAIF. Sólo lectura.lab/00-lora-by-hand.md— implementarLoRALineardesde cero y verificar la propiedad de identidad en init.lab/01-lora-counts.md— derivar y medir conteos de parámetros / memoria para MiniGPT bajo full FT vs LoRA vs QLoRA.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.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.pyimplementados (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.
- 📄 LoRA: Low-Rank Adaptation of Large Language Models — Hu et al. · 2021. el adaptador que implementas en esta fase.
- 📄 QLoRA: Efficient Finetuning of Quantized LLMs — Dettmers et al. · 2023. LoRA sobre una base congelada de 4 bits — NF4 y doble cuant.