TRL documentation
例
はじめに
コンセプトガイド
Trainers
ハウツーガイド
コマンドラインインターフェース (CLI)Jobs を使用したトレーニングトレーニングのカスタマイズメモリ使用量の削減トレーニングの高速化トレーニングの分散AWS TrainiumでのトレーニングAMD GPUでのトレーニング100万トークン超のトレーニング学習済みモデルの使用
統合
例
API
実験的
例
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_math | GSM8K における experimental.async_distillation.AsyncDistillationTrainer を用いた非同期のオンポリシー蒸留: 教師モデルは vLLM によって HTTP 経由で提供されます。 | |
async_distillation_mopd | experimental.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_math | AsyncGRPOTrainer を用いた GSM8K における非同期 GRPO。生成(vLLM サーバー)と学習を分離し、vLLM サーバーへアダプターのみを同期する LoRA 変種も含まれます。 | |
dpo_reduce_hallucinations | openbmb/RLAIF-V-Dataset データセットを使用して、幻覚を低減するためにビジョン言語モデルのDPOファインチューニングを行う。 | |
gold_chatbot_arena | Qwen2の教師モデルからLlama 3.2の生徒モデルへのGeneral Online Logit Distillation (GOLD)(クロス・トークナイザー)を、experimental.gold.GOLDTrainerを使用してchatbot_arena_completionsで実行します。フルトレーニングとLoRAのバリアントを含みます。 | |
gold_qwen3_vl | experimental.gold.GOLDTrainer を使用して、Qwen3-VL-8B からより小さな VLM 学生モデルへ General Online Logit Distillation (GOLD) を適用します。同ファミリー間(JSD loss)および異ファミリー間(ULD loss)の蒸留をカバーします。 | |
grpo_2048 | ツール呼び出しを用いたGRPOで、モデルに2048ゲームをプレイさせる方法を教えます。 | |
grpo_browsergym | BrowserGymのOpenEnv環境を用いたGRPO。LLMおよびVLMのバリアントに対応しています。 | |
grpo_carla | CARLA自動運転OpenEnv環境を用いたGRPO(LLMおよびVLMのバリアント、マルチモーダルなカメラ画像ツール応答に対応) | |
grpo_catch | OpenSpielのOpenEnv環境を用いたGRPO。 | |
grpo_continuous_batching | 変数長の完了長を持つ大規模バッチでの生成を高速化するために、Transformers の連続バッチングエンジンと組み合わせた GRPO。 | |
grpo_echo | Echo OpenEnv環境での最小限のGRPOトレーニング。 | |
grpo_harbor | プラグイン可能なベースエージェント(bash / jupyter / terminal_notes ハーネス)を備えた Harbor タスクスイートに対する GRPO トレーニング。Harbor Integration ガイドを参照してください。 | |
grpo_ministral3_vl | 無料のColabで、QLoRAを用いたGRPO Ministral 3。 | |
grpo_multi_env | マルチ環境GRPOトレーニング: OpenEnvのWordleとCatchの環境を、同じトレーニング実行内で使用します。 | |
grpo_qlora | 無料のColabでQLoRAを用いたGRPO。 | |
grpo_qwen3_vl | 無料のColabで、QLoRAを用いたGRPOによるQwen3-VL。 | |
grpo_rnj_1_instruct | Colab上でQLoRAを用いてrnj-1-instructにGRPOを適用し、推論機能を追加します。 | |
grpo_seta | openreward.ai カタログ上の SETA ORS 環境に対する GRPO トレーニング。OpenReward Integration ガイドを参照してください。 | |
grpo_sql_agent | GRPOを使用して、SQLデータベースをクエリして質問に答えるエージェントを訓練します(スクリプトとノートブック。メモリ不足(OOM)のため、無料のColabでは実行できません)。 | |
grpo_sudoku | OpenEnv環境上でSFTモデルから始めて、Sudoku(TextArena)をGRPOでプレイします。ベースモデル、SFTモデル、SFT + GRPOモデルそれぞれについて、26マスが空の状態で30パズル中0、10、22パズルを解きました(結果を含むスクリプト、ノートブック、README)。 | |
grpo_visual_math | lmms-lab/multimodal-open-r1-8k-verified データセットを使用して、推論のためのマルチモーダルモデルのGRPOファインチューニング。 | |
grpo_wordle | OpenEnv環境でWordle(TextArena)をプレイするためのGRPO(スクリプトとノートブック)。 | |
gspo_math | AI-MO/NuminaMath-TIR データセットを用いた数学推論における、GRPOTrainer による GSPO。 | |
gspo_visual_math | GRPOTrainer を使用した GSPO により、lmms-lab/multimodal-open-r1-8k-verified データセットを用いて推論用のマルチモーダルモデルをファインチューニングします。 | |
lfm2_5_moe_research_agent | LiquidAI/LFM2.5-8B-A1B を2ステップで実行します。まず、1つの8xH100ノード上で、transformersのDistributedConfigによってロード時にシャード化(トークンディスパッチを伴うエキスパート並列化とFSDP)された状態で、SFTTrainerを用いてxLAMの関数呼び出しに対してフルSFTを行います。次に、GRPOTrainerとenvironment_factory(search / readツール、完全一致報酬)を用いて、HotpotQA上のマルチターン研究エージェントのGRPOを実行します。 | |
mpo_visual_preferences | DPOTrainer を使用した MPO により、HuggingFaceH4/rlaif-v_formatted データセットと損失重みのセットを用いて、マルチモーダルモデルを好みに基づいてアラインメントします。 | |
online_dpo_visual_math | experimental.online_dpo.OnlineDPOTrainer を用いた Vision Language Model のオンライン DPO によるファインチューニング。 | |
rloo_math | AI-MO/NuminaMath-TIR データセットでの数学推論に、vLLM を使用した RLOOTrainer による RLOO。 | |
rloo_visual_math | lmms-lab/multimodal-open-r1-8k-verified データセットを使用して、推論のためのマルチモーダルモデルのRLOOファインチューニング。 | |
sdft_privileged_context | experimental.sdft.SDFTTrainer を用いた自己蒸留ファインチューニング。特権(教師専用)コンテキストをモデルに蒸留します。 | |
sdpo_math | 検証可能な数学報酬と、openai/gsm8k における任意の環境フィードバックを用いた、experimental.sdpo.SDPOTrainer による SDPO。 | |
sft_agent_traces | Qwen3.5-2BのSFT: エージェントのトレースを用いたSFTについてです。Qwen3.5-397B-A17Bは、Hugging Face Sandboxes内でOpenCodeエージェントとして動作し、データ分析のHarborタスクを処理します。この過程はOpenEnvによって記録され、学生モデルはアシスタントの応答部分のみを損失対象として、解決済み会話で学習します。トレースが一切触れていないデータを持つタスクにおいて、約500件のトレースにより、スコアは7.6%から33.3%に向上しました(ロールアウト、データセット、学習スクリプト、および結果をまとめたREADMEを参照)。 | |
sft_beam | 1つの8xB300ノード上で、SFTTrainerを用いてreflection/Beam-1.0-501B-A23BのLoRA SFTを実行し、transformersのDistributedConfigによってロード時にシャード化(トークンディスパッチを伴うエキスパート並列)を行っています。 | |
sft_diffusion_gemma | ブロック拡散目的関数を拡張したSFTTrainerを用いて、ブロック拡散言語モデルDiffusionGemmaをGSM8KでSFTする。 | |
sft_gemma3 | Codeforces COTSデータセットでのGemma 3のSFT。 | |
sft_gemma3_vision | ビジョンからテキストへのタスクにおけるGemma 3のSFT。 | |
sft_gpt_oss_chess | openai/gpt-oss-20b のチェスパズルを用いたフルファインチューニング(SFTTrainer): TRL は MXFP4 のエキスパートをデクアンタイズして読み込み、ファインチューニング後のエキスパートは元のモデルと同様にサーブできるよう MXFP4 に再クアンタイズされます。 | |
sft_ministral3_vl | 無料のColabでQLoRAを用いてSFT Ministral 3を実行します。 | |
sft_mistral_large_4 | 1つの8xB300ノード上で、mistralai/Mistral-Large-4-1T-A52BのFP8重みを基盤として、SFTTrainerを用いたLoRA SFTを実行します。読み込み時にtransformersのDistributedConfigによってシャード化されます(トークンディスパッチを伴うエキスパート並列)。 | |
sft_nemotron_3 | NVIDIA Nemotron 3 モデルのSFT(scriptとLoRA notebook)。 | |
sft_qlora | 無料のColabでQLoRAを用いたSFT。 | |
sft_qwen3_8b_1m_context | コンテキスト並列性を用いて、1つの8xH100ノード上で、1,048,576トークンのシーケンスに対してQwen3-8BのSFTを実行。 | |
sft_qwen3_vl | 無料のColabでQLoRAを用いてQwen3-VLをSFTします。 | |
tail_sft_gsm8k | 初期ポリシー損失フィルタリングを拡張したSFTTrainerによるGSM8KでのTailSFT。 | |
sft_muse_spark_open | 8ノード環境で、SFTTrainerを用いてmeta-models/Muse-Spark-Open-816B-A42BのLoRA SFTを実行し、読み込み時にtransformersのDistributedConfigによってシャード化(トークンディスパッチを伴うエキスパート並列)します。 | |
sft_tool_calling | QLoRAによるSFTを用いて、ネイティブなツール呼び出しをサポートしないモデルにツール呼び出しを学習させる(スクリプト、チャットテンプレート、ノートブック)。 | |
sft_visual_chat | チャット環境におけるビジョン言語モデルのSFT。LLaVA 1.5、LLaVA 1.6、Llama-3.2-11B-Vision-Instructでのみテストされています。他のモデルアーキテクチャでは、予期しない動作が発生する可能性があります。 | |
xtoken | experimental.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_scriptDeepSpeed 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を調整してください。