NVIDIAの研究者らは、プリンストン大学およびメリーランド大学とともに、 PivotOPDというマルチターンLLMエージェント向けのオンポリシー蒸留手法を発表しました。PivotOPDのオンポリシー蒸留は、エージェントが最も深刻な早期のミスを回避し、実際に発生してしまった場合にはそこから回復するよう訓練します。13のベースラインに対して、Qwen3-1.7BおよびQwen3-8Bの学生モデルにおいて、ALFWorld、WebShop、Search-based QAで最高の平均スコアを達成しました。要点は、回復は学習可能であり、標準的なOPDはそれをほとんど教えないということです。
TL;DR
- サイズ: モデルではなく訓練手法です。Qwen3-1.7BとQwen3-8Bの学生モデルに加え、SWE-Bench VerifiedでNemotron-3.5-SFTの学生モデルでもテストされました。
- 動作環境: NVIDIA H100ノードで訓練。推論コストは0で追加されないため、訓練されたエージェントはベースモデルが動作する場所ならどこでも動作します。
- 性能: 3シードにわたり、13のベースラインに対して全8つのベンチマーク別平均で第1位。
- 最良: リプレイされた決定的なミスの72.7%から回復。標準的なOPDの20.3%に対する数値です。
- 最悪: 1.7Bの学生モデルでのALFWorldの「Look」タスクで55.9%。SODの83.9%に対する数値です。
- 結論: 最良の点:成果報酬のみのRLでは到達できない回復能力を教えます。最悪の点:リプレイ可能な環境と、失敗したロールアウトの77.8%でオラクルと一致するピボットを持つ教師モデルに依存します。
マルチターンエージェントにおける決定的なミスとは?
決定的なミス(pivotal mistake)とは、タスク完了までの最短残り経路を長くしたり、解決不能にしたりするアクションのことです。ALFWorldのシンボリックオラクルが毎ターンこれを測定します。
Qwen3-8B、Qwen3-30B-A3B、Qwen3-235B-A22Bを通じて、失敗したロールアウトの59%(262件中155件)に1つ以上含まれていました。最初の決定的ターンは早期に訪れ、30ターン中のターン8から12が中央値でした。エージェントはその後、回復せずにさらに18から21ターンを浪費しました。
Qwen3-8Bの失敗のリプレイでは、決定的ターンを修正すると成功率が8%から59%に上昇しました。ミスをそのまま残し、次の2ターンだけ正しいアクションを強制しても58%に達しました。
なぜ標準的なオンポリシー蒸留はこれを見逃すのか?
標準的なOPDは、ホールドアウトの失敗率を79%から56%に下げました。しかし決定的ターン後の失敗は51%から49%にしか減少しませんでした。正しいアクションの確率はすべての決定的ターンで1%未満にとどまり、8回のロールアウトではほとんどサンプリングされません。
成果に基づくRLも同じ盲点を抱えます。すべてのロールアウトが失敗する場合、グループ相対アドバンテージは0になります。
PivotOPDはどのように機能するのか?
PivotOPDは、グループベースのRLに3つのコンポーネントを追加し、単一のPPO更新で組み合わせます。
- ピボット検出:より大きな教師モデルが各ロールアウトとその結果を後知恵として読み、候補ターンを選び、各ターンで正解アクションを示します。学生モデルのアクションが正解アクションと異なる場合、そのターンは決定的とみなされます。ALFWorldでは、検出されたピボットは、失敗したロールアウトの平均77.8%でオラクルのピボットの1ターン以内に位置しました。
- 予防的蒸留(逆KL):正解アクションのヒントを与えられた学生モデルの凍結コピーが、学生モデル自身の応答を再スコアリングします。これにより、学生モデルを既に犯したミスから遠ざけます。
- 回復蒸留(forward KL): 各ピボットの後、教師は最大で K turns。ヒント付きの自己教師モデルがリカバリー応答を書き、ヒントなしの学生モデルがそれを使って学習します。Forward KL は mass-covering であるため、学生モデルがほとんどサンプルしないアクションを引き上げます。
教師は行動の名前を指し示すだけです。トークンレベルのターゲットは、生徒自身のヒント付き分布から得られます。
PivotOPDはエージェントベンチマークでどのような性能を示しますか?
1.7Bの学生モデルでは、PivotOPDはALFWorldで平均73.7%を達成し、SDARを5.5ポイント上回ります。Search-based QAでは平均44.5%となり、RLSDを5.9ポイント上回ります。WebShopでは、スコアでRLSDを1.2上回るだけでなく、成功率(76.6%)では14.1上回っています。
8Bの学生モデルでは、ALFWorldで93.0%、Search-based QAで47.4%、WebShopで81.9%の成功率に達します。差はより小さく、最低でも1.8ポイントです。
Qwen3-8Bを教師モデルとしても、PivotOPDは依然として3つのベンチマークすべてで最低1.5ポイント、平均3.9ポイントの差で勝利しています。
その SWE-Bench Verified, Nemotron-3-Superが教えたNemotron-3.5-SFTの生徒は62.8%から66.0%に向上しました。標準的なOPDは63.0%であり、教師モデルは73.0%のスコアを記録しています。
回復力が際立っています。再生された72件の重要なミスのうち、PivotOPDは72.7%の割合で回復したのに対し、ベースモデルは8.3%、標準OPDは20.3%、予防のみは45.8%でした。回復までの平均ターン数は9.7で、最適値の6.2に対しています。
Prev</button><button class="btn" id="mtp-next">Next </button></div> </div> <div class="panel" data-p="2"> <div class="tog" id="mtp-tog"><button class="on" data-m="s">Qwen3-1.7B</button><button data-m="l">Qwen3-8B</button></div> <div id="mtp-bench"></div> <p class="muted">論文のTable 1に基づく3シードの平均値。最強のベースラインと比較。PivotOPDは、13のベースラインを相手に、8つのベンチマーク別平均すべてで1位を獲得。</p> <div class="bench"><h6>SWE-Bench Verified 解決率(Nemotron-3.5-SFT スチューデント)</h6><div id="mtp-swe"></div></div> </div> <div class="panel" data-p="3"> <p>72個のオラクルラベル付き重要なミスを、各ポリシーについて8回リプレイ。それでも各ポリシーはどの程度タスクを完了できるのか?</p> <div id="mtp-rec"></div> <p class="muted">回復までの平均ターン数:PivotOPD 9.7、標準OPD 12.3、ベース 13.4、最適 6.2。</p> <button class="btn" id="mtp-case">リプレイケーススタディ</button> <div class="case"> <div class="col"><h6>ベースモデル</h6><div id="mtp-ca"></div></div> <div class="col"><h6 style="color:#76B900">PivotOPDモデル</h6><div id="mtp-cb"></div></div> </div> </div> <div class="ft"><span>Source: <a href="https://arxiv.org/abs/2609.40285" target="_blank" rel="noopener">arXiv 2609.40285</a></span><b>© Marktechpost</b></div> </div> <script> (function(){ var R=document.getElementById('mtp-pivotopd'); function $(s){return R.querySelector(s);} function $$(s){return R.querySelectorAll(s);} function resize(){try{parent.postMessage({mtpPivotOPDHeight:R.offsetHeight+40},'*');}catch(e){}} var shown={}; $$('.tab').forEach(function(b){b.onclick=function(){ $$('.tab'). forEach(function(x){x.classList.remove('on')});b.classList.add('on'); var p=b.getAttribute('data-p'); $$('.panel').forEach(function(x){x.classList.toggle('on',x.getAttribute('data-p')===p)}); if(p==='2')bench(mode); if(p==='3')rec(); setTimeout(resize,50);}); /* panel 1 */ var T=$('#mtp-turns'),cells=[]; for(var i=1;i<=30;i++){var d=document.createElement('div');d.className='t';d.textContent=i;T.appendChild(d);cells.push(d);} var timer; function play(recover){clearInterval(timer);cells.forEach(function(c){c.className='t'});var k=0; timer=setInterval(function(){var c=cells[k];var n=k+1; if(n<10)c.className='t ok';else if(n===10)c.className='t pv'; else if(recover){c.className=n<=12?'t rc':(n<=16?'t ok':'t');} else c.className='t wa'; k++; if(recover&&n===16){clearInterval(timer);$('#mtp-cap').textContent='誤りの後、ガイド付きで回復し、タスクを完了。リプレイでは、2回のガイド付きターンで成功率58%。';} if(k>=30){clearInterval(timer);$('#mtp-cap').textContent='回復なし:残りの20ターンが無駄になる。実際のエージェントは平均して18から21ターンを無駄にした。';} },90);} $('#mtp-play1').onclick=function(){play(false)};$('#mtp-play2').onclick=function(){play(true)}; function count(){ $$('.stat b[data-c]').forEach(function(b){var t=+b.getAttribute('data-c'),v=0;var iv=setInterval(function(){v+=2;if(v>=t){v=t;clearInterval(iv);}b.textContent=v+'%';},20);});} /* panel 2 */ var S=[ {h:'1. ピボット検出',b:'より大きな教師モデルが、各ロールアウトとその結果を後知恵的に読み取り、候補ターンを選び、正解アクションを特定する。学生のアクションが異なるターンがピボットターンとなる。検出されたピボットは、失敗したALFWorldロールアウトの平均77.8%で、オラクルのものから1ターン以内に一致する。',f:['<span class="chip">ロールアウト + 結果</span>','<span class="arr">→</span>','<span class="chip">教師モデル</span>','<span class="arr">→</span>','<span class="chip r">ピボットターン t</span>','<span class="chip g">Gold action</span>']}, {h:'2. 予防的蒸留(逆KL)',b:'凍結されたstudentは、ゴールドアクションによってヒントを与えられ、特権的な自己教師(self-teacher)となります。それは、studentが実際に書いた応答を再スコアリングし、誤りから確率を遠ざけます。重み w_prev は小さく(0.001)保たれます。',f:['<span class="chip">Student response at t</span>','<span class="arr">→</span>','<span class="chip">Self-teacher + hint(gold)</span>','<span class="arr">→</span>','<span class="chip g">Reverse KL update</span>']}, {h:'3. 回復的蒸留(順方向KL)',b:'ピボットの後、教師は次の K ターンそれぞれについて回復アクションを示します。ヒント付きの自己教師が回復応答を書き、ヒントなしのstudentがそれを使って学習します。順方向KLはmass-coveringであるため、studentがほとんどサンプリングしないアクションを引き上げます。最良の K: ALFWorld では 2、WebShop と Search QA では 1。',f:['<span class="chip r">Post-mistake state</span>','<span class="arr">→</span>','<span class="chip">Teacher: recovery action</span>','<span class="arr">→</span>','<span class="chip">Self-teacher writes response</span>','<span class="arr">→</span>','<span class="chip g">Forward KL update</span>']} ]; var si=0; function step(i){si=(i+3)%3;$$('.step').forEach(function(x){x.classList.toggle('on',+x.getAttribute('data-s')===si)}); var s=S[si];$('#mtp-detail').innerHTML='<h5>'+s.h+'</h5><p style="margin:0">'+s.b+'</p><div class="flow">'+s.f.join('')+'</div>';setTimeout(resize,30);} $$('.step').forEach(function(x){x.onclick=function(){step(+x.getAttribute('data-s'))}}); $('#mtp-prev').onclick=function(){step(si-1)};$('#mtp-next').onclick=function(){step(si+1)};step(0); /* panel 3 */ var B={s:[ ['ALFWorld avg success (%)',[['PivotOPD',73.7],['SDAR',68.2],['OPID',61.3],['RLSD',60.7],['GRPO',42. 7]]], ['検索ベースQA平均精度(%)',[['PivotOPD',44.5],['RLSD',38.6],['SOD',38.2],['GRPO',37.7]]], ['WebShop成功率(%)',[['PivotOPD',76.6],['OPID',68.0],['RLSD',62.5],['GRPO',57.0]]]], l:[ ['ALFWorld平均成功率(%)',[['PivotOPD',93.0],['RLSD',90.8],['Skill-SD',88.6],['GRPO',35.3]]], ['検索ベースQA平均精度(%)',[['PivotOPD',47.4],['OPID',45.6],['OPSD',43.3],['GRPO',37.5]]], ['WebShop成功率(%)',[['PivotOPD',81.9],['SDAR',79.7],['RLSD',78.9],['GRPO',75.0]]]]}; function bars(el,rows,max){el.innerHTML=rows.map(function(r){return '<div class="row'+(r[0]==='PivotOPD'?' me':'')+'"><span class="lb">'+r[0]+'</span><span class="tr"><span class="bar" data-w="'+(r[1]/max*100)+'"></span></span><span class="v">'+r[1].toFixed(1)+'</span></div>'}).join(''); requestAnimationFrame(function(){setTimeout(function(){el.querySelectorAll('.bar').forEach(function(b){b.style.width=b.getAttribute('data-w')+'%'})},40)});} var mode='s'; function bench(m){mode=m;var W=$('#mtp-bench');W.innerHTML='';B[m].forEach(function(g){var d=document.createElement('div');d.className='bench';d.innerHTML='<h6>'+g[0]+'</h6><div></div>';W.appendChild(d);bars(d.lastChild,g[1],100);}); bars($('#mtp-swe'),[['教師',73.0],['PivotOPD',66.0],['標準OPD',63.0],['生徒',62.8]],100);setTimeout(resize,60);} $$('#mtp-tog button').forEach(function(b){b.onclick=function(){$$('#mtp-tog button').forEach(function(x){x.classList.remove('on')});b.classList.add('on');bench(b.getAttribute('data-m'));}}); /* panel 4 */ function rec(){bars($('#mtp-rec'),[['PivotOPD',72.7],['直前のみ',45.8],['標準OPD',20.3],['ベース',8.3]],100);setTimeout(resize,60);} var CA=[['ターン1-2:冷蔵庫に卵が',''],['ターン3:冷蔵庫からトマトを取る','bad'],['ターン4:電子レンジへ移動',''],['ターン5:トマトを電子レンジに移す','bad'],['ターン6-30:卵を最後まで見つけられない','bad'],['✕ 失敗','bad']]; var CB=[['ターン1-2:冷蔵庫に卵が ない',''],['ターン3:冷蔵庫からトマトを取る','bad'],['ターン4:回復が始まり、テーブルへ移動','good'],['ターン5:トマトを脇に置く','good'],['ターン6:テーブルから卵を取る','good'],['ターン7-11:卵を冷まし、電子レンジに移す','good'],['✓ 成功','good']]; function fill(el,arr){el.innerHTML=arr.map(function(a){return '<div class="ln '+a[1]+'">'+a[0]+'</div>'}).join('');} function caseplay(){fill($('#mtp-ca'),CA);fill($('#mtp-cb'),CB);var a=$$('#mtp-ca .ln'),b=$$('#mtp-cb .ln');var k=0;var iv=setInterval(function(){if(a[k])a[k].classList.add('show');if(b[k])b[k].classList.add('show');k++;if(k>7)clearInterval(iv);},380);setTimeout(resize,60);} $('#mtp-case').onclick=caseplay; fill($('#mtp-ca'),CA);fill($('#mtp-cb'),CB);$$('#mtp-pivotopd .ln').forEach(function(x){x.classList.add('show')}); count(); window.addEventListener('load',resize);window.addEventListener('resize',resize);setTimeout(resize,300); })(); </script> </body></html> ">PivotOPDは他のエージェント蒸留手法とどのように比較されますか?
| 指標 | PivotOPD | OPSD(標準OPD) | OPID | SDAR | RLSD |
|---|---|---|---|---|---|
| 中核アイデア | 教師が検出した重要ターン(ピボタルターン)での防止と回復 | すべての応答に対する特権的セルフティーチャー | オンポリシーの事後分析(ハインドサイト)に基づく階層的スキル | シグモイドゲート付き補助損失としてのOPSD | 自己蒸留が更新サイズを設定し、RLVRが方向を設定 |
| 教師が書いた回復応答で学習 | はい(forward KL) | いいえ | いいえ | いいえ | いいえ |
| ALFWorld平均、Qwen3-1.7B | 73.7 | 12.4 | 61.3 | 68.2 | 60.7 |
| Search QA平均、Qwen3-1.7B | 44.5 | 36.8 | 37.5 | 37.1 | 38.6 |
| WebShop成功率、Qwen3-1.7B | 76.6 | 10.1 | 68.0 | 57.0 | 62.5 |
| ALFWorld平均、Qwen3-8B | 93.0 | 46.7 | 83.7 | 83.8 | 90.8 |
| コード | 近日公開 | GitHub | GitHub | 非公開 | 非公開 |
スコアの出典: PivotOPD Table 1.
訓練にはどれくらいのコストがかかるのか、そして実行できるのか?
PivotOPDは訓練のみを変更するため、推論に追加コストは一切かかりません。1.7Bの学生モデルを用いたALFWorldでの実験では、4基のH100 GPU上で、GRPOに対するオーバーヘッドは 12.4%です。 K これは = 1の場合です。では94.2%に跳ね上がります。 K = 2では、後のリカバリーターンで環境のリプレイが必要になるため、94.2%に跳ね上がります。選択された予算は、ALFWorldでは K = 2、WebShopおよびSearch-based QAでは K = 1です。
重要なポイント
- エージェントの失敗したロールアウトの半分以上は、リカバリー可能な1つの早期のミスに起因しています。
- 標準のOPDはこれらの失敗にほとんど効果がありません:51%から49%へ。
- PivotOPDはリプレイされたミスの72.7%からリカバーします。OPDは20.3%です。
- ALFWorld、WebShop、Search QAにおいて13のベースラインに対して最高の平均成績。
- 推論オーバーヘッドは0ですが、コードはまだ公開されていません。
ぜひ 論文 と プロジェクトページをご覧ください。すべてのクレジットはこのプロジェクトの研究者に帰します。また、お気軽に Twitter をフォローし、 150k以上のML SubReddit に参加し、 私たちのニュースレターを購読することもお忘れなく。お待ちください!Telegram をお使いですか? 今ではTelegramでも参加できます。
この投稿 NVIDIA PivotOPD、多ターンAIエージェントに重大なミスからの回復を教える 「appeared first on」 MarkTechPost.