fine-tuning/ — Guía completa de fine-tuning Gemma 4¶
Cuándo fine-tunear, cómo hacerlo en M4 Pro 24 GB con Unsloth o MLX-LM, cuándo migrar a cloud GPU. Format esperado de datasets.
Cuándo fine-tunear (y cuándo NO)¶
NO fine-tunees si...¶
- Tu producto está en MVP < 5 clientes.
- No tienes >500 ejemplos etiquetados.
- Prompt engineering + RAG resuelve >90% de tu caso.
- No tienes eval set para medir improvement.
Fine-tunea cuando...¶
- El modelo base falla sistemáticamente en un patrón específico.
- Necesitas tono / estilo específico (ej: español jurídico formal).
- Quieres reducir prompt size (system prompt → "horneado" en pesos).
- Tienes >500 ejemplos etiquetados de calidad.
- Tu eval set confirma que prompt-only no llega.
Recetas por situación¶
Receta 1: LoRA local en M4 Pro (recomendado)¶
Cuándo: tienes 500-5000 ejemplos, modelo E2B/E4B.
Tool: Unsloth (CLI o Studio).
Ver unsloth-lora.md.
Receta 2: MLX-LM nativo¶
Cuándo: prefieres stack 100% Apple, sin dependencias CUDA.
Tool: mlx-lm.
Ver mlx-tune.md.
Receta 3: Cloud GPU para modelos grandes¶
Cuándo: necesitas fine-tunear 26B/31B, o tienes >10K ejemplos.
Tools: Modal, Lambda Cloud, Together AI, Replicate.
Brief: - Spot H100 SXM: $1.50-2/h. - LoRA Gemma 4 26B en 10K ejemplos: ~2-4h. - Costo total: $5-15 por experimento.
Format de datasets¶
Ver datasets-format.md.
Resumen rápido — JSONL con conversaciones OpenAI-style:
{"messages": [{"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
Flujo end-to-end¶
1. Define tarea + eval set
↓
2. Recolecta dataset (500+ ejemplos)
↓
3. Split: 80% train / 10% val / 10% eval
↓
4. Baseline: evalúa modelo base contra eval set
↓
5. LoRA fine-tune (Unsloth o MLX)
↓
6. Evalúa modelo fine-tuneado contra eval set
↓
7. Si improvement >5% absoluto, deploy
↓
8. Export a GGUF → vuelve a Ollama
Storage y costos¶
| Etapa | Almacenamiento |
|---|---|
| Modelo base (Gemma 4 E4B Q4) | ~5.5 GB |
| LoRA adapter | 50-200 MB |
| Dataset JSONL | 5-50 MB |
| Checkpoints intermedios | 1-5 GB |
| Total experimentación | ~15 GB |
Decision tree rápido¶
¿Tienes >500 ejemplos etiquetados? ──No──> RAG primero, dataset después.
│
Sí
↓
¿Modelo cabe en M4 Pro 24 GB? ──No──> Cloud GPU.
│
Sí (E2B/E4B)
↓
¿Necesitas <1h de entreno? ──Sí──> Unsloth en M4 Pro.
│
No (>1h o más calidad)
↓
Cloud GPU H100 spot.
Subdocumentos¶
- unsloth-lora.md — recipe Unsloth en M4 Pro.
- mlx-tune.md — recipe MLX-LM nativo.
- datasets-format.md — format esperado + ejemplos.