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.