TRL documentation

Exemples

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

Exemples

Le répertoire examples/ contient une collection d’exemples autonomes qui illustrent l’utilisation de la bibliothèque TRL pour diverses applications. Chaque exemple est situé dans son propre dossier nommé d’après la méthode et la tâche qu’il démontre (par exemple grpo_wordle, sft_gpt_oss_chess), et regroupe tout ce dont l’exemple a besoin : scripts, notebooks, prompts, modèles de chat et code d’évaluation.

Les scripts d’entraînement de base à un seul formateur ne sont pas des exemples : ils se trouvent dans trl/scripts et sont exposés via l’interface en ligne de commande (trl sft, trl dpo, trl grpo, …). La page de documentation de chaque formateur contient également un extrait de code complet et exécutable.

Les ressources partagées se trouvent à la racine de examples/ :

  • examples/deepspeed_configs : fichiers de configuration DeepSpeed ZeRO, passés avec --deepspeed, utilisés par de nombreux exemples.
  • examples/fsdp_configs : fichiers de configuration FSDP, passés avec --fsdp --fsdp_config (un simple --fsdp sur la ligne de commande nécessite transformers 5.10 ou une version ultérieure ; avec des versions antérieures, définissez fsdp=True dans la configuration d’entraînement).
  • examples/datasets : les scripts utilisés pour générer les jeux de données trl-lib utilisés dans les exemples.

Commencer

Installez TRL et les dépendances supplémentaires comme suit :

pip install --upgrade trl[quantization]

Vérifiez les dépendances optionnelles supplémentaires ici. Les exemples basés sur des notebooks sont autonomes et peuvent s’exécuter sur Colab gratuit ; les exemples basés sur des scripts s’exécutent sur des configurations mono-GPU, multi-GPU ou DeepSpeed (voir Entraînement distribué ci-dessous).

Index

