Capítulo 14 · Fine-tuning · 9 min
Especializar un modelo sin reentrenar todo
LoRA, QLoRA, SFT. Cómo adaptar un modelo generalista a un dominio específico entrenando el 0,1% de sus parámetros.
Adaptar sin reentrenar todo
Entrenar un LLM desde cero cuesta enorme cantidad de datos, cómputo y tiempo. Pero a menudo no queremos crear un modelo nuevo. Queremos adaptar uno existente a un estilo, un formato o un dominio.
Eso es el fine-tuning.
LoRA añade dos pequeñas matrices junto a los pesos existentes. En lugar de modificar miles de millones de parámetros, se entrenan unos pocos millones — la mayoría del modelo queda congelada y compartida entre todas las variantes fine-tuneadas.
El problema
Un modelo grande puede tener miles de millones de parámetros. Actualizarlos todos para una tarea pequeña es caro, lento y arriesgado: puedes degradar capacidades generales que ya funcionaban.
Necesitamos una adaptación ligera.
RLHF (y DPO en la práctica)
Lo vimos en el capítulo 08. El refuerzo por feedback humano aprende preferencias. Es complementario al SFT, no un reemplazo.
Detalle importante: desde 2024, el DPO (Direct Preference Optimization) ha sustituido en gran medida al PPO del RLHF clásico en la fase de preferencias, sobre todo en el mundo open source. Pero no lo ha hecho desaparecer: la receta estándar hoy es un apilamiento — SFT, luego optimización de preferencias (DPO y sus variantes), y después RL con recompensas verificables (GRPO, popularizado por DeepSeek-R1 a principios de 2025) para el razonamiento. El detalle está en el capítulo 08.
Todas esas etapas comparten un problema de coste: modifican todos los parámetros del modelo. Para un modelo de 70 mil millones de parámetros son varios días en un cluster de decenas de GPUs — decenas de miles de dólares.
LoRA
LoRA congela los pesos principales y aprende pequeñas matrices adicionales de bajo rango.
En vez de modificar directamente una matriz enorme W, aprende una corrección:
W' = W + ΔW
Donde ΔW se escribe como el producto de dos matrices mucho más pequeñas. El rango controla cuánta expresividad tiene esa corrección.
Qué cambia realmente
LoRA no añade conocimiento ilimitado. Ajusta rutas internas para que ciertos patrones sean más probables:
- responder con un formato específico
- adoptar una terminología de dominio
- imitar un estilo editorial
- seguir ejemplos de una tarea recurrente
Para conocimiento factual cambiante, RAG suele ser mejor. Para comportamiento repetido y formato estable, fine-tuning puede ser más adecuado.
Variante popular: QLoRA carga el modelo base en 4 bits para reducir aún más el coste de memoria, manteniendo los adaptadores LoRA en 16 bits. Para la mecánica de la quantization en sí (FP32 → INT4 → INT2, lo que se pierde en cada nivel), ver el capítulo 18.
Frameworks como Hugging Face PEFT, Axolotl o Unsloth — hoy la herramienta más habitual para hacer LoRA/QLoRA sobre una sola GPU — te permiten lanzar un fine-tuning en unas pocas líneas de Python. La verdadera dificultad no es técnica: es construir un dataset de calidad. Un buen fine-tuning empieza con 500 ejemplos escritos con cuidado, no con 10.000 generados por ChatGPT.
Lo siguiente
Hasta ahora hemos tratado texto. Pero el mismo principio de tokens puede extenderse a imágenes, audio y otros datos. Solo hay que convertirlos en secuencias que el Transformer pueda leer.
Actualizado el