TRL documentation
Introducción
Primeros pasos
Guías conceptuales
Trainers
Guías de uso
Interfaz de línea de comandos (CLI)Entrenamiento con JobsPersonalización del entrenamientoReducción del uso de memoriaAcelerar el entrenamientoDistribución del entrenamientoEntrenamiento en AWS TrainiumEntrenamiento en GPUs de AMDEntrenamiento con más de 1M de tokensUso de modelos entrenados
Integraciones
Ejemplos
API
Experimental
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
- Entrenador SFT - Guía completa de SFT
- Entrenador DPO - Alineación de preferencias
- Entrenador GRPO - Optimización relativa de política por grupo
🚀 Escala
- Entrenamiento distribuido - Configuraciones multi-GPU
- Optimización de memoria - Entrenamiento eficiente
- Integración de PEFT - LoRA y QLoRA
💡 Ejemplos
- Scripts de ejemplo - Código listo para producción
- Tutoriales de la comunidad - Guías externas
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
)training_args = DPOConfig(
per_device_train_batch_size=1, # Start small
gradient_accumulation_steps=8, # Maintain effective batch size
)training_args = GRPOConfig(
per_device_train_batch_size=1, # Start small
gradient_accumulation_steps=8, # Maintain effective batch size
num_generations=4, # Reduce from default 8 (GRPO generates num_generations completions per prompt)
max_completion_length=512, # Tune based on task; longer sequences cost more memory
)¿La pérdida no disminuye?
Prueba a ajustar la tasa de aprendizaje:
training_args = SFTConfig(learning_rate=2e-5) # Good starting pointPara obtener más ayuda, abre un issue en GitHub.
Update on GitHub