TRL documentation
Ejemplos
Ejemplos
El directorio examples/ contiene una colección de ejemplos autónomos que demuestran cómo usar la biblioteca TRL para diversas aplicaciones. Cada ejemplo se encuentra en su propia carpeta nombrada según el método y la tarea que ilustra (p. ej. grpo_wordle, sft_gpt_oss_chess), y contiene todo lo que el ejemplo necesita: scripts, notebooks, prompts, plantillas de chat y código de evaluación.
Los scripts básicos de entrenamiento con un solo entrenador no son ejemplos: se encuentran en trl/scripts y se exponen a través de la interfaz de línea de comandos (trl sft, trl dpo, trl grpo, …). La página de documentación de cada entrenador también contiene un fragmento completo y ejecutable.
Los recursos compartidos se encuentran en la raíz de examples/:
examples/deepspeed_configs: archivos de configuración de DeepSpeed ZeRO, que se pasan con--deepspeedy se utilizan en muchos ejemplos.examples/fsdp_configs: archivos de configuración de FSDP, que se pasan con--fsdp --fsdp_config(un--fsdpsimple en la línea de comandos requiere transformers 5.10 o posterior; con versiones anteriores, establecefsdp=Trueen la configuración de entrenamiento).examples/datasets: los scripts utilizados para generar los conjuntos de datos detrl-libque se usan en los ejemplos.
Introducción
Instale TRL y las dependencias adicionales de la siguiente manera:
pip install --upgrade trl[quantization]
Consulte las dependencias opcionales adicionales aquí. Los ejemplos basados en notebooks son autosuficientes y pueden ejecutarse en Colab gratuito; los ejemplos basados en scripts se ejecutan en configuraciones de GPU única, multi-GPU o DeepSpeed (consulte Entrenamiento distribuido a continuación).
Índice
| Ejemplo | Descripción | Abrir en Colab |
|---|---|---|
async_distillation_math | Destilación asincrónica on-policy en GSM8K con experimental.async_distillation.AsyncDistillationTrainer: el modelo maestro se sirve a través de HTTP con vLLM. | |
async_distillation_mopd | Destilación en política con múltiples maestros (MOPD) con experimental.async_distillation.AsyncDistillationTrainer: fusiona los expertos de matemáticas, código y seguimiento de instrucciones de Open-MOPD en su punto de control SFT: de 17,5 a 24,2 en AIME24 y de 67,5 a 73,0 en IFEval en 60 pasos (script, lanzador de Hugging Face Jobs y README con los resultados). | |
async_grpo_harbor | Entrenamiento AsyncGRPO en un conjunto de tareas de Harbor a través de cualquier agente de codificación instalado (mini-swe-agent, opencode, claude-code, …) servido mediante OpenEnv: el agente posee su propio bucle en un sandbox y TRL entrena con los ids de tokens y logprobs registrados por el proxy de captura. | |
async_grpo_math | GRPO asíncrono en GSM8K con AsyncGRPOTrainer, desacoplando la generación (servidor vLLM) del entrenamiento, e incluyendo una variante LoRA que sincroniza solo el adaptador con el servidor vLLM. | |
dpo_reduce_hallucinations | Ajuste fino con DPO de un modelo de lenguaje visual para reducir alucinaciones utilizando el conjunto de datos openbmb/RLAIF-V-Dataset. | |
gold_chatbot_arena | Destilación de logit en línea general (GOLD) de un maestro Qwen2 a un estudiante Llama 3.2 (tokenizador cruzado) en chatbot_arena_completions con experimental.gold.GOLDTrainer, con variantes de entrenamiento completo y LoRA. | |
gold_qwen3_vl | Destilación de logit en línea general (GOLD) de Qwen3-VL-8B en estudiantes VLM más pequeños con experimental.gold.GOLDTrainer, cubriendo la destilación de la misma familia (pérdida JSD) y entre familias (pérdida ULD). | |
grpo_2048 | GRPO con llamadas a herramientas para enseñar a un modelo a jugar al juego 2048. | |
grpo_browsergym | GRPO con el entorno OpenEnv de BrowserGym, con variantes de LLM y VLM. | |
grpo_carla | GRPO con el entorno de conducción autónoma CARLA OpenEnv, con variantes de LLM y VLM (respuestas de herramientas de imágenes de cámara multimodales). | |
grpo_catch | GRPO con el Catch (OpenSpiel) OpenEnv environment. | |
grpo_continuous_batching | GRPO con el motor de lotes continuos de transformers para una generación más rápida en lotes grandes con longitudes de finalización variables. | |
grpo_echo | Entrenamiento mínimo de GRPO con el entorno OpenEnv de Echo. | |
grpo_harbor | Entrenamiento de GRPO contra un conjunto de tareas de Harbor con un agente base intercambiable (harnesses de bash / jupyter / terminal_notes). Consulte la guía de Integración de Harbor. | |
grpo_ministral3_vl | GRPO Ministral 3 con QLoRA en Colab gratuito. | |
grpo_multi_env | Entrenamiento GRPO multi-entorno: Wordle + Catch OpenEnv entornos en la misma ejecución de entrenamiento. | |
grpo_qlora | GRPO usando QLoRA en Colab gratuito. | |
grpo_qwen3_vl | GRPO Qwen3-VL con QLoRA en Colab gratuito. | |
grpo_rnj_1_instruct | GRPO en rnj-1-instruct con QLoRA en Colab para añadir capacidades de razonamiento. | |
grpo_seta | Entrenamiento de GRPO contra el entorno SETA ORS en el catálogo de openreward.ai. Consulte la guía de Integración de OpenReward. | |
grpo_sql_agent | GRPO para entrenar un agente que responde preguntas consultando una base de datos SQL (script y notebook; no ejecutable en Colab gratuito debido a OOM). | |
grpo_sudoku | GRPO para jugar al Sudoku (TextArena) en un entorno OpenEnv, partiendo de un modelo SFT: 0, 10 y 22 acertijos de 30 resueltos con 26 celdas vacías para los modelos base, SFT y SFT + GRPO (script, notebook y README con los resultados). | |
grpo_visual_math | Ajuste fino con GRPO de un modelo multimodal para razonamiento utilizando el conjunto de datos lmms-lab/multimodal-open-r1-8k-verified. | |
grpo_wordle | GRPO para jugar a Wordle (TextArena) en un entorno OpenEnv (script y cuaderno). | |
gspo_math | GSPO mediante el GRPOTrainer para razonamiento matemático en el conjunto de datos AI-MO/NuminaMath-TIR. | |
gspo_visual_math | GSPO a través del GRPOTrainer para ajustar un modelo multimodal para razonamiento utilizando el conjunto de datos lmms-lab/multimodal-open-r1-8k-verified. | |
lfm2_5_moe_research_agent | LiquidAI/LFM2.5-8B-A1B en dos pasos: SFT completo en xLAM function calling en un nodo 8xH100 con SFTTrainer, fragmentado en el momento de la carga mediante DistributedConfig de transformers (paralelismo de expertos con despacho de tokens, más FSDP), y luego GRPO de un agente de investigación de varios turnos en HotpotQA con GRPOTrainer y environment_factory (herramientas search / read, recompensa de coincidencia exacta). | |
mpo_visual_preferences | MPO a través de DPOTrainer para alinear un modelo multimodal basado en preferencias utilizando el conjunto de datos HuggingFaceH4/rlaif-v_formatted y un conjunto de pesos de pérdida. | |
online_dpo_visual_math | Ajuste fino con DPO en línea de un modelo de visión y lenguaje con experimental.online_dpo.OnlineDPOTrainer. | |
rloo_math | RLOO con RLOOTrainer para razonamiento matemático en el conjunto de datos AI-MO/NuminaMath-TIR con vLLM. | |
rloo_visual_math | Ajuste fino con RLOO de un modelo multimodal para razonamiento utilizando el conjunto de datos lmms-lab/multimodal-open-r1-8k-verified. | |
sdft_privileged_context | Ajuste fino mediante auto-destilación con experimental.sdft.SDFTTrainer, destilando el contexto privilegiado (solo del maestro) en el modelo. | |
sdpo_math | SDPO con experimental.sdpo.SDPOTrainer usando recompensas matemáticas verificables y retroalimentación opcional del entorno en openai/gsm8k. | |
sft_agent_traces | SFT de Qwen3.5-2B en trazas de agentes: Qwen3.5-397B-A17B resuelve tareas de análisis de datos de Harbor como un agente OpenCode en Hugging Face Sandboxes, registrado por OpenEnv, y el estudiante se entrena en las conversaciones resueltas con pérdida solo de asistente. En tareas cuyos datos no fueron tocados por ninguna traza, unas 500 trazas lo llevan del 7,6% al 33,3% (scripts de rollout, dataset y entrenamiento, y README con los resultados). | |
sft_beam | SFT con LoRA de reflection/Beam-1.0-501B-A23B en un nodo de 8xB300 con SFTTrainer, fragmentado en el momento de la carga mediante DistributedConfig de transformers (paralelismo de expertos con despacho de tokens). | |
sft_diffusion_gemma | SFT del modelo de lenguaje de difusión por bloques DiffusionGemma en GSM8K mediante la extensión de SFTTrainer con un objetivo de difusión por bloques. | |
sft_gemma3 | SFT de Gemma 3 en el conjunto de datos Codeforces COTS. | |
sft_gemma3_vision | SFT de Gemma 3 en tareas de visión a texto. | |
sft_gpt_oss_chess | Ajuste fino completo de openai/gpt-oss-20b con acertijos de ajedrez mediante SFTTrainer: TRL carga sus expertos MXFP4 descuantizados, y los expertos ajustados se recuantizan a MXFP4 para servirlos como el original. | |
sft_ministral3_vl | SFT de Ministral 3 con QLoRA en Colab gratuito. | |
sft_mistral_large_4 | SFT con LoRA de mistralai/Mistral-Large-4-1T-A52B sobre sus pesos FP8 en un nodo de 8xB300 con SFTTrainer, fragmentado en el momento de la carga mediante DistributedConfig de transformers (paralelismo de expertos con despacho de tokens). | |
sft_nemotron_3 | SFT de los modelos NVIDIA Nemotron 3 (script y cuaderno de LoRA). | |
sft_qlora | SFT con QLoRA en Colab gratuito. | |
sft_qwen3_8b_1m_context | SFT de Qwen3-8B en secuencias de 1.048.576 tokens con paralelismo de contexto, en un nodo 8xH100. | |
sft_qwen3_vl | SFT de Qwen3-VL con QLoRA en Colab gratuito. | |
tail_sft_gsm8k | TailSFT en GSM8K extendiendo SFTTrainer con filtrado de pérdida de la política inicial. | |
sft_muse_spark_open | SFT con LoRA de meta-models/Muse-Spark-Open-816B-A42B en 8 nodos con SFTTrainer, fragmentado en el momento de la carga por DistributedConfig de transformers (paralelismo de expertos con despacho de tokens). | |
sft_tool_calling | Enseñar la invocación de herramientas a un modelo sin soporte nativo de invocación de herramientas mediante SFT con QLoRA (script, plantilla de chat y cuaderno). | |
sft_visual_chat | SFT de un modelo de visión y lenguaje en un entorno de chat. Solo probado con LLaVA 1.5, LLaVA 1.6 y Llama-3.2-11B-Vision-Instruct; los usuarios pueden observar un comportamiento inesperado en otras arquitecturas de modelos. | |
xtoken | X-Token: destilación de conocimiento entre tokenizadores off-policy con experimental.gold.GOLDTrainer, incluida la preparación de la matriz de proyección. |
Entrenamiento distribuido
Puede ejecutar los scripts de ejemplo en varias GPU con torchrun:
torchrun --nproc_per_node {NUM_GPUS} path_to_script.py --all_arguments_of_the_scriptPara DeepSpeed ZeRO-{1,2,3}:
torchrun --nproc_per_node {NUM_GPUS} path_to_script.py --deepspeed examples/deepspeed_configs/zero{1,2,3}.json --all_arguments_of_the_scriptAjusta NUM_GPUS y --all_arguments_of_the_script según sea necesario.