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);}
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 GPU H100 накладные расходы по сравнению с GRPO составляют 12,4% при K = 1. При K = 2 они увеличиваются до 94,2%, поскольку для последующих шагов восстановления требуется воспроизведение среды. Выбранный бюджет составляет K = 2 для ALFWorld и K = 1 для WebShop и Search-based QA.
Основные выводы
- Более половины неудачных запусков агентов зависят от одной ранней ошибки, которую можно исправить.
- Стандартный OPD почти не влияет на эти ошибки: с 51% до 49%.
- PivotOPD исправляет 72,7% воспроизведённых ошибок против 20,3% у OPD.
- Лучший средний результат в сравнении с 13 базовыми методами на ALFWorld, WebShop и Search QA.
- Никаких дополнительных расходов на инференс, но код пока не опубликован.
Ознакомьтесь с статьёй и страницей проекта. Вся заслуга принадлежит исследователям этого проекта. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту о машинном обучении с аудиторией более 150 тыс. участников и подписаться на нашу рассылку. Постойте! Вы пользуетесь Telegram? Теперь вы также можете присоединиться к нам в Telegram.
Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.