TermGrade:評価済みのターミナル環境1,004件、試行記録36,144件、そしてそれらを使った強化学習
6つのモデル構成で評価し、失敗14,234件を含む全36,144件の試行を公開します。各タスクには、人が決めた難易度ラベルではなく、モデルごとに実測した成功率が付いています。その測定に基づいて強化学習用のデータを選定し、Terminal-Bench 2.1で+3.1ポイント、同じ設定による5回の学習では平均+2.1ポイントの改善を得ました。
Yagiz Calik, Founding Member of Technical Staff (Post-Training)
Jianbo Wu, Member of Technical Staff (Post-Training)
Shimpei Hara, President & Co-Founder
Kimi-K3、DeepSeek-V4-Pro、GLM-5.2、Qwen3.6-27B、gemma-4-31B-it(推論あり・なし)で評価。集計値だけでなく、個々の試行を公開します。
要約
AIエージェントの学習と評価に使える1,004件のターミナル環境「TermGrade」を公開します。各環境にはLinuxマシン上で実行するタスクと、その結果を検証する自動テストが含まれます。参照解答がテストに合格することを確認できたタスクだけを収録しています。
6つのモデル構成で全タスクに取り組み、失敗も含めたすべての試行を公開します。失敗した試行については、どのテストに不合格だったかも記録しています。
モデルが最も学びやすいのは、半分ほどの確率で解けるタスクです。そこでgemma-4-31B-itを、実際の学習と同じ構成で別途評価し、半分ほどの確率で解けたタスクを使って学習させました。Terminal-Bench 2.1では3.1ポイント改善し、同じ設定で学習を5回繰り返しても、すべての回でベースモデルを上回りました。
また、難易度はモデルによって異なります。あるモデルが半分ほどの確率で成功するタスクは、別のモデルでは大きく異なっていました。そのため、タスクの評価には、実際に学習させるモデルを使う必要があります。
強化学習では、成功した試行に報酬を与えます。しかし、モデルがあるタスクに必ず成功する、あるいは必ず失敗する場合、すべての試行が同じ報酬を受け取るため、学習の更新に必要な報酬の差が生まれません。半分ほどの確率で成功するタスクであれば、強化すべき成功例と、比較対象となる失敗例の両方が得られます。そこで学習前に見極めたいのは、これから学習させるモデルにとって、どのタスクがその範囲に入るかです。
難易度を実測して学習タスクを選ぶ方法は、すでに知られています(参考文献参照)。それでも、AIエージェントの強化学習では、タスクの選定が直感に頼ることも少なくありません。難易度の測定には手間がかかります。結果はモデルによって異なり、モデルが変わるたびに確かめ直す必要があるからです。
あるモデルには簡単なタスクでも、別のモデルには難しいことがあります。そのため、別のモデルで測った成功率を、そのまま学習タスクの選定に使うことはできません。モデルのバージョンやツール構成が変われば、結果も変わり得ます。前の四半期には学習に役立ったタスクが、今も適切とは限りません。
今回、同じ1,004件のタスクを6つのモデル構成で評価しました。すると、半分ほどの確率で成功するタスクの組み合わせは、モデル間で大きく異なっていました。そこで実際の学習に向けては、使用するモデルとツール構成で候補タスクを別途評価し、成功率が50%に近いものを選びました。
この測定をモデルの変化に合わせて繰り返し、学習タスクを選び直せるように、評価と選定のパイプラインは低コストで再実行できるよう設計しました。
今回公開するのは、タスクセットと実測した成功率、その測定のもとになった全試行の記録、実際に学習に使用したタスクの一覧、そして学習済みチェックポイントです。
messages列を変更せずチャットテンプレートに渡せます)。失敗14,234件も公開します。タスク生成から学習までの流れ
この評価は公開データに収録するためのものです。学習データの選定には使用しません。
ツールや実行手順を含むエージェントの構成(スキャフォールド)によって難易度が変わるため、学習時と同じ構成で評価します。上のTerminus-2で測った成功率とは別のものです。
01 タスクセットの構築と評価
ターミナルタスクを評価するには、環境が動作し、検証プログラムが正しい解答と誤った解答を区別できる必要があります。そのため、モデルの評価に先立ち、信頼できるタスクを構築しました。
DeepSeek-V4-Pro†で候補タスクを生成し、すべてを実際に実行して、利用できるものを確かめました。収録の条件は、構築済みのイメージ内で、ネットワーク接続なしに、そのタスクの参照解答が検証プログラムに合格することです。生成した66,165件の候補タスクのディレクトリのうち、この条件を満たしたのは1,004件(1.5%)でした。
検証プログラムには、1タスクあたり平均16.2個の名前付きアサーションが含まれます。失敗時には、どの動作のチェックに不合格だったかが分かります。
公開用の評価では、Harborを通じてTerminus-2のスキャフォールド上で6つのモデル構成を評価しました。12時間の採点予算のもと、大半は1タスクあたりk=8回、実行コストの高いDeepSeek-V4-ProとGLM-5.2はk=2回試行しました。これにより、タスクとモデルの6,024通りの組み合わせそれぞれに、実測した成功率が付きます。pass@1は1回の試行で解けるタスクの割合、pass@8は8回の試行で少なくとも1回解けるタスクの割合です。
6つのモデル構成の実測成功率
pass@1は全6構成、pass@8はk=8の構成のみ。上位3モデルの間に有意差は見られず、Qwen3.6-27Bはそれらより低い結果でした。
表で見る
| モデル | k | pass@1 | pass@8 |
|---|---|---|---|
| gemma-4-31B-it | 8 | 0.4986 | 0.7211 |
| gemma-4-31B-it(推論あり) | 8 | 0.5774 | 0.7769 |
| Qwen3.6-27B | 8 | 0.6320 | 0.8257 |
| Kimi-K3 | 8 | 0.6770 | 0.8367 |
| DeepSeek-V4-Pro † | 2 | 0.6853 | — |
| GLM-5.2 | 2 | 0.6858 | — |
今回の評価では、上位3モデルの性能差は確認できませんでした。全1,004タスクについて、タスク単位の対応を考慮して比較したところ、Kimi-K3、DeepSeek-V4-Pro、GLM-5.2の差は+0.05ポイント(p=0.97)、−0.87ポイント(p=0.42)、−0.82ポイント(p=0.51)で、いずれも有意ではありませんでした。一方、これらを下回ったQwen3.6-27Bとの差は、3モデルすべてでp < 0.001でした。
started_atを記録しているため、行ごとに実行時期を確認できます。成功率が同等でも、実行コストには大きな差があります。Kimi-K3は同等のスコアに達しながら、成功した試行の所要時間の中央値は5.6分で、他の2モデルは92.9分と106.9分でした。成功1件あたりの出力トークン数も、約5,600に対し、他の2モデルは約100,000と73,000です。1試行あたりの実時間は約1/11〜1/13であり、Kimi-K3をk=8、他の2モデルをk=2とした理由もここにあります。全1,004タスクを8回ずつ試行したKimi-K3の延べ試行時間は1,929時間でした。GLM-5.2とDeepSeek-V4-Proをそれぞれ2回ずつ試行した延べ時間は、合計11,648時間でした。
上位3モデルの成功1件あたりの所要時間
pass@1で統計的に有意な差が見られなかった3モデルについて、成功した試行の所要時間の中央値を比較しています。
02 学習タスクの選定ルール
学習に適しているのは、モデルが半分ほどの確率で解けるタスクです。その理由は、学習時の更新の仕組みにあります。
2つの目的に分けて評価する
6つのモデル構成
Terminus-2構成/Harbor経由
ベースモデルのみ
bashのツール呼び出し構成
GRPOでは、プロンプトの勾配への寄与は、そのプロンプトから生成した試行(ロールアウト)の報酬分散に応じて変わります。報酬が二値の場合、分散はp(1−p)で、p = 0.50のときに最大になります。常に解けるタスクと、まったく解けないタスクは、どちらも勾配に寄与しません。
なぜp = 0.50なのか:勾配の重みp(1−p)
GRPOの勾配は報酬分散に応じて変わります。両端ではゼロ、中央で最大になります。
選定ルールは、ベースモデルで実測した成功率が0.50に最も近いタスクを選ぶことです。手作業による選別や追加の経験則は使いません。ベースモデルと評価ツールがあれば再現できます。この考え方自体は新しいものではありません。Kimi k1.5は実測した成功率に基づいてプロンプトをサンプリングしており、最近の研究では、報酬分散がグループ相対型の強化学習を加速する仕組みも定式化されています。今回の貢献は、全タスクを6つのモデル構成で測定し、その結果を公開することです。このルールで選ばれたのは151タスク(図6)で、上記のタスクセット由来の118件と、CAMEL-AIの合成ターミナル環境セットSETA由来の33件で構成されます。両方を同じ方法で評価し、成功率0.50という同じ基準で選びました。学習開始後に勾配へ寄与したのは151件中137件です。SETA由来を含む全151件をtermgrade-bandcentral-gemma4-31b-bashで公開しています。公開時の品質確認で118件のうち5件を除外したため、1,004件の公開タスクセット内では113件にtrain151フラグを付け、学習データとの重複を識別できるようにしています。
66,165件の候補から成功率50%付近の118件へ
各段階でタスクを実行して絞り込みます。棒の長さは対数スケールです。1つ目の割合は直前の段階に対する比率、2つ目は全生成数に対する比率です。
termgrade-bandcentral-gemma4-31b-bashで公開しています。学習開始後、勾配が生じたタスクは137件でした。では、データの量は重要でしょうか。成功率の範囲を緩めて選んだ707タスクで、同じベースモデル、検証セット、ハイパーパラメータを使って学習すると、スコアは46.6でした。151タスクの場合は46.1で、差は統計的に有意ではありませんでした(t = 0.80、95%信頼区間 −0.8〜+1.8。それぞれ3回と7回の評価の平均)。学習データを約5倍に増やしても、測定上は明確な優位性が得られませんでした。
その理由は図5から分かります。p(1−p)の曲線は中央付近で平坦で、0.3〜0.7のどこでも勾配の重みは最大値の84%以上、0.45なら99%になります。つまり、このルールで重要なのは、両端にあるタスクを除外することです。範囲内での厳密な選別は必要ありません。学習時にタスクの平均成功率が0.36まで変化していても影響が小さかったのは、0.36でも最大値の92%を保つためです。
計算量を節約できるのは、評価ではなく強化学習の実行です。151環境だけを用意して、残りを省くことはできません。その151件を見つけるために、ベースモデルで数千件のタスク評価を行い、まず成功率0.25〜0.75の555件に絞り、さらに0.50に最も近い151件を選ぶ必要があったからです。
03 学習
今回の新しい点は、データの選び方にあります。学習そのものには、完了までの手順が長く、報酬が疎で、多数のターンを要するターミナルタスクに適した設定を使いました。以下に設定を示します。このうち2つの選択は、データの選定方法と直接関係しています。
学習手法はGRPOに、長いタスクを扱うエージェントの強化学習向けのDAPOの変更と、Dr.GRPOのアドバンテージ処理を組み合わせたGRPO++です。標準的なGRPOからの主な変更は以下のとおりです。
KL項を使わない:報酬にも損失にも加えません。長いエージェントのロールアウトでは、参照方策から大きく離れることが意図されています。その変化にペナルティを与えると、目指す学習を妨げます。
Clip-Higher:PPOのクリッピング幅を0.2 / 0.28の非対称な設定にします。上限側を緩めることで、確率は低くても正しいトークンの更新が切り捨てられるのを防ぎます。これは長い思考過程(CoT)を扱う強化学習で、エントロピーが崩壊する主な経路への対策です。
トークン単位で損失を平均:40ターンの軌跡が3ターンの軌跡と同じ重みに平均化されず、長さに応じて学習へ寄与するようにします。
アドバンテージを標準偏差で正規化しない(Dr.GRPO):平均を引く処理のみを行います。グループの標準偏差で割ると、簡単すぎるプロンプトや成功の見込みがないプロンプトの重みが相対的に増えます。これは、選定ルールによって取り除こうとしている偏りです。
動的サンプリング:
filter_groupsで、16回のロールアウトが全成功または全失敗になったプロンプトを除外し、再サンプリングします。1ステップあたり最大10生成バッチまで繰り返します。完全なオンポリシー学習:バッチは16プロンプト、ミニバッチも16、各ステップのオプティマイザー更新は1回です。ステップ内で古い方策に基づく勾配を使い回しません。各プロンプトについて、温度0.6で16回のロールアウトを生成します。
ベースモデル:gemma-4-31B-it/LoRAランク32/学習率1e-5/二値報酬/5回の更新 ≈ 1エポック。
bashのツール呼び出し構成で学習し、Terminus-2で評価。異なるスキャフォールドへの学習効果の転移も、今回の結果に含まれます。
独立した検証セット:学習用とは重複しない120タスクを使用します。成功率がp≈0.25の60件とp≈0.75の60件を選び、意図的に二峰性の分布にしています。これにより、学習した難易度帯での再現性だけでなく、難易度が変わったときの汎化を測ります。
1回の学習実行には、H200を8基搭載した1ノードで約7時間かかります。内訳は学習4時間、検証3時間です。各ステップで独立した検証セットを評価したため、検証にも時間を使っています。
動的サンプリングと成功率50%付近のタスク選定は、パイプラインの異なる段階で同じ考え方を適用しています。filter_groupsは報酬に差がないグループを除外しますが、その時点ではすでに16回分のロールアウトの生成コストがかかっています。実測した成功率で事前に選定すれば、そうしたグループの生成を避けられます。それでも選定を通過した一部のタスクでは成功例が得られず、14件が該当しました。これらをfilter_groupsが除外し、137件が勾配に寄与しました。
ただし、その137件すべてが1回の学習で使われるわけではありません。各更新では16プロンプトを選び、それぞれ16回のロールアウトを生成します。1度でバッチが埋まるのは、全成功または全失敗のグループが1つもない場合だけです。実際には毎ステップ2回、計32プロンプト分を生成し、16グループを採用しました。1回の学習全体で勾配に寄与する異なるプロンプトは約78件です。どの78件になるかは、生成された試行の結果によって変わります。これが実行ごとの学習結果に差が出る大きな要因であり、タスクセットの規模に合わせてバッチサイズも増やすべきだと考える最も明確な根拠です。
1回の更新で、どの試行が学習に使われるか
報酬にばらつきなし
除外報酬にばらつきなし
除外0.50付近でばらつきが最大
学習に使用1回の学習全体で勾配に寄与する異なるプロンプトは約78件です。どの78件になるかは、生成された試行の結果によって変わります。
除外されたグループは、成功率50%付近のタスクが偶然偏った結果を出したものではなく、先ほどの14件でした。真の成功率がp = 0.50なら、16回の試行がすべて同じ成否になる確率は約10万分の3にすぎません。ただし、勾配に寄与したプロンプトの平均成功率も、0.50ではなく0.36でした。選定から学習までの間に、対象の成功率が変わっていたのです。難易度ラベルは、ある時点の特定のモデルに対する測定値です。それは、数回前の更新時点の自分たちのモデルにも当てはまります。
動的サンプリングは、タスクが適切な成功率の範囲にとどまっているかを低コストで確かめる手段にもなります。バッチが埋まるまでの生成回数を示すnum_gen_batchesは、5回の更新すべてで、上限10に対して2でした。このことから、更新後の方策に対してもタスクセットは中央付近の成功率を保っていたと判断しました。この値が上限に近づいてきたら、そのまま学習を続けず、タスクを再評価して選び直すべき合図です。
04 5回の学習結果
公開するチェックポイントは、Terminal-Bench 2.1で46.1、ベースモデル比+3.1ポイントを記録しました。これは公開するものと同一のチェックポイントを7回評価した平均です。公開アダプターを使って再評価できます。
gemma-4-31B-itを成功率50%付近のタスクで強化学習
Terminal-Bench 2.1/pass@1
公開する1つのチェックポイントの成績に加え、この手法でどの程度の結果が得られるかを確かめるため、同じ設定で学習を5回行い、各チェックポイントを評価しました。平均スコアは45.1、ベースモデル比+2.1ポイント(標準誤差0.6)でした。5回すべてでベースモデルを上回り、改善幅は最小0.4ポイント、最大3.3ポイントでした。平均改善幅はゼロに対して統計的に有意でした(t = 3.8、p ≈ 0.025)。公開チェックポイントの+3.1は1回の学習結果であり、+2.1は同じ設定による5回の学習結果の平均です。
評価はArtificial AnalysisのTerminal-Bench 2.1の方法に従いました。89タスク、Terminus-2、各タスクを3回繰り返してpass@1を算出し、1タスクあたりのタイムアウトは2時間です。唯一の違いはサンドボックスで、E2BではなくHarbor経由のDaytonaを使っています。Artificial Analysisが公表するgemma-4-31B-itのスコアは43.0で、こちらの再現評価も近い値でした。本稿の改善幅は、公表値43.0を基準にしています。
| Terminal-Bench 2.1 | 43.0との差 | |
|---|---|---|
| 公開チェックポイント | 46.1 | +3.1 |
| 同じ設定による5回の学習 | 45.1 | +2.1 ± 0.6 |
異なるスキャフォールドと難易度分布を持つ、独立した120タスクの検証セットも追跡しました。検証スコアは5回中4回でベンチマークと同じ方向に動き、1回では逆方向に動きました。そのため、主要な結果にはTerminal-Benchを用いています。検証スコアによるチェックポイントや実行の選別は行っていません。
5回の平均では、検証スコアはいったん上昇した後、4回目の更新で開始時をわずかに下回り、5回目に大きく上昇しました。最後の上昇は例外なくすべての実行で見られ、今回最も再現性の高い観察結果でした。5回の更新が最適なのか、それともより長い変動の一局面なのかは、今後の実験で確かめます。
他の研究者に特に検証していただきたいのは、どのように改善が生じるのかという点です。実測した成功率が対象範囲内にあるタスクを選んだ2条件、151件と707件の両方で、タスク完了率と解答の正確さがともに向上しました。一方、別の方法で完了率を高めた設定では、その代わりに正確さが低下しました。改善はベースモデルがターン数の上限に達していたタスクに集中し、すでに完了できていたタスクではほぼ変化がありませんでした。ただし、これも他の結果と同じく、少数の実行から得られた観察です。
05 試行記録に含まれる情報
公開される軌跡データは、成功例だけに限られることがよくあります。今回はすべての試行を収録しており、失敗例にも多くの情報が含まれています。図9はその一例です。固定小数点計算機/app/fixcalcの作成を求められたgemma-4-31B-itは、12ターンで実装し、45個中44個のアサーションに合格しましたが、test_empty_inputで失敗しました。報酬は0.0で、何も始めなかったモデルと同じです。
45個のアサーションのうち44個に合格
gemma-4-31B-itが12ターンで実装。
test_empty_inputこれは珍しいケースではありません。公開データには、8個以上のアサーションに合格し、1個だけ失敗した試行が6,544件あり、全試行の18%を占めます。スコアが記録するのは成功か失敗かだけです。報酬の計算には足りますが、そこに至った過程は分かりません。テストごとの記録には、どのアサーションに失敗し、そのときモデルが何を入力したかが残っています。この情報をテストごとの部分点として直接使う方法も試しましたが、このタスクセットでは二値報酬より結果が悪く、二値報酬に戻しました。それでも、ここは今後最も詳しく調べたい領域です。
他の人が同じ規模の実験を再現するのは容易ではありませんが、データ形式を整えることで再利用しやすくしています。各試行には2つの表現があります。チャットテンプレートにそのまま渡せるmessages列と、その形式への変換時に省かれる情報も含む完全なTerminus-2エピソードです。
| フィールド | 収録内容 |
|---|---|
messages | {role, content, reasoning_content, parsed}。SFTに利用可能で、すべての行でロールの厳密な交互性を検証済み。 |
terminus_episode | 送信した全キー入力、返された生のターミナル画面、スキャフォールドが挿入した警告。 |
steps[].metrics | ターンごとのprompt_tokens、completion_tokens、cached_tokens。 |
steps[].timestamp | ターンごとの経過時間。出力トークン数と組み合わせて、そのターンの生成速度を算出できます。 |
agent.extra | 推論時の設定:パーサー、温度、max_tokens。 |
tests | 名前付きアサーションの判定結果、36,074行。 |
verifier_output | pytestの出力とプログラムの標準出力、72,148行。1試行あたり2行。 |
release_meta | 採点記録を格納:reward、reward_uncapped、上限制約のフラグ、ステータス。 |
総量は、集計対象の試行36,144件(kを超える再試行を含めると62,481件)、入力トークン36.8億、出力トークン8.0億、延べ実行時間19,875時間です。毎ターン会話履歴全体を再送するため、入力と出力の比率は4.6:1になります。DeepSeek-V4-ProとGLM-5.2は、試行数の11%に対し、延べ実行時間の58%を占めました。
6つのモデル構成のpass@1と総実行時間
各点が1つのモデル構成を表します。実行時間は対数スケールです。6構成の最大値と最小値の差は、pass@1で1.4倍、総実行時間で10.6倍あります。
データからは、次のような傾向も読み取れます。
推論を有効にしたgemma-4-31B-itは、約3分の1の試行を2ターン以内に終了します。スクリプトを書いて完了を宣言し、実行しないまま終わっています。
スコアとコストは別々に動きます。モデル間のpass@1の差は最大1.4倍ですが、成功1件あたりのトークン数の中央値には34倍の差があります。
GLMには、有効なツール呼び出しを含まないターンがあります。しかも、そのようなターンは成功したターンより長く、分析が実際の操作につながっていません。
ターン数が多いほど進展するとは限りません。同じタスク内で比較すると、QwenとGLMでは成功した試行のほうが失敗した試行よりターン数が少なく、他のモデルでは大きな差がありませんでした。
06 難易度ラベルを別のモデルに流用できない理由
6つのモデル構成すべてについて、半分ほどの確率で解けるタスクの集合を測定しましたが、集合の重なりは小さいものでした。異なるモデル間の対象タスク集合のJaccard類似度は0.11〜0.21で、1,004件のうち、全6構成で中央付近の成功率になるタスクは1件もありませんでした。
6構成の対象タスク集合のJaccard類似度
各モデルが「半分ほどの確率で解ける」タスク集合どうしの重なり。ここではベース成功率0.25〜0.75を対象にしています。
難易度は、タスク、モデル、スキャフォールドの組み合わせで決まります。難易度を使って学習データを選ぶなら、私たちのものも含め、他のモデルのラベルをそのまま引き継ぐことはできません。実際に学習させるモデルで評価する必要があります。成功率だけでなく全軌跡を公開するのも、別のモデルで測定をやり直せるようにするためです。
07 今後の取り組み
今後取り組みたいことは、すでにいくつか見えています。
測定の質を保ちながら対象を広げる。タスク数が1,004件にとどまるのは、すべてに動作確認済みの参照解答、6構成での難易度測定、テストごとの結果を付けているためです。今後はタスク数と分野を増やしながら、推測に頼らず1件ずつ測定する方針を保ちます。
再評価を高速にする。モデルごとに難易度を測る必要があるなら、重要なのは、自分のモデルでタスクセットを再評価し、適切な難易度帯を選び直せるツールです。1週間ではなく、半日で誰でも実行できるようにしたいと考えています。
評価のオーバーヘッドを減らす。今回の延べ実行時間の20〜30%はモデルの計算ではなく、試行ごとのタイムアウトに伴うクライアント側の再試行によるものでした。評価パイプラインには、まだ改善の余地があります。
他の学習目的への適用。この選定ルールは、二値報酬を使うグループ相対型の強化学習では、プロンプトの勾配の重みが報酬分散p(1−p)となり、0.50で最大になるという考え方に基づきます。これはGRPOだけに固有のものではなく、他のグループ相対型の目的関数にも適用できると考えています。DPOなら、モデルが同程度にもっともらしいと判断するペアが対応する候補になるでしょう。どちらもまだ測定していませんが、公開するタスクセットを使って検証できるようにしたいと考えています。
今後、より詳しい論文としてまとめる予定です。
公開リポジトリには、集計結果だけでなく試行単位のメタデータを含めているため、各成功率を確認できます。このタスクセットをベンチマークに使う場合は、1,004件のうち202件が私たちの学習または検証セットに含まれていることに注意してください。評価には、未使用の802タスクからなる分割を使用してください。学習・検証用の全271タスクは、bandcentralリポジトリで公開しています。
貢献
Y.C.は、タスクセットの生成と検証、評価パイプライン、成功率50%付近のタスク選定、強化学習とその評価、本稿の執筆を設計・主導しました。J.W.は、データ、環境、モデル、学習設定にわたる幅広い実験と評価を行い、検証方法の整備と改善に貢献しました。S.H.は、取り組み全体の方向性を示し、本稿の執筆に貢献しました。
謝辞
本研究と原稿をレビューし、フィードバックをくださったAdithya Kolavi氏(Hugging Face)とMaxime Labonne氏(Liquid AI)に感謝します。
参考文献
手法
DeepSeekMath(Shao et al., 2024):GRPOを提案。本稿の選定ルールが対象とする報酬分散と、プロンプトごとの勾配の重みに関わるグループ相対型の目的関数。
DAPO(Yu et al., 2025):長いタスクを扱うエージェントの強化学習に向けた動的サンプリングとClip-Higher。
Dr.GRPO(Liu et al., 2025):標準偏差による正規化を使わないアドバンテージ処理。
LoRA(Hu et al., 2021):今回の学習で使用するアダプター手法。
verl / HybridFlow(Sheng et al., 2024):今回の実験を実行した強化学習フレームワーク。
ベンチマークと実行基盤
Terminal-Bench(Merrill, Shaw et al., 2026):89タスクからなるベンチマーク。今回は、そのうち28タスクを修正したバージョン2.1で評価。
Terminus:エージェントのスキャフォールド。今回はTerminus 2を使用しており、このバージョン単独の解説文書はありません。
Artificial Analysis:今回準拠した公開評価手法と、改善幅の基準にしたベースモデルのスコア43.0の出典。
利用した、または関連するタスクセット
SETA(Shen et al., CAMEL-AI, 2026):4,567件のターミナル環境。今回の151学習タスクのうち33件はSETA由来で、独自タスクと同じルールで評価。
Tmax(UW / AI2, 2026):データ、モデル、コードとともに公開された、ターミナルエージェント向けの強化学習手法。
実測した難易度による学習データ選定の先行研究
セクション02のルール自体は新しいものではなく、この分野では活発に研究が進められています。
Kimi k1.5(2025):DAPOに先立ち、プロンプトごとの成功率を難易度の指標として計算し、サンプリングに利用。ただし、分散が最大の領域ではなく、より難しいプロンプトに重みを置く点で、今回のルールとは異なります。
Accelerating RLHF Training with Reward Variance Increase(Yang et al., 2025):初期方策の報酬分散が大きいほどGRPOベースの学習が速くなることを理論的に示し、その仕組みを定式化。
Spend Your Rollouts Where It Counts(Kim et al., 2026):同じp(1−p)の考え方を、事前のフィルタリングではなく、学習中のロールアウト配分に適用。
CLPO(Zhang et al., 2025):現在の方策の正答率でプロンプトを分類し、中程度の難易度帯を中心に学習。
Mechanistically Interpreting Sample Difficulty in RLVR(Cheng et al., 2026):難易度と改善幅の関係は単調ではなく、簡単〜中程度のプロンプトで最も安定した改善が得られると報告。最適値が厳密に0.50であると断定することには慎重さが必要です。
引用情報
@misc{calik2026termgrade, title = {{TermGrade}: 1k Graded Terminal Environments, 36k Trajectories, and the {RL} Run They Trained}, author = {Calik, Yagiz and Wu, Jianbo and Hara, Shimpei}, year = {2026}, month = oct, howpublished = {\url{https://www.aiand.com/newsroom/termgrade}}, note = {ai\& Research blog post}}図表の数値はすべて、本記事で説明した評価実行の実測値です。公開リポジトリの試行ごとのメタデータから、それぞれの値を再現できます。DeepSeek-V4-Proの数値は評価対象ビルドのもので、0813版のものではありません。脚注†を参照してください。