Phase 19 - Lesson 07
Capstone 07 — Pipeline de fine-tuning de extremo a extremo (Datos a SFT a DPO a Servir)
Un modelo de 8B entrenado con tus propios datos, alineado por DPO según tus preferencias, quantizado, con decodificación especulativa y servido a un costo medible de $/1M de tokens. La stack abierta de 2026 es Axolotl v0.8, TRL 0.15, Unsloth para iteración, GPTQ/AWQ/GGUF para quantización y vLLM 0.7 con EAGLE-3 para servir. El capstone consiste en ejecutar todo el pipeline de manera reproducible — entrada en YAML, endpoint activo en la salida — y publicar un model card bajo el Model Openness Framework de 2026.
Tipo: Capstone Lenguajes: Python (pipeline), YAML (configuraciones), Bash (scripts) Requisitos previos: Fase 2 (ML), Fase 3 (DL), Fase 7 (transformers), Fase 10 (LLMs desde cero), Fase 11 (ingeniería de LLM), Fase 17 (infraestructura), Fase 18 (seguridad) Fases ejercitadas: P2 · P3 · P7 · P10 · P11 · P17 · P18 Tiempo: 35 horas
Problema
Cada equipo serio de IA en 2026 mantiene un pipeline de fine-tuning disponible. No porque lancen un modelo base de frontera, sino porque la adaptación downstream — SFT de dominio, DPO contra preferencias etiquetadas, borradores destilados para decodificación especulativa, servir con EAGLE-3 — es donde residen las ganancias medibles. Axolotl v0.8 maneja configuraciones de SFT multi-GPU. TRL 0.15 maneja DPO y GRPO. Unsloth proporciona iteración rápida en GPU única. vLLM 0.7 con EAGLE-3 aumenta el rendimiento (throughput) de decodificación en 2-3x sin pérdida de calidad. Las herramientas funcionan; el arte está en los archivos YAML, la higiene de datos y la disciplina de evaluación.
Llevarás un modelo base de 8B (Llama 3.3, Qwen3 o Gemma 3) a través de SFT y luego DPO con datos específicos de tareas, lo quantizarás para servirlo y medirás las ganancias frente a lm-evaluation-harness, RewardBench-2, MT-Bench-v2 y MMLU-Pro. Producirás un model card bajo el Model Openness Framework de 2026. El punto clave es la reproducibilidad: un solo comando vuelve a ejecutar todo el pipeline de extremo a extremo.
Concept
El pipeline consta de cinco etapas. Datos: desduplicación (MinHash / Datatrove), filtro de calidad (clasificador estilo Nemotron-CC), limpieza de PII (datos personales sensibles), verificación de higiene de divisiones contra la contaminación de benchmarks públicos. SFT: YAML de Axolotl, ZeRO-3 en 8xH100, distribución de coseno (cosine schedule), secuencias empaquetadas, 2-3 épocas. DPO o GRPO: configuración de TRL, 1 época, pares de preferencias etiquetados por humanos o evaluados por modelos, ajuste de beta. Quantización: GPTQ + AWQ + GGUF para flexibilidad de despliegue. Servicio: vLLM 0.7 con cabezales especulativos EAGLE-3 (o SGLang con SpecForge), despliegue en K8s, HPA en tiempo de espera de la cola.
Las ablaciones son el entregable: solo SFT frente a SFT+DPO frente a SFT+GRPO en tres benchmarks específicos de tareas. Métricas de servicio: tokens/s en lotes de 1 / 8 / 32, tasa de aceptación de EAGLE-3, $/1M de tokens. Evaluación de seguridad: tasa de aprobación de Llama Guard 4. Model card: evaluaciones de sesgo, semillas (seeds) de reproducibilidad, licenciamiento de datos.
Architecture
raw data (HF datasets + internal)
|
v
Datatrove dedup + Nemotron-CC quality filter + PII scrub
|
v
split hygiene (MMLU-Pro contamination check)
|
v
Axolotl SFT config (YAML) ---> 8xH100, ZeRO-3
|
v
TRL DPO / GRPO config ---> 4xH100, 1 epoch
|
v
GPTQ + AWQ + GGUF quantize
|
v
vLLM 0.7 + EAGLE-3 speculative decoding
|
v
K8s deployment, HPA on queue-wait
|
v
lm-eval-harness + RewardBench-2 + MT-Bench-v2 + MMLU-Pro
|
v
model card (2026 MOF) + safety eval (Llama Guard 4)
Stack
- Datos: Datatrove para desduplicación, clasificador Nemotron-CC para calidad, Presidio para PII
- Base: Llama 3.3 8B, Qwen3 14B o Gemma 3 12B
- SFT: Axolotl v0.8 con ZeRO-3, Flash Attention 3, secuencias empaquetadas
- Ajuste de preferencias: TRL 0.15 para DPO o GRPO; Unsloth para iteración en GPU única
- Quantización: GPTQ (Marlin), AWQ, GGUF vía llama.cpp
- Servicio: vLLM 0.7 con decodificación especulativa EAGLE-3 (o SGLang 0.4 + SpecForge)
- Evaluación: lm-evaluation-harness, RewardBench-2, MT-Bench-v2, MMLU-Pro
- Evaluación de seguridad: Llama Guard 4, ShieldGemma-2
- Infraestructura: Kubernetes + plugin de dispositivos NVIDIA, HPA en la métrica de espera de la cola
- Observabilidad: W&B para entrenamiento, Langfuse para inferencia
Build It
Pipeline de datos. Ejecuta la desduplicación con Datatrove en el corpus crudo. Aplica el clasificador de calidad estilo Nemotron-CC. Presidio limpia PII. Escribe divisiones de entrenamiento/valulación con una semilla explícita.
Verificación de contaminación. Para cada división de validación, calcula MinHash contra los conjuntos de prueba de MMLU-Pro, MT-Bench-v2 y RewardBench-2. Rechaza cualquier superposición.
Axolotl SFT. YAML con ZeRO-3, FA3, empaquetado de secuencias. 2-3 épocas en 8xH100. Registra en W&B.
TRL DPO / GRPO. Toma el checkpoint de SFT, ejecuta una época de DPO en pares de preferencias (o GRPO con una recompensa verificable en matemáticas/código). Haz un barrido de beta.
Quantize. Produce tres quants: GPTQ-INT4-Marlin, AWQ-INT4, GGUF-Q4_K_M para llama.cpp. Registra el tamaño y el rendimiento nominal.
Serve with speculative decoding. Configuración de vLLM 0.7 con cabezales de borrador EAGLE-3 entrenados a través de Red Hat Speculators. Mide la tasa de aceptación y la latencia de cola en lotes de 1 / 8 / 32. Reporta $/1M de tokens frente a Anthropic / OpenAI en la misma evaluación.
Eval matrix. Ejecuta lm-eval-harness, RewardBench-2, MT-Bench-v2, MMLU-Pro en modelos base, solo SFT, SFT+DPO, SFT+GRPO. Produce una tabla.
Safety eval. Tasa de aprobación de Llama Guard 4 en el conjunto de desarrollo. Filtro de salida ShieldGemma-2.
Model card. Plantilla MOF 2026: datos, entrenamiento, evaluación, seguridad, licencia, sección de reproducibilidad con YAMLs y SHAs de commit.
Use It
$ ./pipeline.sh config/llama3.3-8b-domainX.yaml
[data] 300k deduped, 12k filtered, 280k accepted (seed=7)
[SFT] 3 epochs, 8xH100, 6h12m, val loss 1.42 -> 1.03
[DPO] 1 epoch, beta=0.08, 4xH100, 1h40m
[quant] GPTQ-INT4 4.6 GB, AWQ-INT4 4.8 GB, GGUF-Q4_K_M 5.1 GB
[serve] vLLM 0.7, EAGLE-3 acceptance 0.74, p99 126ms @ bs=8
[eval] MMLU-Pro +3.2, MT-Bench-v2 +0.41, RewardBench-2 +0.08
[card] model-card.md generated under 2026 MOF
Ship It
outputs/skill-finetuning-pipeline.md describe el entregable. Un solo comando procesa los datos a través de SFT, DPO, quantización, servicio y evaluación, y emite un model card más el endpoint servido.
| Peso | Criterio | Cómo se mide |
|---|---|---|
| 25 | Delta de evaluación vs base | Ganancia medida en tareas objetivo (MMLU-Pro, MT-Bench-v2, específicas de la tarea) |
| 20 | Reproducibilidad del pipeline | Un solo comando vuelve a ejecutar todo de extremo a extremo con semillas idénticas |
| 20 | Higiene de datos | Tasa de desduplicación, cobertura de limpieza de PII, control de contaminación en verde |
| 20 | Eficiencia de servicio | tokens/s en bs=1/8/32, tasa de aceptación de EAGLE-3, $/1M de tokens |
| 15 | Model card + evaluación de seguridad | Completidad de MOF 2026 + tasa de aprobación de Llama Guard 4 |
| 100 |
Exercises
Ejecuta solo SFT frente a SFT+DPO frente a SFT+GRPO en el mismo benchmark específico de la tarea. Reporta qué método de preferencias gana y por cuánto.
Cambia Llama 3.3 8B por Qwen3 14B. Mide $/1M de tokens a calidad equivalente.
Mide la tasa de aceptación de EAGLE-3 en datos de dominio frente a ShareGPT genérico. Reporta el delta y lo que significa para los presupuestos de latencia.
Inyecta 1% de contaminación (filtra respuestas de MMLU-Pro en los datos de entrenamiento) y vuelve a ejecutar la evaluación. Observa cómo la precisión en MMLU-Pro sube de forma irreal. Construye una compuerta de CI de verificación de contaminación que detecte esto.
Agrega LoRA SFT como alternativa al fine-tune completo. Mide la brecha de calidad con 10 veces menos memoria.
Key Terms
| Término | Lo que la gente dice | Lo que realmente significa |
|---|---|---|
| Axolotl | "Entrenador SFT" | Entrenador unificado basado en YAML para SFT, DPO y destilación |
| TRL | "Ajustador de preferencias" | Biblioteca de Hugging Face para DPO, GRPO, PPO en LLMs |
| GRPO | "Optimización de políticas relativas al grupo" | Receta de RL (aprendizaje por refuerzo) de DeepSeek R1 con recompensas verificables |
| EAGLE-3 | "Borrador de decodificación especulativa" | Cabezales de borrador que predicen N tokens adelante; vLLM verifica con el modelo objetivo |
| MOF | "Model Openness Framework" | Estándar de 2026 para calificar lanzamientos de modelos en función de datos, código y licencia |
| Verificación de contaminación | "Higiene de divisiones" | Detección basada en MinHash de filtración del conjunto de prueba en el entrenamiento |
| Tasa de aceptación | "Métrica EAGLE / MTP" | Fracción de tokens sugeridos que acepta el modelo objetivo |
Further Reading
- Documentación de Axolotl — el entrenador de referencia de SFT / DPO
- Documentación de TRL — implementaciones de referencia de DPO y GRPO
- Unsloth — referencia de iteración en GPU única
- Artículo de DeepSeek R1 (arXiv:2501.12948) — metodología GRPO
- Documentación de vLLM + EAGLE-3 — stack de servicio de referencia
- SGLang SpecForge — entrenador alternativo de decodificación especulativa
- Model Openness Framework 2026 — el estándar de calificación de lanzamientos abiertos
- lm-evaluation-harness — ejecutor de evaluación canónico