ExempleDescriptionOuvrir dans Colab
async_distillation_mathDistillation asynchrone on-policy sur GSM8K avec experimental.async_distillation.AsyncDistillationTrainer : l'enseignant est servi via HTTP avec vLLM.
async_distillation_mopdDistillation sur politique multi-enseignants (MOPD) avec experimental.async_distillation.AsyncDistillationTrainer : fusionne les experts mathématiques, code et suivi d'instructions d'Open-MOPD dans leur point de contrôle SFT : de 17,5 à 24,2 sur AIME24 et de 67,5 à 73,0 sur IFEval en 60 étapes (script, lanceur Hugging Face Jobs et README avec les résultats).
async_grpo_harborEntraînement AsyncGRPO sur une suite de tâches Harbor via n’importe quel agent de codage installé (mini-swe-agent, opencode, claude-code, …) servi par OpenEnv : l’agent gère sa propre boucle dans un bac à sable et TRL s’entraîne sur les identifiants de jetons et les logprobs enregistrés par le proxy de capture.
async_grpo_mathGRPO asynchrone sur GSM8K avec AsyncGRPOTrainer, découplant la génération (serveur vLLM) de l’entraînement, y compris une variante LoRA qui ne synchronise que l’adaptateur avec le serveur vLLM.
dpo_reduce_hallucinationsAjustement fin DPO d'un modèle Vision Language pour réduire les hallucinations à l'aide du jeu de données openbmb/RLAIF-V-Dataset.
gold_chatbot_arenaDistillation de logit en ligne générale (GOLD) d’un enseignant Qwen2 vers un élève Llama 3.2 (tokeniseurs croisés) sur chatbot_arena_completions avec experimental.gold.GOLDTrainer, avec des variantes d’entraînement complet et LoRA.
gold_qwen3_vlDistillation en ligne générale des logits (GOLD) de Qwen3-VL-8B vers des étudiants VLM plus petits à l'aide de experimental.gold.GOLDTrainer, couvrant la distillation intra-famille (perte JSD) et inter-famille (perte ULD).
grpo_2048GRPO avec l'appel d'outils pour apprendre à un modèle à jouer au jeu 2048.
grpo_browsergymGRPO avec l'environnement OpenEnv de BrowserGym, avec des variantes LLM et VLM.
grpo_carlaGRPO avec l'environnement de conduite autonome CARLA OpenEnv, avec des variantes LLM et VLM (réponses d'outils multimodales à partir d'images de caméra).
grpo_catchGRPO avec le piège (OpenSpiel) OpenEnv environnement.
grpo_continuous_batchingGRPO avec le moteur de lotissement continu de Transformers pour une génération plus rapide sur de grands lots avec des longueurs de complétion variables.
grpo_echoEntraînement minimal de GRPO avec l'environnement OpenEnv Echo.
grpo_harborEntraînement GRPO face à une suite de tâches Harbor avec un agent de base modulaire (harnais bash / jupyter / terminal_notes). Consultez le guide Harbor Integration.
grpo_ministral3_vlGRPO Ministral 3 avec QLoRA sur Colab gratuit.Open In Colab
grpo_multi_envEntraînement GRPO multi-environnements : Wordle + Catch OpenEnv dans la même session d'entraînement.
grpo_qloraGRPO utilisant QLoRA sur Colab gratuit.Open In Colab
grpo_qwen3_vlGRPO Qwen3-VL avec QLoRA sur Colab gratuit.Open In Colab
grpo_rnj_1_instructGRPO sur rnj-1-instruct avec QLoRA sur Colab pour ajouter des capacités de raisonnement.Open In Colab
grpo_setaEntraînement GRPO contre l’environnement SETA ORS du catalogue openreward.ai. Consultez le guide Intégration OpenReward.
grpo_sql_agentGRPO pour entraîner un agent qui répond à des questions en interrogeant une base de données SQL (script et notebook ; non exécutable sur Colab gratuit en raison d'un OOM).
grpo_sudokuGRPO pour jouer au Sudoku (TextArena) dans un environnement OpenEnv, à partir d'un modèle SFT : 0, 10 et 22 grilles sur 30 résolues avec 26 cellules vides pour les modèles de base, SFT et SFT + GRPO (script, notebook et README avec les résultats).Open In Colab
grpo_visual_mathFine-tuning GRPO d'un modèle multimodal pour le raisonnement à l'aide du jeu de données lmms-lab/multimodal-open-r1-8k-verified.
grpo_wordleGRPO pour jouer à Wordle (TextArena) dans un environnement OpenEnv (script et notebook).Open In Colab
gspo_mathGSPO via le GRPOTrainer pour le raisonnement mathématique sur le jeu de données AI-MO/NuminaMath-TIR.
gspo_visual_mathGSPO via le GRPOTrainer pour l’ajustement fin d’un modèle multimodal de raisonnement en utilisant le jeu de données lmms-lab/multimodal-open-r1-8k-verified.
lfm2_5_moe_research_agentLiquidAI/LFM2.5-8B-A1B en deux étapes : SFT complet sur l’appel de fonctions xLAM sur un nœud 8xH100 avec SFTTrainer, sharding au chargement via DistributedConfig de transformers (parallélisme d’experts avec dispatch de tokens, plus FSDP), puis GRPO d’un agent de recherche multi-tours sur HotpotQA avec GRPOTrainer et environment_factory (outils search / read, récompense par correspondance exacte).
mpo_visual_preferencesMPO via le DPOTrainer pour aligner un modèle multimodal basé sur les préférences en utilisant le jeu de données HuggingFaceH4/rlaif-v_formatted et un ensemble de poids de perte.
online_dpo_visual_mathAjustement fin en ligne par DPO d'un modèle Vision Language avec experimental.online_dpo.OnlineDPOTrainer.
rloo_mathRLOO avec le RLOOTrainer pour le raisonnement mathématique sur le jeu de données AI-MO/NuminaMath-TIR avec vLLM.
rloo_visual_mathFine-tuning RLOO d'un modèle multimodal pour le raisonnement à l'aide du jeu de données lmms-lab/multimodal-open-r1-8k-verified.
sdft_privileged_contextAjustement fin par auto-distillation avec experimental.sdft.SDFTTrainer, distillant le contexte privilégié (réservé à l'enseignant) dans le modèle.
sdpo_mathSDPO avec experimental.sdpo.SDPOTrainer en utilisant des récompenses mathématiques vérifiables et un retour d'environnement facultatif sur openai/gsm8k.
sft_agent_tracesSFT de Qwen3.5-2B sur des traces d’agent : Qwen3.5-397B-A17B traite des tâches d’analyse de données Harbor en tant qu’agent OpenCode dans les Hugging Face Sandboxes, enregistré par OpenEnv, et l’élève s’entraîne sur les conversations résolues avec une perte uniquement sur les réponses de l’assistant. Sur des tâches dont les données n’ont été touchées par aucune trace, environ 500 traces le font passer de 7,6 % à 33,3 % (scripts de rollout, de jeu de données et d’entraînement, ainsi que le README avec les résultats).
sft_beamSFT LoRA de reflection/Beam-1.0-501B-A23B sur un nœud 8xB300 avec SFTTrainer, sharding au chargement via DistributedConfig de transformers (parallélisme d'experts avec dispatch de tokens).
sft_diffusion_gemmaSFT du modèle de langage à diffusion par blocs DiffusionGemma sur GSM8K en étendant le SFTTrainer avec un objectif de diffusion par blocs.
sft_gemma3SFT de Gemma 3 sur le jeu de données Codeforces COTS.
sft_gemma3_visionSFT de Gemma 3 sur des tâches de vision vers texte.
sft_gpt_oss_chessAjustement complet de openai/gpt-oss-20b sur des puzzles d'échecs avec SFTTrainer : TRL charge ses experts MXFP4 déquantifiés, et les experts ajustés sont re-quantifiés en MXFP4 pour être servis comme l'original.
sft_ministral3_vlSFT Ministral 3 avec QLoRA sur Colab gratuit.Open In Colab
sft_mistral_large_4SFT LoRA de mistralai/Mistral-Large-4-1T-A52B sur ses poids FP8 sur un nœud 8xB300 avec SFTTrainer, fractionné au chargement par DistributedConfig de transformers (parallélisme d'experts avec dispatch de jetons).
sft_nemotron_3SFT des modèles NVIDIA Nemotron 3 (script et notebook LoRA).Open In Colab
sft_qloraSFT avec QLoRA sur Colab gratuit.Open In Colab
sft_qwen3_8b_1m_contextSFT de Qwen3-8B sur des séquences de 1 048 576 jetons avec parallélisme de contexte, sur un nœud 8xH100.
sft_qwen3_vlSFT de Qwen3-VL avec QLoRA sur Colab gratuit.Open In Colab
tail_sft_gsm8kTailSFT sur GSM8K en étendant SFTTrainer avec un filtrage de la perte de politique initiale.
sft_muse_spark_openSFT LoRA des méta-modèles/Muse-Spark-Open-816B-A42B sur 8 nœuds avec SFTTrainer, fractionné au chargement par DistributedConfig de transformers (parallélisme d'experts avec dispatch de jetons).
sft_tool_callingEnseigner l'appel d'outils à un modèle sans support natif de l'appel d'outils à l'aide de SFT avec QLoRA (script, modèle de discussion et notebook).Open In Colab
sft_visual_chatSFT d'un modèle de vision-langage dans un contexte de chat. Testé uniquement avec LLaVA 1.5, LLaVA 1.6 et Llama-3.2-11B-Vision-Instruct ; les utilisateurs peuvent rencontrer un comportement inattendu avec d'autres architectures de modèles.
xtokenX-Token distillation de connaissances cross-tokenizer hors politique avec experimental.gold.GOLDTrainer, y compris la préparation de la matrice de projection.

Entraînement distribué

Vous pouvez exécuter les scripts d'exemple sur plusieurs GPU avec torchrun :

torchrun --nproc_per_node {NUM_GPUS} path_to_script.py --all_arguments_of_the_script

Pour 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_script

Ajustez NUM_GPUS et --all_arguments_of_the_script selon vos besoins.

Update on GitHub