NVIDIA PivotOPD навчає багатоходових ШІ-агентів виправляти критичні помилки
Дослідники NVIDIA спільно з Принстонським університетом і Мерілендським університетом представили PivotOPD — метод дистиляції на основі поточної політики для багатоетапних агентів на базі LLM. Дистиляція PivotOPD на основі поточної політики навчає агента уникати своєї найшкідливішої ранньої помилки та відновлюватися, якщо вона все ж сталася. Серед 13 базових методів він демонструє найкращий середній результат на ALFWorld, WebShop і Search-based QA для студентських моделей Qwen3-1.7B та Qwen3-8B. Висновок: відновлення можна опанувати, а стандартний OPD рідко цього навчає.
Коротко
- Розмір: Метод навчання, а не модель. Протестований на студентських моделях Qwen3-1.7B і Qwen3-8B, а також на студентській моделі Nemotron-3.5-SFT на SWE-Bench Verified.
- Працює на: Навчання проводилося на вузлах NVIDIA H100. Додаткові витрати під час інференсу відсутні, тож навчений агент працює всюди, де працює його базова модель.
- Продуктивність: Перше місце за всіма 8 середніми показниками для окремих бенчмарків у порівнянні з 13 базовими методами, за 3 початковими значеннями.
- Найкраще: Відновлюється після 72,7% відтворених ключових помилок проти 20,3% у стандартного OPD.
- Найгірше: 55,9% на завданнях “Look” в ALFWorld зі студентською моделлю 1.7B проти 83,9% у SOD.
- Підсумок: Найкраще: навчає відновленню, якого не може досягти RL, що використовує лише результат. Найгірше: залежить від середовищ, які можна відтворити, і вчителя, чиї ключові моменти збігаються з оракулом у 77,8% невдалих запусків.
Що таке ключова помилка в багатоетапному агенті?
Ключова помилка — це дія, яка збільшує найкоротший шлях, що залишився до виконання завдання, або робить завдання нерозв’язним. Символьний оракул ALFWorld вимірює це на кожному кроці.
Серед Qwen3-8B, Qwen3-30B-A3B і Qwen3-235B-A22B 59% невдалих запусків (155 із 262) містили таку помилку. Перший ключовий крок відбувався рано — медіанно між 8-м і 12-м кроками з 30. Після цього агенти марно виконували ще від 18 до 21 кроку, не відновлюючись.
У відтвореннях невдалих запусків Qwen3-8B виправлення ключового кроку підвищило успішність із 8% до 59%. Якщо залишити помилку й примусово виконати правильну дію протягом наступних 2 кроків, успішність усе одно сягала 58%.
Чому стандартна дистиляція на основі поточної політики не справляється?
Стандартний OPD знизив частку невдач на відкладеній вибірці з 79% до 56%. Кількість невдач після ключового кроку зменшилася лише з 51% до 49%. Імовірність правильної дії на кожному ключовому кроці залишалася нижчою за 1%, тому 8 запусків рідко її вибирали.
RL на основі результату має ту саму сліпу зону: якщо кожен запуск завершується невдачею, перевага відносно групи дорівнює 0.
Як працює PivotOPD?
PivotOPD додає 3 компоненти до групового RL, поєднуючи їх в одному оновленні PPO.
- Виявлення ключових моментів: Більша модель-учитель ретроспективно аналізує кожен запуск і його результат. Вона вибирає потенційні кроки та визначає правильну дію на кожному з них. Крок вважається ключовим, коли дія студента відрізняється від правильної дії. В ALFWorld виявлені ключові моменти в середньому перебувають у межах 1 кроку від ключового моменту оракула у 77,8% невдалих запусків.
- Превентивна дистиляція (зворотна KL-дивергенція): Заморожена копія студента, отримавши підказку з правильною дією, повторно оцінює власну відповідь студента. Це відштовхує студента від зробленої помилки.
- Дистиляція відновлення (пряма KL-дивергенція): Після кожної ключової помилки учитель визначає дію для відновлення протягом до K кроків. Учитель, який працює з підказкою, генерує відповіді для відновлення, а студент без підказки навчається на них. Пряма KL-дивергенція охоплює всю масу розподілу, тому підвищує ймовірність дій, які студент майже ніколи не вибирає.
Учитель визначає лише дії. Цілі на рівні токенів надходять із власного розподілу студента, сформованого з підказкою.
Як PivotOPD працює на бенчмарках агентів?
Зі студентською моделлю 1.7B PivotOPD демонструє в середньому 73,7% на ALFWorld — на 5,5 пункту вище за SDAR. На Search-based QA він показує в середньому 44,5% — на 5,9 пункту вище за RLSD. На WebShop він перевершує RLSD на 1,2 бала за оцінкою, але на 14,1 пункту за часткою успішних виконань (76,6%).
Зі студентською моделлю 8B він досягає 93,0% на ALFWorld, 47,4% на Search-based QA і 81,9% успішних виконань у WebShop. Перевага менша, але становить щонайменше 1,8 пункту.
Якщо Qwen3-8B використовується як власний учитель, PivotOPD усе одно перемагає на всіх 3 бенчмарках щонайменше на 1,5 пункту, у середньому — на 3,9 пункту.
На SWE-Bench Verified студентська модель Nemotron-3.5-SFT, навчена Nemotron-3-Super, покращила результат із 62,8% до 66,0%. Стандартний OPD досяг 63,0%, а показник учителя становить 73,0%.
Відновлення є найпомітнішою перевагою. Серед 72 відтворених ключових помилок PivotOPD відновився у 72,7% випадків проти 8,3% у базової моделі, 20,3% у стандартного OPD і 45,8% у варіанта лише з превентивною дистиляцією. У середньому для відновлення йому знадобилося 9,7 кроку проти оптимальних 6,2.
</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">Середні значення за 3 початковими значеннями з таблиці 1 статті. У порівнянні з найсильнішими базовими методами. PivotOPD посідає перше місце за всіма 8 середніми показниками окремих бенчмарків у порівнянні з 13 базовими методами.</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>Джерело: <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);};});
/* панель 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='Кероване відновлення після помилки, потім завдання виконано. Відтворення показують 58% успішності з 2 керованими кроками.';}
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);});}
/* панель 2 */
var S=[
{h:'1. Виявлення ключових моментів',b:'Більша модель-учитель ретроспективно аналізує кожен запуск і його результат, вибирає потенційні кроки та визначає правильну дію. Крок є ключовим, коли дія студента відрізняється. Виявлені ключові моменти в середньому перебувають у межах 1 кроку від моментів оракула у 77,8% невдалих запусків ALFWorld.',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">Правильна дія</span>']},
{h:'2. Превентивна дистиляція (зворотна KL-дивергенція)',b:'Заморожена модель студента з підказкою правильної дії стає привілейованим власним учителем. Вона повторно оцінює відповідь, яку фактично написав студент, зміщуючи ймовірність від помилки. Вага w_prev залишається малою (0,001).',f:['<span class="chip">Відповідь студента на кроці t</span>','<span class="arr">→</span>','<span class="chip">Власний учитель + підказка (правильна дія)</span>','<span class="arr">→</span>','<span class="chip g">Оновлення зворотної KL-дивергенції</span>']},
{h:'3. Дистиляція відновлення (пряма KL-дивергенція)',b:'Після ключової помилки учитель визначає дію для відновлення на кожному з наступних K кроків. Власний учитель із підказкою генерує відповідь для відновлення, а студент без підказки навчається на ній. Пряма KL-дивергенція охоплює всю масу розподілу, тому підвищує ймовірність дій, які студент майже ніколи не вибирає. Оптимальне K: 2 для ALFWorld, 1 для WebShop і Search QA.',f:['<span class="chip r">Стан після помилки</span>','<span class="arr">→</span>','<span class="chip">Учитель: дія для відновлення</span>','<span class="arr">→</span>','<span class="chip">Власний учитель генерує відповідь</span>','<span class="arr">→</span>','<span class="chip g">Оновлення прямої KL-дивергенції</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);
/* панель 3 */
var B={s:[
['Середня успішність ALFWorld (%)',[['PivotOPD',73.7],['SDAR',68.2],['OPID',61.3],['RLSD',60.7],['GRPO',42.7]]],
['Середня точність Search-based 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]]],
['Середня точність Search-based 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'));}});
/* панель 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 — напрямок |
| Навчається на відповідях для відновлення, написаних учителем | Так (пряма 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 | Не оприлюднено | Не оприлюднено |
Джерело оцінок: таблиця 1 PivotOPD.
Скільки коштує навчання і чи можна це запустити?
PivotOPD змінює лише процес навчання, тому додаткові витрати під час інференсу відсутні. В ALFWorld зі студентською моделлю 1.7B на 4 графічних процесорах H100 накладні витрати порівняно з GRPO становлять 12,4% при K = 1. Вони зростають до 94,2% при K = 2, оскільки пізніші кроки відновлення потребують повторного відтворення середовища. Обраний бюджет становить K = 2 для ALFWorld і K = 1 для WebShop та Search-based QA.
Ключові висновки
- Понад половина невдалих запусків агентів залежить від 1 ранньої помилки, яку можна виправити.
- Стандартний OPD майже не впливає на ці невдачі: з 51% до 49%.
- PivotOPD відновлюється після 72,7% відтворених помилок проти 20,3% у OPD.
- Найкращий середній результат у порівнянні з 13 базовими методами на ALFWorld, WebShop і Search QA.
- Додаткові витрати під час інференсу відсутні, але код ще не оприлюднено.
Ознайомтеся зі статтею та сторінкою проєкту. Уся подяка — дослідникам цього проєкту. Також підписуйтеся на нас у Twitter і не забудьте приєднатися до нашого сабреддіту 150k+ ML та підписатися на нашу розсилку. Стривайте! Ви є в Telegram? Тепер ви також можете приєднатися до нас у Telegram.
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.