TRL documentation

例

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

例

examples/ ディレクトリには、TRL ライブラリをさまざまなアプリケーションにどのように使用するかを示す、自己完結型のサンプルのコレクションが含まれています。各サンプルは、そのサンプルがデモを行う手法とタスクにちなんで名付けられた独自のフォルダ内に配置されています(例: grpo_wordle、sft_gpt_oss_chess)。各フォルダには、そのサンプルに必要なすべて、すなわちスクリプト、ノートブック、プロンプト、チャットテンプレート、評価コードが含まれています。

基本的な単一トレーナーの学習スクリプトは例示ではなく、trl/scripts に配置され、コマンドラインインターフェース(trl sft、trl dpo、trl grpo など)を通じて公開されています。各トレーナーのドキュメントページには、実行可能な完全なスニペットも含まれています。

共有リソースはexamples/のルートに配置されています:

  • examples/deepspeed_configs: --deepspeed で渡される DeepSpeed ZeRO の設定ファイル。多くのサンプルで使用されています。
  • examples/fsdp_configs: FSDP設定ファイル。--fsdp --fsdp_configで渡します(コマンドラインで--fsdpのみを指定するには、transformers 5.10以降が必要です。古いバージョンでは、学習設定でfsdp=Trueを設定してください)。
  • examples/datasets: 各例題で使用するtrl-libのデータセットを生成するために使用されるスクリプト。

はじめる

次のように、TRLと追加の依存関係をインストールします:

pip install --upgrade trl[quantization]

追加の任意の依存関係については、こちらを参照してください。Notebook 形式の例は自己完結型であり、無料の Colab で実行できます。スクリプト形式の例は、シングル GPU、マルチ GPU、または DeepSpeed のセットアップで実行できます(下記 分散学習 を参照)。

インデックス

