TRL documentation

Introducción

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Introducción

TRL es una biblioteca integral para el entrenamiento posterior de modelos de base mediante técnicas como Supervised Fine-Tuning (SFT), Group Relative Policy Optimization (GRPO) y Direct Preference Optimization (DPO).

Ejemplos rápidos

Comience de inmediato con los entrenadores más populares de TRL. Cada ejemplo utiliza modelos compactos para una experimentación rápida.

Ajuste fino supervisado

from trl import SFTTrainer
from datasets import load_dataset

trainer = SFTTrainer(
    model="Qwen/Qwen2.5-0.5B",
    train_dataset=load_dataset("trl-lib/Capybara", split="train"),
)
trainer.train()

Optimización de Política Relativa de Grupo

accuracy_reward requiere math-verify, que puedes instalar con pip install trl[math_verify].

from trl import GRPOTrainer
from datasets import load_dataset
from trl.rewards import accuracy_reward

trainer = GRPOTrainer(
    model="Qwen/Qwen2.5-0.5B-Instruct",
    train_dataset=load_dataset("trl-lib/DeepMath-103K", split="train"),
    reward_funcs=accuracy_reward,
)
trainer.train()

Optimización de Preferencias Directas

from trl import DPOTrainer
from datasets import load_dataset

trainer = DPOTrainer(
    model="Qwen/Qwen2.5-0.5B-Instruct",
    train_dataset=load_dataset("trl-lib/ultrafeedback_binarized", split="train"),
)
trainer.train()

Modelado de recompensas

from trl import RewardTrainer
from datasets import load_dataset

dataset = load_dataset("trl-lib/ultrafeedback_binarized", split="train")

trainer = RewardTrainer(
    model="Qwen/Qwen2.5-0.5B-Instruct",
    train_dataset=dataset,
)
trainer.train()

Interfaz de línea de comandos

Omite el código por completo: entrena directamente desde tu terminal:

# SFT: Fine-tune on instructions
trl sft --model_name_or_path Qwen/Qwen2.5-0.5B \
    --dataset_name trl-lib/Capybara

# DPO: Align with preferences  
trl dpo --model_name_or_path Qwen/Qwen2.5-0.5B-Instruct \
    --dataset_name trl-lib/ultrafeedback_binarized

# Reward: Train a reward model
trl reward --model_name_or_path Qwen/Qwen2.5-0.5B-Instruct \
    --dataset_name trl-lib/ultrafeedback_binarized

¿Qué sigue?

📚 Más información

🚀 Escala

💡 Ejemplos

Solución de problemas

¿Sin memoria?

Reduce el tamaño del lote y habilita las optimizaciones:

SFT
DPO
GRPO
training_args = SFTConfig(
    per_device_train_batch_size=1,  # Start small
    gradient_accumulation_steps=8,  # Maintain effective batch size
)

¿La pérdida no disminuye?

Prueba a ajustar la tasa de aprendizaje:

training_args = SFTConfig(learning_rate=2e-5)  # Good starting point

Para obtener más ayuda, abre un issue en GitHub.

Update on GitHub