Jonatan Matajonmatum.com
conceptosnotasexperimentosensayos
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Conceptos

Ajuste Fino

Proceso de especializar un modelo pre-entrenado en una tarea o dominio específico mediante entrenamiento adicional con datos curados, adaptando su comportamiento sin partir desde cero.

evergreen#fine-tuning#llm#transfer-learning#lora#rlhf#training

¿Qué es?

Fine-tuning es el proceso de tomar un modelo de lenguaje pre-entrenado y entrenarlo adicionalmente con datos específicos para adaptarlo a una tarea, dominio o estilo particular. En lugar de entrenar desde cero (costoso e impráctico), se aprovecha el conocimiento general del modelo base y se especializa.

¿Cuándo usar fine-tuning?

La decisión entre fine-tuning, RAG y prompt engineering depende del problema:

CriterioPrompt engineeringRAGFine-tuning
Costo inicialBajoMedioAlto
Latencia en producciónBajaMedia (retrieval)Baja
Conocimiento actualizableNoSíNo (requiere reentrenar)
Estilo/formato consistenteLimitadoLimitadoExcelente
Terminología de dominioLimitadoBuenoExcelente
Datos necesarios0Documentos100-10,000 ejemplos
MantenimientoBajoMedio (índice)Alto (reentrenamiento)

Regla práctica: empezar con prompt engineering, agregar RAG si se necesita conocimiento externo, y recurrir a fine-tuning solo cuando el modelo no logra el formato, estilo o terminología deseados.

Técnicas de fine-tuning

Full fine-tuning

Actualiza todos los parámetros del modelo. Produce los mejores resultados pero requiere:

  • GPUs con mucha memoria (A100 80GB o superior)
  • Datasets grandes (miles de ejemplos)
  • Riesgo de «olvido catastrófico» del conocimiento base

LoRA (Low-Rank Adaptation)

Congela el modelo base y entrena pequeñas matrices de adaptación de bajo rango. En lugar de actualizar una matriz de pesos W de dimensión d×d, LoRA entrena dos matrices A (d×r) y B (r×d) donde r es mucho menor que d (típicamente 8-64).

QLoRA

LoRA sobre un modelo cuantizado a 4-bit. Permite fine-tuning de modelos de 70B parámetros en una sola GPU de 24GB.

RLHF (Reinforcement Learning from Human Feedback)

Alinea el modelo con preferencias humanas usando un modelo de recompensa entrenado con comparaciones humanas. Es como se entrenan Claude, GPT-4 y otros modelos de chat.

Ejemplo: LoRA con PEFT

from datasets import load_dataset
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments
from peft import LoraConfig, get_peft_model
from trl import SFTTrainer
 
model_id = "meta-llama/Llama-3.1-8B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True)  # QLoRA
 
# Configuración LoRA
lora_config = LoraConfig(
    r=16,                     # rango de la adaptación
    lora_alpha=32,            # factor de escala
    target_modules=["q_proj", "v_proj"],  # capas a adaptar
    lora_dropout=0.05,
    task_type="CAUSAL_LM",
)
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()  # ~0.1% del total
 
# Dataset en formato instrucción-respuesta
dataset = load_dataset("json", data_files="training_data.jsonl")
 
trainer = SFTTrainer(
    model=model,
    train_dataset=dataset["train"],
    args=TrainingArguments(
        output_dir="./output",
        num_train_epochs=3,
        per_device_train_batch_size=4,
        learning_rate=2e-4,
    ),
    peft_config=lora_config,
)
trainer.train()
model.save_pretrained("./lora-adapter")  # Solo guarda el adaptador (~50MB)

El adaptador resultante pesa ~50MB en lugar de los ~16GB del modelo completo, y se puede cargar sobre el modelo base en producción.

Preparación de datos

La calidad del dataset es el factor más determinante:

  • Formato: pares instrucción-respuesta en JSONL, consistentes en estructura
  • Calidad > cantidad: 500 ejemplos bien curados superan a 10,000 ruidosos
  • Diversidad: cubrir la variedad de casos de uso esperados
  • Datos sintéticos: usar un modelo más capaz para generar datos de entrenamiento es una práctica común
{"instruction": "Clasifica el sentimiento", "input": "El servicio fue excelente", "output": "positivo"}
{"instruction": "Clasifica el sentimiento", "input": "Tardaron 2 horas en atenderme", "output": "negativo"}

Evaluación del modelo fine-tuned

No basta con que el loss baje — hay que evaluar en el contexto real de uso:

  • Held-out set: reservar 10-20% de los datos para evaluación
  • Métricas de tarea: accuracy, F1, BLEU, ROUGE según el caso
  • Evaluación humana: comparar respuestas del modelo base vs. fine-tuned en casos reales
  • Regresión: verificar que el modelo no perdió capacidades generales

¿Por qué importa?

El fine-tuning permite adaptar un modelo general a un dominio específico con datos propios. Con LoRA y QLoRA, el costo de hardware bajó drásticamente — un fine-tuning de Llama 3.1 8B cabe en una GPU de 24GB. La decisión clave no es cómo hacer fine-tuning, sino si realmente lo necesitas: prompt engineering y RAG resuelven la mayoría de casos sin el costo de mantenimiento de un modelo custom.

Referencias

  • LoRA: Low-Rank Adaptation of Large Language Models — Hu et al., 2021. Método fundacional de adaptación de bajo rango.
  • QLoRA: Efficient Finetuning of Quantized LLMs — Dettmers et al., 2023. Fine-tuning en 4-bit para hardware consumer.
  • Hugging Face PEFT — Hugging Face, 2024. Librería para fine-tuning eficiente con LoRA, QLoRA y otros métodos.
  • Hugging Face Training Guide — Hugging Face, 2024. Guía práctica de fine-tuning con Transformers.
  • How to Fine-Tune Chat Models — OpenAI, 2024. Guía de fine-tuning para modelos de chat con la API de OpenAI.

Contenido relacionado

  • Modelos de Lenguaje de Gran Escala

    Redes neuronales masivas basadas en la arquitectura Transformer, entrenadas con enormes corpus de texto para comprender y generar lenguaje natural con capacidades emergentes como razonamiento, traducción y generación de código.

  • Inteligencia Artificial

    Campo de la informática dedicado a crear sistemas capaces de realizar tareas que normalmente requieren inteligencia humana, desde el razonamiento y la percepción hasta la generación de lenguaje.

  • Datos Sintéticos

    Datos generados algorítmicamente que replican las propiedades estadísticas de datos reales, usados para entrenar, evaluar y probar sistemas de IA cuando los datos reales son escasos, costosos o sensibles.

Conceptos