モデル / データセット
PRIME-RL/TTRL avatar
PRIME-RL/TTRL

TTRL: 正解ラベルのないテストデータでLLMを強化学習する

[NeurIPS 2025] TTRL: Test-Time Reinforcement Learning

スター 1,123フォーク 81PythonMIT

ひと目でわかる

これは何?
TTRLは多数決を報酬源として、ラベルなし推論データでモデルを更新する。実装はverlのフォークとして提供され、8基のA100を前提とする。
誰に向いている?
TTRLは、正解ラベルが手に入らない推論データでQwen系モデルを追加学習したい研究チーム向けの実装である。一方、報酬が多数決に依存するため、正解率が低いタスクや回答形式が自由なタスクでは報酬信号が崩れる可能性があり、8基のA100を用意できない環境では実用的な検証が難しい。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 154 日前です。
何の言語で書かれている?
主に Python です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

ラベルなし推論データという報酬の空白をどう埋めるか

通常の強化学習による推論能力の改善は、正解ラベル付きのデータセットを前提とする。TTRLが扱うのは、その正解ラベルが存在しないテストデータそのものである。READMEでは「RL on data without explicit labels for reasoning tasks」と表現され、推論時に正解情報へアクセスできない状態で報酬をどう推定するかが中心課題とされている。対象読者は、ベンチマーク用データしか手元になく、それでもモデルを更新したい研究開発者である。TTRLはこの問題に対して、Test-Time Scalingで一般的に使われる多数決を報酬として流用するという答えを出している。多数決は元々、複数サンプルの回答から最終回答を選ぶ推論時の手法であり、それを学習信号に転用する点がこの研究の出発点になっている。

多数決報酬という仕組みとpass@1の伸び

READMEの疑似コード節によれば、TTRLの実装は報酬関数を差し替えるだけで成立する。同じ問題に対して複数の回答をサンプリングし、最頻出の回答を正解とみなして報酬を与える。この多数決報酬、READMEの表記ではmaj@nが唯一の教師信号であり、正解ラベルは一切使われない。報告されている結果として、Qwen-2.5-Math-7BのAIME 2024におけるpass@1が約211%向上したとREADMEは述べている。加えて、maj@nでしか監督していないにもかかわらず、初期モデルのmaj@n上限を超え、正解ラベル付きテストデータで直接学習したモデルの性能に近づいたとされる。ここで注意したいのは、この伸び幅が特定モデルと特定ベンチマークの組み合わせでの数値だという点である。READMEは再現実験として3回の独立実行を挙げ、pass@1が43.3、43.3、46.7だったと記録している。実行間のばらつきが存在することは、この手法を評価する際に単一の実行結果を鵜呑みにできないことを示している。

verlフォークとして配布される実装の構造

TTRLのリポジトリは独自の学習ループをゼロから書いたものではない。2025年5月23日の更新で、実装はverlベースに切り替わったとREADMEは説明している。リポジトリ直下にverlディレクトリがあり、その中にexamples/ttrl、scripts、data/preprocess.pyが置かれている構成である。つまり学習スケジューラ、分散実行、チェックポイント管理はverl側の仕組みに依存し、TTRLはその上の報酬計算と設定を差し替える立場にある。2025年8月17日のニュースではverl v0.4.1に取り込まれ、+ttrl.enable=Trueを設定するだけで有効化できるようになったと記載されている。データはJSON形式からParquet形式へ変換してverlに渡す流れで、変換用スクリプトとしてverl/data/preprocess.pyが案内されている。

セットアップと再現コマンド

READMEのGetting Startedに沿うと、まずリポジトリを取得し、verlディレクトリへ移動してからconda環境を作る。手順はgit clone https://github.com/PRIME-RL/TTRL.git、cd TTRL/verl、conda create -n ttrl python==3.10、conda activate ttrl、bash scripts/install_ttrl_deps.sh、pip install -e . の順である。AIME 2024の再現はbash examples/ttrl/Qwen2.5/aime.shで実行すると記載されている。verl/examples/ttrl配下には複数モデル、複数ベンチマーク向けのスクリプトが用意されている。実験環境は8 x NVIDIA A100 80GBと明記されており、この規模のGPUを前提とした設定がスクリプトに埋め込まれていると考えるのが自然である。手元のGPU台数が異なる場合、examples配下のスクリプトをそのまま実行しても同じ条件にはならない。

多数決が成立しないタスクでは報酬が壊れる

この手法の弱点は報酬の定義そのものにある。多数決は、モデルが同じ問題に対して複数回サンプリングしたときに正解へ収束する傾向があるから機能する。逆に、初期モデルの正解率が低いタスクや、正解が一意に定まらない記述式のタスクでは、最頻出の回答が誤りである可能性が高くなる。その状態で学習を続ければ、誤った回答を強化する方向に更新が進む。READMEが示す結果は数学系ベンチマークが中心で、AIME 2024のように最終回答を短く確定できる形式のタスクである。自由記述や複数正解があり得るタスクへそのまま適用できるかは、この資料からは判断できない。また、報酬計算のために1問あたり複数サンプルを生成する必要があり、推論コストは通常の評価より大きくなる。8基のA100という前提も、この計算量と無関係ではない。

verlとOpenRLHF、何が違うのか

TTRLのリポジトリにはverl v2.0.0とOpenRLHF v1.0.0という2つのリリースタグが並んでいる。READMEの説明では、現在の実装はverlベースであり、OpenRLHFはそれ以前の段階のものと読める。verlは分散強化学習の実行基盤として、データのParquet変換やワーカー構成を提供する。TTRLはその上で報酬関数だけを多数決に置き換える。対して、もしOpenRLHF側の実装を使う場合、学習ループやデータパイプラインの前提がverl版とは異なるため、examplesや設定キーの互換性は期待できない。どちらを選ぶかは、既にどちらの基盤を運用しているかで決まる。新規に試すなら、READMEが現在の手順として案内しているverl経路のほうが情報が揃っている。

メンテナンス状況とライセンス

ライセンスはMITで、商用利用を含めて比較的制約が少ない。ただし、TTRL自体がverlのフォークである以上、verl側の変更に追従するコストが発生する。READMEにはverl v0.4.1への取り込みが記載されており、上流の更新に合わせて+ttrl.enable=Trueのような設定が使えるようになった経緯がうかがえる。逆に言えば、上流のバージョンが進んだときにexamples配下のスクリプトや設定キーがそのまま動く保証はない。最終pushは2026年4月15日で、2026年3月にはUnsupervised RLVRに関する別ブランチurlvr-devの案内が出ており、開発は継続している。研究コードとして使う分には問題ないが、プロダクションの学習パイプラインに組み込む場合は、verlのバージョンを固定してフォークを管理する前提で考えるべきである。

編集部の結論

TTRLは、正解ラベルが手に入らない推論データでQwen系モデルを追加学習したい研究チーム向けの実装である。一方、報酬が多数決に依存するため、正解率が低いタスクや回答形式が自由なタスクでは報酬信号が崩れる可能性があり、8基のA100を用意できない環境では実用的な検証が難しい。導入前に確認すべきは、対象タスクで多数決が成立するかどうか、そしてexamples/ttrl配下のスクリプトが自分のデータ形式にそのまま対応するかである。

公式情報源

  1. License: MIT
  2. PRIME-RL/TTRL on GitHub
  3. Project website
  4. README
  5. Releases
コミュニティノート

コミュニティノート