Definición
El fine-tuning o ajuste fino es el proceso de tomar un modelo de lenguaje ya preentrenado (un foundation model) y continuar su entrenamiento durante un periodo corto con un dataset específico, para adaptarlo a una tarea, dominio o estilo particular.
Mientras el pretraining usa billones de tokens y cuesta millones de dólares, el fine-tuning trabaja con miles a millones de ejemplos curados y puede costar desde decenas a algunos miles de euros. El resultado: un modelo que mantiene el conocimiento general del base model pero responde mejor en tu caso de uso específico.
Es la técnica que permite a empresas y desarrolladores aprovechar foundation models gigantescos (Llama, Mistral, Qwen) sin entrenar desde cero. Es a la IA lo que la cocina es a la materia prima: alguien hizo la pieza dura; tú le das el sabor final.
Cómo funciona
El flujo simplificado:
- Eliges base model: un foundation model abierto (Llama 3.1 70B, Mistral 7B, Qwen 2.5, Mixtral) o uno cerrado vía API (OpenAI permite fine-tuning de GPT-4o-mini, Anthropic de Claude).
- Preparas dataset: pares (instrucción / respuesta ideal) o conversaciones. Calidad >>> cantidad: 500-5.000 ejemplos curados suelen ganar a 100k mediocres.
- Eliges método: full fine-tuning (ajustar todos los pesos) o PEFT (Parameter-Efficient Fine-Tuning: LoRA, QLoRA, prefix tuning).
- Entrenas: pocos epochs (1-3 típicamente), learning rate bajo (10⁻⁴ - 10⁻⁶), batch pequeño. Esto evita "borrar" conocimiento del base model (catastrophic forgetting).
- Evalúas: comparas contra el base model en métricas relevantes (accuracy, BLEU, eval humana).
- Despliegas: o autohospedado (Hugging Face, vLLM, Together) o en API (OpenAI fine-tuning, Anthropic, Mistral).
Tipos principales de fine-tuning
- Supervised Fine-Tuning (SFT): el clásico. Le das pares (input → respuesta deseada) y el modelo aprende a imitar las respuestas.
- Instruction tuning: variante de SFT con muchos tipos de instrucciones y formatos. Es lo que convierte un base model "completador de texto" en un modelo que sigue instrucciones.
- Continued pretraining: extiendes el pretraining con un corpus de tu dominio (sin pares input/output). Útil para dominios muy específicos (medicina, derecho, código de tu empresa).
- Preference fine-tuning: RLHF, DPO, ORPO. Aprende de comparaciones (respuesta A es mejor que B) en lugar de respuestas absolutas.
- Domain adaptation: continued pretraining + SFT específico del dominio.
LoRA y QLoRA: la revolución de la accesibilidad
Antes de LoRA, fine-tuning completo de un Llama 70B requería 8+ GPUs A100 con 80GB cada una. Inaccesible para casi todo el mundo.
LoRA (Low-Rank Adaptation) cambió las reglas: en lugar de ajustar los pesos del modelo, añade matrices pequeñas adaptadoras que se entrenan en su lugar. El resto del modelo queda congelado.
- Solo se entrenan ~0.1-1% de los parámetros totales.
- Memoria y cómputo necesarios caen 10-100×.
- Permite tener múltiples "adapters" para tareas distintas sobre el mismo base model.
QLoRA lleva esto más lejos cuantizando el base model a 4-bit. Permite fine-tunear modelos de 70B en una sola GPU consumer (24GB VRAM, una RTX 4090).
Hoy fine-tuning es accesible para cualquier desarrollador. Una empresa puede tener un modelo de 70B fine-tuneado a su dominio por menos de 1.000 €.
Ejemplo práctico
En AE Works un cliente del sector industrial quiere un chatbot interno que entienda jerga técnica de su catálogo (1.200 productos, terminología propia, normativa específica). Opciones:
- Prompting puro con Claude/GPT: funciona, pero requiere contexto largo en cada llamada → caro y lento.
- RAG: muy bueno para contenido factual; permite citar fuentes. Pero no enseña al modelo a "hablar el dialecto" de la empresa.
- Fine-tuning de Llama 8B: con 800 ejemplos curados (Q&A internas, descripciones de producto, casos típicos), entrenamos LoRA en una H100 durante 3 horas. Coste: ~50 €. Resultado: el modelo responde con vocabulario y tono de la empresa, integrado al ERP local sin enviar datos sensibles fuera.
Solución elegida: RAG + fine-tuning combinados. El fine-tuning aporta estilo y conocimiento de dominio; RAG aporta hechos actualizados verificables. Es la combinación dominante en producción seria.
Fine-tuning vs RAG vs prompting
| Técnica | Cuándo usar | Coste | Latencia | Actualización |
|---|---|---|---|---|
| Prompting | Casos generales, tareas variables | Bajo (solo tokens) | Baja | Inmediata |
| RAG | Conocimiento factual, fuentes citables | Medio | Media | En tiempo real |
| Fine-tuning | Estilo, formato, dominio especializado | Medio-alto único | Baja | Reentrenar |
| Pretraining | Solo grandes labs | Millones $ | — | Reentrenar |
En producción, la mejor solución suele ser una combinación: foundation model + RAG + fine-tuning ligero + prompting cuidado.
Cuándo merece la pena fine-tunear
Sí, fine-tunea cuando:
- Necesitas un estilo, tono o formato muy específico que no se consigue solo con prompting.
- Tu dominio tiene jerga propia que el modelo base no maneja bien.
- Quieres reducir tamaño del prompt (en lugar de repetir instrucciones cada vez, las "horneas" en el modelo).
- Tienes regulación o privacidad que exige modelo autohospedado.
- El volumen de uso es suficientemente alto para que el coste fijo del fine-tuning se amortice.
No fine-tunees cuando:
- El conocimiento cambia rápido (mejor RAG).
- Tu volumen es bajo: no compensa el coste fijo.
- El prompting funciona bien: no añadas complejidad.
- No tienes dataset de calidad: fine-tunear con datos mediocres degrada el modelo.
Errores comunes
- Dataset pequeño y sucio: 200 ejemplos de baja calidad puede empeorar el modelo. Mejor 50 perfectos.
- Overfitting al dataset: el modelo solo responde bien a casos parecidos a los del entrenamiento. Usa validación.
- Catastrophic forgetting: si entrenas demasiado o con learning rate alto, el modelo "olvida" su conocimiento general.
- Esperar conocimiento factual del fine-tuning: el modelo aprende patrones, no hechos individuales. Para hechos, usa RAG.
- No medir contra el base model: a veces el base ya hace bien la tarea con buen prompting. Siempre compara antes de invertir en fine-tuning.
- Confundir SFT con RLHF: SFT enseña imitación; RLHF afina preferencias. Suelen combinarse.
- No iterar: el primer fine-tuning rara vez es el mejor. Eval → mejorar dataset → reentrenar.
Costes orientativos
Fine-tuning de un Llama 3.1 8B con QLoRA y 5.000 ejemplos:
- Compute: 1 GPU H100 × 4 horas ≈ 12 €.
- Iteraciones (3-5): 60 €.
- Eval: 50 € en llamadas a modelo grande para comparar.
- Total proyecto pequeño: ~150-300 €.
Fine-tuning de un Llama 70B full (sin LoRA): 8 GPUs H100 × 24 horas ≈ 1.500 €/run.
Fine-tuning vía API (OpenAI, Anthropic): cobran por token de entrenamiento, suele estar en el rango de 50-500 € para datasets típicos.
Referencias
- Hu et al. · LoRA: Low-Rank Adaptation of Large Language Models — el paper que democratizó el fine-tuning
- Dettmers et al. · QLoRA paper — cuantización + LoRA: fine-tuning de 70B en una sola GPU
- Hugging Face · PEFT library — librería de referencia para fine-tuning eficiente