Capítulo 1: ¿Qué es el Fine-Tuning?
Personalización de modelos preentrenados para sus necesidades
El fine-tuning es el proceso de tomar un modelo de lenguaje preentrenado y continuar su entrenamiento con un conjunto de datos específico para adaptarlo a tareas o dominios particulares.
La base del aprendizaje por transferencia
¿Qué sucede durante el preentrenamiento?
Antes de que un modelo pueda ser ajustado mediante fine-tuning, pasa por el preentrenamiento:
- Recolección de datos: Billones de tokens de libros, sitios web, código, etc.
- Predicción del siguiente token: El modelo aprende a predecir lo que sigue
- Adquisición de conocimiento: El modelo desarrolla comprensión del lenguaje, hechos, razonamiento
- Capacidades generales: Lectura, escritura, resumen, programación y más
Modelos como Llama-3.1 se preentrenan con más de 15 billones de tokens, lo que les otorga un conocimiento y capacidades amplias antes de cualquier personalización.
Qué cambia el Fine-Tuning
Cuando realiza fine-tuning a un modelo, está modificando sus pesos internos para:
1. Adaptarse a tareas específicas
- Seguir formatos de instrucciones particulares
- Generar estructuras de salida específicas (JSON, markdown, etc.)
- Enfocarse en ciertos tipos de problemas
2. Aprender conocimiento de dominio
- Terminología y protocolos médicos
- Razonamiento jurídico y citas legales
- Procesos y lenguaje específicos de la empresa
3. Ajustar comportamiento y estilo
- Tono de voz (formal, casual, técnico)
- Preferencias de longitud de respuesta
- Rasgos de personalidad y carácter
Preentrenamiento vs Fine-Tuning
| Aspecto | Preentrenamiento | Fine-Tuning |
|---|---|---|
| Tamaño de los datos | Billones de tokens | Miles a millones |
| Cómputo | Miles de GPUs, meses | 1-8 GPUs, horas a días |
| Objetivo | Comprensión general del lenguaje | Adaptación a tareas específicas |
| Quién lo realiza | Grandes laboratorios de IA | Cualquier persona con acceso a GPU |
| Costo | Millones de dólares | Cientos a miles |
El proceso de Fine-Tuning
Paso 1: Elegir un modelo base
Seleccione un modelo preentrenado apropiado para su caso de uso:
from transformers import AutoModelForCausalLM
# Load a pre-trained base model
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B")
Paso 2: Preparar su conjunto de datos
Formatee sus datos para la tarea de entrenamiento:
# Example instruction-following format
training_example = {
"instruction": "Summarize the following article",
"input": "The European Central Bank announced...",
"output": "The ECB raised interest rates by 0.25%..."
}
Paso 3: Configurar el entrenamiento
Configure los parámetros de entrenamiento:
from transformers import TrainingArguments
training_args = TrainingArguments(
output_dir="./fine-tuned-model",
learning_rate=2e-5,
num_train_epochs=3,
per_device_train_batch_size=4,
)
Paso 4: Entrenar
Ejecute el proceso de fine-tuning:
from trl import SFTTrainer
trainer = SFTTrainer(
model=model,
train_dataset=dataset,
args=training_args,
)
trainer.train()
Paso 5: Evaluar y desplegar
Pruebe su modelo y despliegue:
# Save the fine-tuned model
model.save_pretrained("./my-custom-model")
# Use it for inference
output = model.generate(input_ids, max_new_tokens=100)
Qué puede lograr el Fine-Tuning
✅ Resultados excelentes
- Transferencia de estilo: Hacer que un modelo escriba con la voz de su empresa
- Seguimiento de formato: Generar estructuras JSON específicas de forma confiable
- Especialización de dominio: Experiencia médica, legal, financiera
- Seguimiento de instrucciones: Seguir instrucciones complejas de varios pasos
- Personaje/persona: Personalidad y comportamiento consistentes
⚠️ Resultados moderados
- Nuevos idiomas: Funciona pero puede requerir una cantidad significativa de datos
- Razonamiento complejo: Mejoras posibles pero limitadas
- Conocimiento factual: Es mejor usar RAG para hechos dinámicos
❌ Resultados pobres
- Información en tiempo real: El modelo no puede aprender lo que no fue entrenado
- Precisión matemática: El fine-tuning por sí solo no corrige errores de cálculo
- Cambios fundamentales de arquitectura: No puede añadir nuevas capacidades
Tipos de Fine-Tuning
1. Fine-Tuning completo
Actualización de todos los parámetros del modelo:
- Mayor potencial de personalización
- Requiere más memoria y cómputo
- Riesgo de olvido catastrófico
2. Fine-Tuning eficiente en parámetros (PEFT)
Actualización solo de un pequeño subconjunto de parámetros:
- Requisitos de memoria mucho menores
- Entrenamiento más rápido
- Calidad a menudo comparable al fine-tuning completo
- Ejemplos: LoRA, QLoRA, Prefix Tuning, IA3
3. Instruction Tuning
Entrenamiento con pares instrucción-respuesta:
- Enseña a los modelos a seguir instrucciones
- Utiliza formatos como Alpaca o ShareGPT
- Base para modelos tipo chat
4. Alignment/RLHF
Entrenamiento de modelos para alinearse con preferencias humanas:
- Utiliza retroalimentación humana o datos de preferencias
- Métodos: RLHF, DPO, ORPO
- Crea modelos útiles, seguros y honestos
Ejemplo del mundo real
Suponga que está construyendo un bot de soporte al cliente para una empresa de software:
Sin Fine-Tuning
El modelo base podría:
- Dar respuestas genéricas y extensas
- No conocer las características de su producto
- Usar un tono inconsistente
- No emplear la terminología específica de su empresa
Con Fine-Tuning
El modelo personalizado puede:
- Responder de forma concisa con la voz de su empresa
- Referenciar correctamente características específicas del producto
- Seguir las plantillas de respuesta de su equipo de soporte
- Escalar adecuadamente cuando sea necesario
# Example training data for support bot
examples = [
{
"instruction": "Customer asks about pricing",
"input": "How much does the Pro plan cost?",
"output": "Great question! Our Pro plan is $29/month when billed annually, or $35/month for monthly billing. It includes unlimited projects, priority support, and advanced analytics. Would you like me to explain any specific features?"
},
# ... hundreds more examples
]
Puntos clave
✅ El fine-tuning adapta modelos preentrenados a tareas o dominios específicos
✅ Se basa en el aprendizaje por transferencia—aprovechando el conocimiento del preentrenamiento
✅ Existen diferentes métodos (completo, PEFT, instruction tuning, alignment)
✅ El fine-tuning es potente pero no siempre es la solución adecuada
✅ El proceso implica: modelo base → sus datos → entrenamiento → modelo personalizado
Próximos pasos
Ahora que entiende qué es el fine-tuning, exploremos cuándo es la opción adecuada en Capítulo 2: Cuándo hacer Fine-Tuning vs usar RAG.
Comprobación rápida
Antes de continuar, asegúrese de poder responder:
- ¿Cuál es la relación entre preentrenamiento y fine-tuning?
- ¿Cuáles son tres cosas que el fine-tuning puede ayudar a un modelo a aprender?
- ¿Cuál es la diferencia entre fine-tuning completo y PEFT?