例説明Colabで開く
async_distillation_mathGSM8K における experimental.async_distillation.AsyncDistillationTrainer を用いた非同期のオンポリシー蒸留: 教師モデルは vLLM によって HTTP 経由で提供されます。
async_distillation_mopdexperimental.async_distillation.AsyncDistillationTrainer を用いたマルチティーチャー・オンポリシー蒸留(MOPD):Open-MOPD の数学、コード、指示追従の各エキスパートを SFT チェックポイントに融合します。60 ステップで AIME24 が 17.5 から 24.2 へ、IFEval が 67.5 から 73.0 へ向上しました(スクリプト、Hugging Face Jobs ランチャー、結果を含む README)。
async_grpo_harborインストール済みのコーディングエージェント(mini-swe-agent、opencode、claude-code、…)を介して、OpenEnv上で提供されるHarborタスクスイートでのAsyncGRPOトレーニング:エージェントはサンドボックス内で独自のループを所有し、TRLはキャプチャプロキシによって記録されたトークンIDとlogprobsに基づいてトレーニングを行います。
async_grpo_mathAsyncGRPOTrainer を用いた GSM8K における非同期 GRPO。生成(vLLM サーバー)と学習を分離し、vLLM サーバーへアダプターのみを同期する LoRA 変種も含まれます。
dpo_reduce_hallucinationsopenbmb/RLAIF-V-Dataset データセットを使用して、幻覚を低減するためにビジョン言語モデルのDPOファインチューニングを行う。
gold_chatbot_arenaQwen2の教師モデルからLlama 3.2の生徒モデルへのGeneral Online Logit Distillation (GOLD)(クロス・トークナイザー)を、experimental.gold.GOLDTrainerを使用してchatbot_arena_completionsで実行します。フルトレーニングとLoRAのバリアントを含みます。
gold_qwen3_vlexperimental.gold.GOLDTrainer を使用して、Qwen3-VL-8B からより小さな VLM 学生モデルへ General Online Logit Distillation (GOLD) を適用します。同ファミリー間(JSD loss)および異ファミリー間(ULD loss)の蒸留をカバーします。
grpo_2048ツール呼び出しを用いたGRPOで、モデルに2048ゲームをプレイさせる方法を教えます。
grpo_browsergymBrowserGymのOpenEnv環境を用いたGRPO。LLMおよびVLMのバリアントに対応しています。
grpo_carlaCARLA自動運転OpenEnv環境を用いたGRPO(LLMおよびVLMのバリアント、マルチモーダルなカメラ画像ツール応答に対応)
grpo_catchOpenSpielのOpenEnv環境を用いたGRPO。
grpo_continuous_batching変数長の完了長を持つ大規模バッチでの生成を高速化するために、Transformers の連続バッチングエンジンと組み合わせた GRPO。
grpo_echoEcho OpenEnv環境での最小限のGRPOトレーニング。
grpo_harborプラグイン可能なベースエージェント(bash / jupyter / terminal_notes ハーネス)を備えた Harbor タスクスイートに対する GRPO トレーニング。Harbor Integration ガイドを参照してください。
grpo_ministral3_vl無料のColabで、QLoRAを用いたGRPO Ministral 3。Open In Colab
grpo_multi_envマルチ環境GRPOトレーニング: OpenEnvのWordleとCatchの環境を、同じトレーニング実行内で使用します。
grpo_qlora無料のColabでQLoRAを用いたGRPO。Open In Colab
grpo_qwen3_vl無料のColabで、QLoRAを用いたGRPOによるQwen3-VL。Open In Colab
grpo_rnj_1_instructColab上でQLoRAを用いてrnj-1-instructにGRPOを適用し、推論機能を追加します。Open In Colab
grpo_setaopenreward.ai カタログ上の SETA ORS 環境に対する GRPO トレーニング。OpenReward Integration ガイドを参照してください。
grpo_sql_agentGRPOを使用して、SQLデータベースをクエリして質問に答えるエージェントを訓練します(スクリプトとノートブック。メモリ不足(OOM)のため、無料のColabでは実行できません)。
grpo_sudokuOpenEnv環境上でSFTモデルから始めて、Sudoku(TextArena)をGRPOでプレイします。ベースモデル、SFTモデル、SFT + GRPOモデルそれぞれについて、26マスが空の状態で30パズル中0、10、22パズルを解きました(結果を含むスクリプト、ノートブック、README)。Open In Colab
grpo_visual_mathlmms-lab/multimodal-open-r1-8k-verified データセットを使用して、推論のためのマルチモーダルモデルのGRPOファインチューニング。
grpo_wordleOpenEnv環境でWordle(TextArena)をプレイするためのGRPO(スクリプトとノートブック)。Open In Colab
gspo_mathAI-MO/NuminaMath-TIR データセットを用いた数学推論における、GRPOTrainer による GSPO。
gspo_visual_mathGRPOTrainer を使用した GSPO により、lmms-lab/multimodal-open-r1-8k-verified データセットを用いて推論用のマルチモーダルモデルをファインチューニングします。
lfm2_5_moe_research_agentLiquidAI/LFM2.5-8B-A1B を2ステップで実行します。まず、1つの8xH100ノード上で、transformersのDistributedConfigによってロード時にシャード化(トークンディスパッチを伴うエキスパート並列化とFSDP)された状態で、SFTTrainerを用いてxLAMの関数呼び出しに対してフルSFTを行います。次に、GRPOTrainerとenvironment_factory(search / readツール、完全一致報酬)を用いて、HotpotQA上のマルチターン研究エージェントのGRPOを実行します。
mpo_visual_preferencesDPOTrainer を使用した MPO により、HuggingFaceH4/rlaif-v_formatted データセットと損失重みのセットを用いて、マルチモーダルモデルを好みに基づいてアラインメントします。
online_dpo_visual_mathexperimental.online_dpo.OnlineDPOTrainer を用いた Vision Language Model のオンライン DPO によるファインチューニング。
rloo_mathAI-MO/NuminaMath-TIR データセットでの数学推論に、vLLM を使用した RLOOTrainer による RLOO。
rloo_visual_mathlmms-lab/multimodal-open-r1-8k-verified データセットを使用して、推論のためのマルチモーダルモデルのRLOOファインチューニング。
sdft_privileged_contextexperimental.sdft.SDFTTrainer を用いた自己蒸留ファインチューニング。特権(教師専用)コンテキストをモデルに蒸留します。
sdpo_math検証可能な数学報酬と、openai/gsm8k における任意の環境フィードバックを用いた、experimental.sdpo.SDPOTrainer による SDPO。
sft_agent_tracesQwen3.5-2BのSFT: エージェントのトレースを用いたSFTについてです。Qwen3.5-397B-A17Bは、Hugging Face Sandboxes内でOpenCodeエージェントとして動作し、データ分析のHarborタスクを処理します。この過程はOpenEnvによって記録され、学生モデルはアシスタントの応答部分のみを損失対象として、解決済み会話で学習します。トレースが一切触れていないデータを持つタスクにおいて、約500件のトレースにより、スコアは7.6%から33.3%に向上しました(ロールアウト、データセット、学習スクリプト、および結果をまとめたREADMEを参照)。
sft_beam1つの8xB300ノード上で、SFTTrainerを用いてreflection/Beam-1.0-501B-A23BのLoRA SFTを実行し、transformersのDistributedConfigによってロード時にシャード化(トークンディスパッチを伴うエキスパート並列)を行っています。
sft_diffusion_gemmaブロック拡散目的関数を拡張したSFTTrainerを用いて、ブロック拡散言語モデルDiffusionGemmaをGSM8KでSFTする。
sft_gemma3Codeforces COTSデータセットでのGemma 3のSFT。
sft_gemma3_visionビジョンからテキストへのタスクにおけるGemma 3のSFT。
sft_gpt_oss_chessopenai/gpt-oss-20b のチェスパズルを用いたフルファインチューニング(SFTTrainer): TRL は MXFP4 のエキスパートをデクアンタイズして読み込み、ファインチューニング後のエキスパートは元のモデルと同様にサーブできるよう MXFP4 に再クアンタイズされます。
sft_ministral3_vl無料のColabでQLoRAを用いてSFT Ministral 3を実行します。Open In Colab
sft_mistral_large_41つの8xB300ノード上で、mistralai/Mistral-Large-4-1T-A52BのFP8重みを基盤として、SFTTrainerを用いたLoRA SFTを実行します。読み込み時にtransformersのDistributedConfigによってシャード化されます(トークンディスパッチを伴うエキスパート並列)。
sft_nemotron_3NVIDIA Nemotron 3 モデルのSFT(scriptとLoRA notebook)。Open In Colab
sft_qlora無料のColabでQLoRAを用いたSFT。Open In Colab
sft_qwen3_8b_1m_contextコンテキスト並列性を用いて、1つの8xH100ノード上で、1,048,576トークンのシーケンスに対してQwen3-8BのSFTを実行。
sft_qwen3_vl無料のColabでQLoRAを用いてQwen3-VLをSFTします。Open In Colab
tail_sft_gsm8k初期ポリシー損失フィルタリングを拡張したSFTTrainerによるGSM8KでのTailSFT。
sft_muse_spark_open8ノード環境で、SFTTrainerを用いてmeta-models/Muse-Spark-Open-816B-A42BのLoRA SFTを実行し、読み込み時にtransformersのDistributedConfigによってシャード化(トークンディスパッチを伴うエキスパート並列)します。
sft_tool_callingQLoRAによるSFTを用いて、ネイティブなツール呼び出しをサポートしないモデルにツール呼び出しを学習させる(スクリプト、チャットテンプレート、ノートブック)。Open In Colab
sft_visual_chatチャット環境におけるビジョン言語モデルのSFT。LLaVA 1.5、LLaVA 1.6、Llama-3.2-11B-Vision-Instructでのみテストされています。他のモデルアーキテクチャでは、予期しない動作が発生する可能性があります。
xtokenexperimental.gold.GOLDTrainer を用いた X-Token off-policy cross-tokenizer knowledge distillation(投影行列の準備を含む)。

分散学習

torchrun を使用して、サンプルスクリプトを複数の GPU で実行できます。

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

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

必要に応じてNUM_GPUSと--all_arguments_of_the_scriptを調整してください。

Update on GitHub