TRL documentation

Exemplos

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Exemplos

O diretório examples/ contém uma coleção de exemplos autossuficientes que demonstram como usar a biblioteca TRL para diversas aplicações. Cada exemplo fica em sua própria pasta nomeada de acordo com o método e a tarefa que demonstra (por exemplo, grpo_wordle, sft_gpt_oss_chess), e contém tudo o que o exemplo precisa: scripts, notebooks, prompts, modelos de chat e código de avaliação.

Scripts básicos de treinamento com um único trainer não são exemplos: eles estão em trl/scripts e são expostos por meio da interface de linha de comando (trl sft, trl dpo, trl grpo, …). A página de documentação de cada trainer também contém um snippet completo e executável.

Os recursos compartilhados estão na raiz de examples/:

  • examples/accelerate_configs: 🤗 Arquivos de configuração do Accelerate para configurações multi-GPU, DeepSpeed ZeRO, FSDP e paralelismo de contexto, usados por muitos exemplos.
  • examples/datasets: os scripts usados para gerar os conjuntos de dados do trl-lib utilizados em todos os exemplos.

Começando

Instale o TRL e as dependências adicionais da seguinte forma:

pip install --upgrade trl[quantization]

Verifique as dependências opcionais adicionais aqui. Os exemplos baseados em notebook são autossuficientes e podem ser executados no Colab gratuito; os exemplos baseados em script são executados em configurações de GPU única, multi-GPU ou DeepSpeed (veja Training Distribuído abaixo).

Índice

