trinity-rft について
Trinity-RFTは、LLMの強化学習ファインチューニング向けフレームワークで、エージェント開発者、強化学習研究者、データエンジニアを対象としています。Explorer、Trainer、Bufferが経験生成、モデル更新、データ処理を連携し、多様な学習モードを支えます。
主な機能
- 01同期・非同期のRFTモード
- 02オンライン・オフライン、オン・オフポリシー学習
- 03ロールアウトと学習の分離・個別スケール
- 04複数ステップのエージェント型RLワークフロー
- 05ライフサイクル全体のデータ処理と管理
- 06プラグイン式モジュールとグラフィカルUI
活用シーン
- 01特定分野向けLLMエージェントの学習
- 02強化学習アルゴリズムの開発と検証
- 03RFTデータセットとデータパイプラインの構築
- 04複数ステップのエージェント型強化学習の実行
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Trinity-RFT:
大規模言語モデルの強化学習ファインチューニングのための汎用・統合フレームワーク
💡 Trinity-RFT とは?
Trinity-RFT は、LLM の強化学習ファインチューニング(RFT)向けの、汎用的で柔軟かつ使いやすいフレームワークです。 RFT を、連携して動作する次の 3 つのコンポーネントに分離します。
- Explorer は、エージェントと環境のインタラクションを通じて経験データを生成します。
- Trainer は、データ上の損失を最小化してモデルの重みを更新します。
- Buffer は、RFT のライフサイクル全体にわたるデータ処理のパイプラインを提供します。
Trinity-RFT は、さまざまなバックグラウンドや目的を持つユーザー向けに、次の機能を提供します。
- 🤖 エージェントアプリケーション開発者: LLM を活用したエージェントをトレーニングし、特定のドメインにおける能力を向上させます [チュートリアル]
- 🧠 強化学習研究者: 侵襲性のないカスタマイズが可能な、コンパクトでプラグアンドプレイ式のモジュールを使って、新しい RL アルゴリズムを設計、実装、検証します [チュートリアル]
- 📊 データエンジニア: RFT データセットを作成し、クリーニング、拡張、ヒューマン・イン・ザ・ループのシナリオに対応するデータパイプラインを構築します [チュートリアル]
🚀 ニュース
- [2026-09] CoD(「Connect the Dots」)を発表しました。デプロイ時のタスク間適応と継続学習に向け、LLM エージェントを強化学習でトレーニングします。
- [2026-08] 🎉 R3LがEMNLP 2026に採択されました。
- [2026-06] [リリースノート] Trinity-RFT v0.6.0をリリースしました。SGLangのサポート、バブルを減らす完全非同期の重み同期とスケジューリングの最適化、MoEトレーニングの安定性向上、verl 0.8.0へのアップグレードを含みます。
- [2026-06] 🎉 2本の論文がICML 2026に採択されました。Learn-to-AskとLLM-RLエントロピーのダイナミクスです。
- [2026-04] [リリースノート] Trinity-RFT v0.5.2をリリースしました。Qwen3.5シリーズのサポート、バグ修正、最適化を含みます。
- [2026-03] 🤖 Trinity-RFTはCoPaw-Flashのトレーニングを支援し、ローカル環境のシナリオにより適した小型エージェントモデルを実現しました。CoPawでCoPaw-Flashをぜひお試しください。モデルはModelScopeとHuggingFaceでも公開されています(ニュース)。
- [2026-02] [リリースノート] Trinity-RFT v0.5.1をリリースしました。VLMのサポート強化、ロギングの改善、バグ修正を含みます。
- [2026-02] [リリースノート] Trinity-RFT v0.5.0をリリースしました。シングルGPUシナリオ向けのコロケーションモード、トレーナー主導の重み同期、並列化設定の自動提案などを追加しました。
- [2026-01] 🎉 3本の論文がICLR 2026に採択されました。CHORD、BOTS、グループ相対REINFORCEの派生手法です。Trinity-RFTでこれらの新しいアルゴリズムをぜひお試しください。
- [2026-01] [リリースノート] Trinity-RFT v0.4.1をリリースしました。verlをv0.7.0にアップグレードし、TinkerバックエンドがOpenAI APIに対応しました。バグ修正も含みます。
- [2026-01] R3Lを発表しました。効率的な言語誘導型探索と安定したオフポリシー学習を実現する、体系的な「振り返り後に再試行する」強化学習メカニズムです(論文)。
- [2025-12] [リリースノート] Trinity-RFT v0.4.0をリリースしました。GPUをお持ちでないユーザー向けにTinkerバックエンドを追加し、ベンチマークを拡充し、オンライン強化学習を強化しました。
- [2025-12] Trinity-RFTは「淘宝闪购」の医療・ヘルスケア事業を支援し、AIエージェントが曖昧な症状を理解し、積極的に追加質問を行い、的確な提案を提供できるようにしました(ニュース)。
- [2025-11] Learn-to-Askを発表しました。オフラインの専門家データから、積極的に対話するエージェントをトレーニングするためのフレームワークです(論文)。
もっと見る...
- [2025-11] [BOTS](https://github.com/agentscope-ai/Trinity-RFT/tree/main/examples/bots)を発表しました:効率的なLLMのファインチューニングに向けた、オンラインRLタスク選択です([論文](https://arxiv.org/pdf/2510.26374))。
- [2025-09] [論文](https://arxiv.org/pdf/2509.24203)では、グループ相対REINFORCEと、GRPOやAsymREなどの派生手法について、新たなオフポリシー解釈を示しています([実装](https://github.com/agentscope-ai/Trinity-RFT/tree/main/examples/rec_gsm8k))。
- [2025-08] [CHORD](https://github.com/agentscope-ai/Trinity-RFT/tree/main/examples/mix_chord)を発表しました:高度なLLMのファインチューニングに向けた、SFTとRLの動的な統合です([論文](https://arxiv.org/pdf/2508.11408))。
- [2025-11] Trinity-RFT v0.3.3をリリースしました:バグを修正しました。
- [2025-11] Trinity-RFT v0.3.2をリリースしました:バグを修正し、高度なタスク選択とスケジューリングに対応しました。
- [2025-10] Trinity-RFT v0.3.1をリリースしました:マルチステージ学習への対応、エージェント型RLのサンプルの改善、LoRAへの対応、デバッグモード、新しいRLアルゴリズムを追加しました。
- [2025-09] Trinity-RFT v0.3.0をリリースしました:Bufferの強化、FSDP2とMegatronへの対応、マルチモーダルモデル、新しいRLアルゴリズムとサンプルを追加しました。
- [2025-08] Trinity-RFT v0.2.1をリリースしました。
- [2025-07] Trinity-RFT v0.2.0をリリースしました。
- [2025-07] 新機能、サンプル、実験を追加したテクニカルレポート(arXiv v2)を更新しました:[リンク](https://arxiv.org/abs/2505.17826)。
- [2025-06] Trinity-RFT v0.1.1をリリースしました。
- [2025-05] Trinity-RFT v0.1.0と[テクニカルレポート](https://arxiv.org/abs/2505.17826)を公開しました。
- [2025-04] Trinity-RFTをオープンソース化しました。
🔨 チュートリアルとガイドライン
| カテゴリ | チュートリアル/ガイドライン |
|---|---|
| 多様な RFT モードの実行 | • クイックスタート:GSM8k での GRPO • オフポリシー RFT • 完全非同期 RFT • DPO または SFT によるオフライン学習 • ローカル GPU を使わない RFT(Tinker Backend) |
| マルチステップのエージェント型 RL | • 連結型マルチターンワークフロー • 汎用マルチステップワークフロー • エージェントフレームワークを使った ReAct ワークフロー • 例:ウェブ検索エージェントのトレーニング |
| ライフサイクル全体にわたるデータパイプライン | • ロールアウトタスクの混合と選択 • オンラインタスクカリキュラム (📝 論文) • 研究プロジェクト:learn-to-ask (📝 論文) • 優先度付けを伴う経験再生 • 高度なデータ処理とヒューマン・イン・ザ・ループ |
| アルゴリズム開発 | • Trinity-RFT による RL アルゴリズム開発 (📝 論文) • 研究プロジェクト:R3L(振り返ってから再試行する RL) (📝 論文) • 研究プロジェクト:グループ相対 REINFORCE (📝 論文) • 検証不能な領域:RULER、trainable RULER、報酬としてのルーブリック |
| ベンチマーク | • ベンチマークツールキット(迅速な検証と実験) • Guru-Math ベンチマークと veRL との比較 • FrozenLake ベンチマークと rLLM との比較 • Alfworld ベンチマークと rLLM との比較 |
| Trinity-RFT をさらに深く理解する | • 全設定 • GPU リソースとトレーニング設定ガイド • VLM のトレーニング • explorer と trainer の連携を理解する • 設定を veRL に合わせる方法 |
ヒント
推奨される学習パス
🆕 初めて利用する方: インストール → クイックスタート(GSM8K) → 設定ガイド → GPU リソースガイド
🔬 アルゴリズム研究者: 開発者ガイド → アルゴリズム開発ガイド → CHORD アルゴリズムの例
🤖 エージェント開発者: 開発者ガイド → ワークフロー開発 → 汎用マルチステップワークフローの例
メモ
その他のチュートリアルについては、Trinity-RFT のドキュメントを参照してください。
🌟 主な機能
-
柔軟な RFT モード:
- 同期/非同期、オンポリシー/オフポリシー、オンライン/オフラインの RL をサポートします。
- ロールアウトとトレーニングを個別に実行でき、デバイス間でそれぞれ独立してスケールできます。
- 経験リプレイにより、サンプル効率と時間効率を高めます。
-
エージェント型 RL のサポート:
- 連結型と汎用マルチステップのエージェント型ワークフローの両方をサポートします。
- AgentScope などのエージェントフレームワークを使用して開発されたエージェントアプリケーションを直接トレーニングできます。
-
ライフサイクル全体に対応するデータパイプライン:
- ロールアウトタスクと経験サンプルをパイプライン処理できます。
- RFT のライフサイクル全体を通じて、アクティブなデータ管理(優先順位付け、クリーニング、拡張など)を行います。
- マルチタスクの共同学習と、オンラインでのタスクカリキュラム構築をネイティブにサポートします。
-
使いやすい設計:
- プラグアンドプレイのモジュールと疎結合なアーキテクチャにより、導入と開発が容易です。
- 充実したグラフィカルユーザーインターフェースにより、ローコードで利用できます。
🔧 サポートされているアルゴリズム
| Algorithm | Doc / Example | Source Code | Key Configurations |
|---|---|---|---|
| PPO [Paper] | [Doc] [Countdown Example] | [Code] | algorithm_type: ppo |
| GRPO [Paper] | [Doc] [GSM8K Example] | [Code] | algorithm_type: grpo |
| DAPO [Paper] | [DAPO-Math Example] | [Code] | algorithm_type: dapo |
| GiGPO [Paper] | [ALFWorld Example] | [Code] | algorithm_type: gigpo |
| SFT | [Mixture-of-Thoughts Example] | [Code] | algorithm_type: sft |
| DPO [Paper] | [HumanLike Example] | [Code] | algorithm_type: dpo |
| CHORD 💡 [Paper] | [Doc] [ToolACE Example] | [Code] | algorithm_type: mix_chord |
| REC Series 💡 [Paper] | [GSM8K Example] | [Code] | algorithm_type: rec |
| RLOO [Paper] | - | [Code] | algorithm_type: rloo |
| REINFORCE++ [Paper] | - | [Code] | algorithm_type: reinforceplusplus |
| GSPO [Paper] | - | [Code] | algorithm_type: gspo |
| TOPR [Paper] | [GSM8K Example] | [Code] | algorithm_type: topr |
| sPPO [Paper] | [GSM8K Example] | [Code] | algorithm_type: sppo |
| AsymRE [Paper] | [GSM8K Example] | [Code] | algorithm_type: asymre |
| CISPO [Paper] | - | [Code] | algorithm_type: cispo |
| SAPO [Paper] | - | [Code] | algorithm_type: sapo |
| On-Policy Distillation [Blog] [Paper] | [GSM8K Example] | [Code] | algorithm_type: on_policy_distill |
| JSD (Jensen-Shannon Divergence) | [GSM8K Example] | [Code] | algorithm_type: jsd |
目次
クイックスタート
メモ
このプロジェクトは現在、活発に開発中です。コメントや提案を歓迎します!
CPU のみでの最小クイックスタート
GPU を利用できない場合でも、Tinker バックエンドを使用して Trinity-RFT を試すことができます。
# Create and activate environment
python3.10 -m venv .venv
source .venv/bin/activate
# Install Trinity-RFT with CPU-only backend
pip install -e ".[tinker]"
簡単な例を実行します:
trinity run --config examples/tinker/tinker.yaml
この例は、CPU のみのマシンで実行できるように設計されています。詳しくは、Tinker トレーニング例全体をご覧ください。
代わりに GPU マシンで Trinity-RFT を実行する場合は、以下の手順に従ってください。
ステップ 1:インストール
インストールする前に、お使いのシステムが以下の要件を満たしていることを確認してください:
GPU 要件
- Python:バージョン 3.10~3.12(両端を含む)
- CUDA:バージョン >= 12.8
- GPU:コンピュートケイパビリティが 8.0 以上の NVIDIA GPU が 1 基以上(例:RTX 30 シリーズ、A100、H100)
初めて利用する方におすすめ:
- GPU がない場合 → Tinker バックエンドを使用
- 簡単にセットアップしたい場合 → Docker を使用
- 開発や貢献をしたい場合 → Conda / venv を使用
ソースからインストール(推奨)
Trinity-RFT をカスタマイズしたり、プロジェクトに貢献したりする予定がある場合は、この方法が最適です。
まず、リポジトリをクローンします:
git clone https://github.com/agentscope-ai/Trinity-RFT
cd Trinity-RFT
次に、以下のいずれかの方法で環境をセットアップします:
ビルド済み Docker イメージを使用(初心者におすすめ)
docker pull ghcr.io/agentscope-ai/trinity-rft:latest
# Run the container, replacing <path_to_your_data_and_checkpoints> with your actual path
docker run -it \
--gpus all \
--shm-size="64g" \
--rm \
-v $PWD:/workspace \
-v <path_to_your_data_and_checkpoints>:/data \
ghcr.io/agentscope-ai/trinity-rft:latest
このイメージでは、
uvを使用して Trinity-RFT の GPU 関連の依存関係をすべてインストールしています。コンテナに入ると仮想環境が自動的に有効になります(必要に応じて、source /opt/venv/bin/activateを実行して手動で有効にすることもできます)。必要に応じてuv pip installを使用し、追加のパッケージをインストールできます。
インストールスクリプトを使用(uv)
bash scripts/install/install_trinity.sh
source .venv/bin/activate
Conda を使用
conda create -n trinity python=3.12
conda activate trinity
pip install -e ".[vllm,flash_attn]"
# If you have no GPU, comment out the line above and uncomment this instead:
# pip install -e ".[tinker]"
# If you encounter issues when installing flash-attn, try:
# pip install "flash-attn>=2.8.3" --no-build-isolation
pip install -e ".[dev]" # for development like linting and debugging
venv を使用
python3.10 -m venv .venv
source .venv/bin/activate
pip install -e ".[vllm,flash_attn]"
# If you have no GPU, comment out the line above and uncomment this instead:
# pip install -e ".[tinker]"
# If you encounter issues when installing flash-attn, try:
# pip install "flash-attn>=2.8.3" --no-build-isolation
pip install -e ".[dev]" # for development like linting and debugging
uv を手動で使用
uv venv .venv
uv pip install \
--python .venv/bin/python \
--overrides scripts/install/trinity-overrides.txt \
-e ".[vllm,dev]"
.venv/bin/python scripts/install/install_flash_attn.py --uv
# If you have no GPU, try to use Tinker instead:
# uv pip install --python .venv/bin/python -e ".[tinker,dev]"
source .venv/bin/activate
競合が解消されない場合は、scripts/install/trinity-overrides.txt にバージョンを追加するか、既存のバージョンを調整してください。
PyPI 経由でインストール
コードを変更せずにパッケージを使用したい場合は、次の手順に従ってください:
pip install trinity-rft
pip install "flash-attn>=2.8.3" --no-build-isolation
Megatron-LMを使用したトレーニングについては、Megatron-LM バックエンドをご覧ください。
ステップ 2:データセットとモデルの準備
Trinity-RFT は、Huggingface および ModelScope のほとんどのデータセットとモデルに対応しています。
ローカルディレクトリ $MODEL_PATH/{model_name} にモデルを準備します:
# Using Huggingface
huggingface-cli download {model_name} --local-dir $MODEL_PATH/{model_name}
# Using Modelscope
modelscope download {model_name} --local_dir $MODEL_PATH/{model_name}
モデルのダウンロードの詳細については、Huggingface または ModelScope をご覧ください。
ローカルディレクトリ $DATASET_PATH/{dataset_name} にデータセットを準備します:
# Using Huggingface
huggingface-cli download {dataset_name} --repo-type dataset --local-dir $DATASET_PATH/{dataset_name}
# Using Modelscope
modelscope download --dataset {dataset_name} --local_dir $DATASET_PATH/{dataset_name}
データセットのダウンロードの詳細については、Huggingface または ModelScope をご覧ください。
ステップ 3:設定
Trinity-RFT には、RFT プロセスを設定するためのウェブインターフェースが用意されています。
メモ
これは実験的な機能であり、今後も改善を続けていきます。
最小限の設定でウェブインターフェースを起動するには、次のコマンドを実行します。
trinity studio --port 8080
ウェブページで RFT プロセスを設定し、設定ファイルを生成できます。設定ファイルを保存して後で使用するか、次のセクションで説明するように、そのまま実行できます。
上級ユーザーは、設定ファイルを直接編集することもできます。
設定ファイルの例は examples にあります。
GUI の全機能については、Trinity-Studio のモノレポを参照してください。
例:設定マネージャー GUI

ステップ 4:RFT プロセスの実行
Ray クラスターを起動します。
# On master node
ray start --head
# On worker nodes
ray start --address=<master_address>
(任意)より適切にモニタリングするために、Wandb/TensorBoard/MLFlow を使用できます。対応する設定については、こちらのドキュメントを参照してください。 たとえば、Wandb にログインするには、次のコマンドを実行します。
export WANDB_API_KEY=<your_api_key>
wandb login
コマンドラインを使用する場合は、環境を有効化して RFT プロセスを実行します。
source .venv/bin/activate # If using venv or uv
trinity run --config <config_path>
例 — GRPO を使用して GSM8k の Qwen2.5-1.5B-Instruct をファインチューニングします。
trinity run --config examples/grpo_gsm8k/gsm8k.yaml
Studio を使用する場合は、ウェブインターフェースの「Run」をクリックします。
コントリビューションガイド
このプロジェクトは現在、活発に開発されています。最新の更新情報を確認できるよう、リポジトリにスターを付けてください。
コミュニティからのあらゆるコントリビューションを歓迎します。例:
- ドキュメントの改善
- ワークフロー、アルゴリズム、データパイプラインの例
- バグ修正とパフォーマンスの最適化
プロジェクトに初めて参加する方は、ドキュメントやサンプルの更新から始めるのがおすすめです。
詳しいコントリビューションのガイドラインについては、CONTRIBUTING.mdと初めてのコントリビューター向け課題リストを参照してください。
謝辞
このプロジェクトは、以下を含む数多くの優れたオープンソースプロジェクトを基盤として構築されています。
- LLM のトレーニングには、verl、FSDP、Megatron-LMを使用しています。
- LLM の推論には、vLLMを使用しています。
- データ処理パイプラインには、Data-Juicerを使用しています。
- エージェント型ワークフローには、AgentScopeを使用しています。
- 分散システムには、Rayを使用しています。
- また、OpenRLHF、TRL、ChatLearn、rLLMなどの RL フレームワークからも着想を得ています。
- ......
引用
@misc{trinity-rft,
title={Trinity-RFT: A General-Purpose and Unified Framework for Reinforcement Fine-Tuning of Large Language Models},
author={Xuchen Pan and Yanxi Chen and Yushuo Chen and Yuchang Sun and Daoyuan Chen and Wenhao Zhang and Yuexiang Xie and Yilun Huang and Yilei Zhang and Dawei Gao and Yaliang Li and Bolin Ding and Jingren Zhou},
year={2025},
eprint={2505.17826},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2505.17826},
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。