SFT rápido con Unsloth

Unsloth es una vía práctica para entrenar adaptadores rápido, especialmente con LoRA/QLoRA. Úsalo para prototipos serios, pero documenta todo como si fuera producción.

Objetivos de aprendizaje
  • Montar un script SFT pequeño con dataset propio.
  • Guardar adaptador, configuración y métricas.
  • Probar el modelo adaptado contra ejemplos no vistos.
En cristiano: checkpoint. Es una foto del entrenamiento en un momento concreto: pesos, configuración y estado. Te permite comparar o volver atrás.

Estructura recomendada

Terminal
fine-tune-soporte/
  data/
    train.jsonl
    validation.jsonl
    test.jsonl
  train_unsloth.py
  configs/
    soporte-lora.yaml
  outputs/
    adapter/
    logs/
  evals/
    eval_cases.jsonl
Idea clave. Unsloth documenta fine-tuning para personalizar comportamiento, conocimiento de dominio y tareas concretas, además de export a formatos como GGUF.

Script conceptual

Terminal
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig

dataset = load_dataset("json", data_files={
    "train": "data/train.jsonl",
    "validation": "data/validation.jsonl",
})

config = SFTConfig(
    output_dir="outputs/soporte-lora",
    max_length=2048,
    learning_rate=2e-4,
    num_train_epochs=1,
    logging_steps=10,
    eval_strategy="steps",
    eval_steps=50,
)

trainer = SFTTrainer(
    model="Qwen/Qwen3-4B-Instruct",
    args=config,
    train_dataset=dataset["train"],
    eval_dataset=dataset["validation"],
)

trainer.train()
trainer.save_model("outputs/adapter")
Cuidado. El ejemplo es deliberadamente conceptual: revisa la guía actual de Unsloth/TRL para la versión exacta de instalación, GPU y modelo que uses.
Comprueba que funciona. Ejecuta 20 casos de test antes y después del adaptador. Debe mejorar el objetivo sin empeorar seguridad, formato ni abstención.
Guardar y reabrir el proyecto.
Un entrenamiento útil deja tres cosas: adaptador, logs y una comparación antes/después.