ExemploDescriçãoAbrir no Colab
async_distillation_mathDestilação on-policy assíncrona no GSM8K com experimental.async_distillation.AsyncDistillationTrainer: o professor é servido via HTTP com vLLM.
async_distillation_mopdDestilação on-policy com múltiplos professores (MOPD) com experimental.async_distillation.AsyncDistillationTrainer: funde os especialistas em matemática, código e seguimento de instruções do Open-MOPD em seu checkpoint SFT: de 17,5 para 24,2 no AIME24 e de 67,5 para 73,0 no IFEval em 60 passos (script, lançador do Hugging Face Jobs e README com os resultados).
async_grpo_harborTreinamento AsyncGRPO em uma suíte de tarefas Harbor por meio de qualquer agente de codificação instalado (mini-swe-agent, opencode, claude-code, …) servido via OpenEnv: o agente possui seu próprio loop em um sandbox e o TRL treina nos ids de tokens e logprobs registrados pelo proxy de captura.
async_grpo_mathGRPO assíncrono no GSM8K com experimental.async_grpo.AsyncGRPOTrainer, desacoplando a geração (servidor vLLM) do treinamento, incluindo uma variante LoRA que sincroniza apenas o adaptador com o servidor vLLM.
dpo_reduce_hallucinationsFine-tuning DPO de um Vision Language Model para reduzir alucinações usando o dataset openbmb/RLAIF-V-Dataset.
gold_chatbot_arenaGeneral Online Logit Distillation (GOLD) de um professor Qwen2 para um aluno Llama 3.2 (cross-tokenizer) em chatbot_arena_completions com experimental.gold.GOLDTrainer, com variantes de treinamento completo e LoRA.
gold_qwen3_vlDestilação de Logits Online Geral (GOLD) do Qwen3-VL-8B para alunos VLM menores com experimental.gold.GOLDTrainer, abrangendo destilação da mesma família (perda JSD) e entre famílias (perda ULD).
grpo_2048GRPO com chamadas de ferramentas para ensinar um modelo a jogar o jogo 2048.
grpo_browsergymGRPO com o ambiente OpenEnv do BrowserGym, com variantes de LLM e VLM.
grpo_carlaGRPO com o ambiente de direção autônoma CARLA OpenEnv, com variantes de LLM e VLM (respostas de ferramentas de imagens de câmera multimodais).
grpo_catchGRPO com o Catch (OpenSpiel) OpenEnv ambiente.
grpo_continuous_batchingGRPO com o motor de loteamento contínuo do Transformers para geração mais rápida em lotes grandes com comprimentos de conclusão variáveis.
grpo_echoTreinamento mínimo de GRPO com o ambiente OpenEnv Echo.
grpo_harborTreinamento GRPO contra uma suíte de tarefas do Harbor com um agente base plugável (harnesses bash / jupyter / terminal_notes). Consulte o guia de Integração com o Harbor.
grpo_ministral3_vlGRPO Ministral 3 com QLoRA em Colab gratuito.Open In Colab
grpo_multi_envTreinamento GRPO multiambiente: Wordle + Catch OpenEnv ambientes na mesma execução de treinamento.
grpo_qloraGRPO usando QLoRA no Colab gratuito.Open In Colab
grpo_qwen3_vlGRPO Qwen3-VL com QLoRA no Colab gratuito.Open In Colab
grpo_rnj_1_instructGRPO no rnj-1-instruct com QLoRA no Colab para adicionar capacidades de raciocínio.Open In Colab
grpo_setaTreinamento GRPO contra o ambiente SETA ORS no catálogo openreward.ai. Consulte o guia Integração OpenReward.
grpo_sql_agentGRPO para treinar um agente que responde perguntas consultando um banco de dados SQL (script e notebook; não executável no Colab gratuito devido a OOM).
grpo_sudokuGRPO para jogar Sudoku (TextArena) em um ambiente OpenEnv, partindo de um modelo SFT: 0, 10 e 22 puzzles resolvidos de 30 com 26 células vazias para os modelos base, SFT e SFT + GRPO (script, notebook e README com os resultados).Open In Colab
grpo_visual_mathFine-tuning GRPO de um modelo multimodal para raciocínio usando o dataset lmms-lab/multimodal-open-r1-8k-verified.
grpo_wordleGRPO para jogar Wordle (TextArena) em um ambiente OpenEnv (script e notebook).Open In Colab
gspo_mathGSPO via o GRPOTrainer para raciocínio matemático no conjunto de dados AI-MO/NuminaMath-TIR.
gspo_visual_mathGSPO via o GRPOTrainer para ajustar finamente um modelo multimodal para raciocínio usando o conjunto de dados lmms-lab/multimodal-open-r1-8k-verified.
lfm2_5_moe_research_agentLiquidAI/LFM2.5-8B-A1B em duas etapas: SFT completo em chamadas de função do xLAM em um nó 8xH100 com SFTTrainer, particionado no carregamento pela DistributedConfig dos transformers (paralelismo de especialistas com despacho de tokens, além de FSDP), seguido de GRPO de um agente de pesquisa multi-turno no HotpotQA com GRPOTrainer e environment_factory (ferramentas search / read, recompensa por correspondência exata).
mpo_visual_preferencesMPO por meio do DPOTrainer para alinhar um modelo multimodal com base em preferências usando o conjunto de dados HuggingFaceH4/rlaif-v_formatted e um conjunto de pesos de perda.
online_dpo_visual_mathFine-tuning online DPO de um Vision Language Model com experimental.online_dpo.OnlineDPOTrainer.
rloo_mathRLOO com o RLOOTrainer para raciocínio matemático no conjunto de dados AI-MO/NuminaMath-TIR com vLLM.
rloo_visual_mathFine-tuning RLOO de um modelo multimodal para raciocínio usando o dataset lmms-lab/multimodal-open-r1-8k-verified.
sdft_privileged_contextFine-tuning por auto-destilação com experimental.sdft.SDFTTrainer, destilando contexto privilegiado (somente do professor) para o modelo.
sdpo_mathSDPO com experimental.sdpo.SDPOTrainer usando recompensas matemáticas verificáveis e feedback opcional do ambiente em openai/gsm8k.
sft_beamSFT com LoRA de reflection/Beam-1.0-501B-A23B em um nó 8xB300 com SFTTrainer, fragmentado no momento do carregamento pelo DistributedConfig dos transformers (paralelismo de especialistas com despacho de tokens).
sft_diffusion_gemmaSFT do modelo de linguagem de difusão por blocos DiffusionGemma no GSM8K, estendendo o SFTTrainer com um objetivo de difusão por blocos.
sft_gemma3SFT do Gemma 3 no dataset Codeforces COTS.
sft_gemma3_visionSFT do Gemma 3 em tarefas de visão para texto.
sft_gpt_oss_chessFine-tuning completo de openai/gpt-oss-20b em puzzles de xadrez com SFTTrainer: o TRL carrega seus especialistas MXFP4 dequantizados, e os especialistas fine-tunados são quantizados de volta para MXFP4 para serem servidos como o original.
sft_ministral3_vlSFT do Ministral 3 com QLoRA no Colab gratuito.Open In Colab
sft_mistral_large_4SFT com LoRA do mistralai/Mistral-Large-4-1T-A52B sobre seus pesos FP8 em um único nó 8xB300, usando SFTTrainer, com sharding no momento do carregamento via DistributedConfig do transformers (paralelismo de especialistas com despacho de tokens).
sft_nemotron_3SFT dos modelos NVIDIA Nemotron 3 (script e notebook de LoRA).Open In Colab
sft_qloraSFT usando QLoRA no Colab gratuito.Open In Colab
sft_qwen3_8b_1m_contextSFT do Qwen3-8B em sequências de 1.048.576 tokens com paralelismo de contexto, em um nó 8xH100.
sft_qwen3_vlSFT do Qwen3-VL com QLoRA no Colab gratuito.Open In Colab
tail_sft_gsm8kTailSFT no GSM8K estendendo o SFTTrainer com filtragem de perda da política inicial.
sft_muse_spark_openSFT com LoRA de meta-modelos/Muse-Spark-Open-816B-A42B em 8 nós com SFTTrainer, fragmentado no momento do carregamento pelo DistributedConfig dos transformers (paralelismo de especialistas com despacho de tokens).
sft_tool_callingEnsinando a um modelo a chamar ferramentas sem suporte nativo a chamadas de ferramentas usando SFT com QLoRA (script, modelo de chat e notebook).Open In Colab
sft_visual_chatSFT de um modelo de linguagem visual em um ambiente de chat. Testado apenas com LLaVA 1.5, LLaVA 1.6 e Llama-3.2-11B-Vision-Instruct; os usuários podem observar comportamentos inesperados em outras arquiteturas de modelo.
xtokenX-Token destilação de conhecimento cross-tokenizer off-policy com experimental.gold.GOLDTrainer, incluindo a preparação da matriz de projeção.

Treinamento Distribuído

Você pode executar os scripts de exemplo em várias GPUs com 🤗 Accelerate:

accelerate launch --config_file=examples/accelerate_configs/multi_gpu.yaml --num_processes {NUM_GPUS} path_to_script.py --all_arguments_of_the_script

Para DeepSpeed ZeRO-{1,2,3}:

accelerate launch --config_file=examples/accelerate_configs/deepspeed_zero{1,2,3}.yaml --num_processes {NUM_GPUS} path_to_script.py --all_arguments_of_the_script

Ajuste NUM_GPUS e --all_arguments_of_the_script conforme necessário.

Update on GitHub