Sakhanda Wire
NVDA $210.96 -0.59% MSFT $524.51 +0.66% GOOGL $320.21 -1.24% META $642.62 -0.96% AMZN $248.00 -0.95%
← До новин

Tsinghua AI відкрила вихідний код AKV — сервера керування кешем для LLM-агентів на базі SGLang

Дослідники Університету Цінхуа та CUHK відкрили вихідний код AKV — системи обслуговування для роботи з KV-кешем в LLM-агентах. Замість узагальнення старої історії агенти видаляють вибрані записи KV-кешу й продовжують використовувати решту. У 3 моделях і 4 бенчмарках агентів середня вартість знижується на 27,7%. Середній показник виконання завдань зростає на 1,7 бала. Код поширюється за ліцензією Apache-2.0 і створений на основі SGLang.

Коротко

  • Що це: система обслуговування та бібліотека політик, без вагових коефіцієнтів. Тестування проведено на GPT-OSS-120B (5,1 млрд активних параметрів), MiniMax-M2.7 (230 млрд загалом, 10 млрд активних) і MiroThinker-1.7-Mini (30 млрд загалом, 3 млрд активних).
  • Працює на: графічних процесорах NVIDIA через SGLang. У статті використано 8 графічних процесорів A800-80GB у BF16. Швидкий запуск обслуговує GPT-OSS-120B на 2 графічних процесорах (тензорний паралелізм 2).
  • Продуктивність: середня вартість на 27,7% нижча, а середній показник вищий на 1,7 бала порівняно з узагальненням за порогом.
  • Найкращий результат: GPT-OSS-120B на SWE-bench Verified: вартість завдання знизилася з 20,0 до 9,7 цента, а показник зріс із 40,0 до 43,2.
  • Найгірший результат: MiniMax-M2.7 на BrowseComp-Plus набирає 58,9 бала — на 3,4 бала менше, ніж 62,3 у Text Engineering.

Що таке інженерія кешу і чим вона відрізняється від інженерії контексту?

AKV — це система обслуговування від Цінхуа, яка дає LLM-агентам змогу видаляти та переміщувати власний KV-кеш.

Інженерія контексту скорочує або узагальнює текстову історію. Редагування цього префікса робить недійсними всі наступні стани KV. Збережений суфікс доводиться повторно попередньо заповнювати. Тому спеціальні оболонки узагальнюють історію пізно й агресивно, через що можна втратити деталі з проміжних раундів.

Інженерія кешу не змінює текстову траєкторію. Вона лише змінює, які записи KV залишаються видимими для механізму уваги. Збережені записи використовуються повторно без перерахунку. Вони все ще можуть містити інформацію з видалених повідомлень. Згідно з аналізом вартості в дослідницькій статті, читання KV-кешу становило 82,4% загальної вартості API.

Як працює AKV?

AKV визначає 3 операції з кешем. Append — стандартне оновлення для нових токенів. Drop видаляє вибрані записи з майбутнього механізму уваги, не змінюючи позицій. Repos переписує збережені ключі на позиції від 0 до r-1 за допомогою обертання RoPE. Значення залишаються незмінними, тому приховані стани не перераховуються. В абляційних експериментах додавання Repos підвищило частку проходження GPT-OSS-120B на BrowseComp-Plus із 55% до 62%.

Найскладніша частина — обслуговування. Ідентичні токени можуть створювати різні стани кешу за різних послідовностей операцій. Просте зіставлення префіксів могло б повторно використати неправильні стани. AKV розширює radix-дерево SGLang вузлами видалення та переміщення. Видалені KV звільняються лише тоді, коли вони більше не потрібні жодному активному запиту. Пакетна сегментна увага відновлює витіснені стани за один прохід попереднього заповнення.

Який вигляд має API AKV?

Інтерфейс не зберігає стан і є сумісним з OpenAI. Клієнти надсилають повну історію повідомлень і два необов’язкові поля. drop_message зіставляє індекс повідомлення-тригера з повідомленнями, які потрібно видалити. reposition містить індекси, після яких позиції ущільнюються.

CachePolicy формує ці поля з тригера, селектора та правила переміщення. Вбудовані політики ґрунтуються на раундах, токенах або моделі. CacheTool дає змогу моделі самостійно викликати drop_context.

Як AKV працює на бенчмарках агентів?

Основна політика — циклічне видалення відповідей інструментів, за якого зберігаються 12 останніх відповідей інструментів. Базовий метод Standard узагальнює історію на 96 тисячах токенів (192 тисячі для MiroThinker). Text Engineering узагальнює її на 48 тисячах. Використано бенчмарки BrowseComp-Plus, GAIA-Text, SWE-bench Verified і xbench-DeepSearch-2510.

МодельПоказник / вартість StandardПоказник / вартість Text Eng.Показник / вартість AKV
MiniMax-M2.752.4 / 5.052.8 / 5.753.7 / 4.4
GPT-OSS-120B51.0 / 11.248.3 / 10.253.1 / 7.3
MiroThinker-1.7-Mini44.1 / 20.437.1 / 18.145.8 / 14.8

Середня частка проходження (%) і вартість (центи США за завдання) на 4 бенчмарках. Джерело: таблиця 1 статті.

AKV також знижує вартість на 21,9% порівняно з Text Engineering. Розрив у точності збільшується під час довгих запусків. На BrowseComp-Plus за 96 тисяч токенів і більше GPT-OSS-120B набирає з AKV 37%. Standard набирає 24%, а Text Engineering — 32%, згідно зі сторінкою проєкту.

Вартість — це еквівалентні оцінки API, розраховані за опублікованими тарифами. Переміщені токени тарифікуються за ставкою влучання в кеш — свідомо консервативний підхід.

Старий результат інструмента A</button><button class="btn" id="mtp-akv-reset">Скинути</button></div> <div class="cmp" style="margin-top:12px"> <div class="box"><h4>Інженерія контексту (узагальнення тексту)</h4> <div class="lane" id="mtp-akv-ce"></div> <div class="meter"><i id="mtp-akv-cem" style="width:0%"></i></div> <div class="mtxt" id="mtp-akv-cet">Робота повторного попереднього заповнення: 0 блоків</div> </div> <div class="box"><h4>Інженерія кешу (видалення AKV)</h4> <div class="lane" id="mtp-akv-ae"></div> <div class="meter"><i id="mtp-akv-aem" style="width:0%"></i></div> <div class="mtxt" id="mtp-akv-aet">Робота повторного попереднього заповнення: 0 блоків</div> </div> </div> <p class="note" id="mtp-akv-n1">Обидва агенти зберігають запит користувача, ходи асистента та результати інструментів. Натисніть кнопку, щоб видалити старий результат інструмента <b>A</b>.</p> <div class="lg"><span><i style="background:#5a3a6a"></i>Користувач</span><span><i style="background:#7d2f93"></i>Асистент</span><span><i style="background:#a64bbd"></i>Результат інструмента</span><span><i style="background:#ffb347"></i>Перераховано</span><span><i style="background:#76B900"></i>Новий хід</span></div> </div> <!-- P2 --> <div class="panel" id="mtp-akv-p2"> <div class="row"> <button class="btn" data-op="append">1. Додати D</button> <button class="btn" data-op="drop">2. Видалити B</button> <button class="btn" data-op="repos">3. Repos</button> <button class="btn" data-op="reset2">Скинути</button> </div> <div class="lbl">Активний KV-кеш (число = індекс позиційного кодування)</div> <div class="lane" id="mtp-akv-ops"></div> <p class="note" id="mtp-akv-n2">Початковий стан: токени A, B, C розташовані на позиціях 0, 1, 2. Виконайте 3 операції по черзі.</p> <pre id="mtp-akv-req">{"messages": [...], "drop_message": {}, "reposition": []}</pre> <!-- P3 --> <div class="panel" id="mtp-akv-p3"> <div class="lbl" style="margin-top:0">Модель</div> <div class="row" id="mtp-akv-models"></div> <div class="lbl">Бенчмарк</div> <div class="row" id="mtp-akv-bench"></div> <div class="grid2" style="margin-top:14px"> <div><div class="lbl" style="margin-top:0">Частка проходження (%) · більше — краще</div><div class="bars" id="mtp-akv-sc"></div></div> <div><div class="lbl" style="margin-top:0">Вартість (центи США за завдання) · менше — краще</div><div class="bars" id="mtp-akv-co"></div></div> </div> <p class="note" id="mtp-akv-n3"></p> </div> <!-- P4 --> <div class="panel" id="mtp-akv-p4"> <div class="lbl" style="margin-top:0">Паралельність: <b id="mtp-akv-cv" style="color:#f3eaf6">14</b> · GPT-OSS-120B · 80 завдань SWE-bench Verified із довгим контекстом · 8 графічних процесорів A800</div> <input type="range" id="mtp-akv-c" min="0" max="4" step="1" value="3"> <div class="grid2" style="margin-top:12px"> <div><div class="lbl" style="margin-top:0">Затримка запиту P95 (с) · менше — краще</div><div class="bars" id="mtp-akv-lat"></div></div> <div><div class="lbl" style="margin-top:0">Пропускна здатність виводу (токенів/с) · більше — краще</div><div class="bars" id="mtp-akv-out"></div></div> </div> <div class="stats" style="margin-top:14px"> <div class="stat"><div class="big">1.18x</div><span>Пропускна здатність виводу, пік проти піку</span></div> <div class="stat"><div class="big">1.53x</div><span>Пропускна здатність вводу, пік проти піку</span></div> <div class="stat"><div class="big">1.51x</div><span>Швидша затримка P95, пік проти піку</span></div> <div class="stat"><div class="big">2.849ms</div><span>Повна увага на кожному кроці декодування (було 7.082)</span></div> </div> <p class="note" id="mtp-akv-n4"></p> </div> <!-- P5 --> <div class="panel" id="mtp-akv-p5"> <ul class="lim" id="mtp-akv-lim"> <li>Небагато підтримуваних сімейств моделей<em>Drop і Repos доступні для текстових архітектур Qwen, GPT-OSS і MiniMax-M2. Лінійні моделі уваги є напрямом майбутніх досліджень.</em></li> <li>Лише власний хостинг<em>Ви самостійно запускаєте сервер AKV. Він розширює SGLang підтримкою операцій із кешем.</em></li> <li>Дані авторів, одна апаратна конфігурація<em>Усі результати отримано авторами на 8 графічних процесорах A800-80GB у BF16.</em></li> <li>Різні періоди вимірювання<em>Запуски AKV із високою паралельністю вимірювалися протягом перших 30 виконаних завдань. Для Standard використовувався період в 1 годину.</em></li> <li>Покращення є не на кожному бенчмарку<em>MiniMax-M2.7 на BrowseComp-Plus набирає з AKV 58,9 бала — менше, ніж 62,3 у Text Engineering.</em></li> <li>Видалення кешу міркувань погіршує результат<em>На SWE-bench Verified видалення кешу міркувань знизило показник до 36,5, а видалення обох типів кешу — до 34,5, порівняно з 41,0 для видалення інструментів.</em></li> </ul> <p class="note">Натисніть рядок, щоб розгорнути його.</p> </div> <div class="ft"> <span>Джерела: <a href="https://arxiv.org/abs/2610.28577" target="_blank" rel="noopener">Стаття</a> · <a href="https://github.com/thu-nics/AKV" target="_blank" rel="noopener">GitHub</a> · <a href="https://fuvty.github.io/thinking_yard_project_page/projects/akv/" target="_blank" rel="noopener">Сторінка проєкту</a> · дані надано авторами</span> <span class="mtp">© Marktechpost</span> </div> <script> (function(){ var R=document.getElementById('mtp-akv'); function $(id){return document.getElementById('mtp-akv-'+id)} function post(){try{var h=R.offsetHeight+40;parent.postMessage({mtpAkvHeight:h},'*')}catch(e){}} R.querySelectorAll('.tab').forEach(function(b){b.addEventListener('click',function(){ R.querySelectorAll('.tab').forEach(function(x){x.classList.remove('on')}); R.querySelectorAll('.panel').forEach(function(x){x.classList.remove('on')}); b.classList.add('on');$(b.getAttribute('data-t').replace('p','p')).classList.add('on'); if(b.getAttribute('data-t')==='p3')drawBench(); if(b.getAttribute('data-t')==='p4')drawServe(); setTimeout(post,60);setTimeout(post,500); })}); function blk(t,cls,sub){var d=document.createElement('div');d.className='blk '+cls;d.innerHTML=t+(sub!==undefined?'<small>'+sub+'</small>':'');return d} /* P1 */ var seq=[['U','k-u'],['A','k-t'],['B','k-a'],['C','k-t'],['D','k-a']]; function initP1(){var ce=$('ce'),ae=$('ae');ce.innerHTML='';ae.innerHTML=''; seq.forEach(function(s){ce.appendChild(blk(s[0],s[1]));ae.appendChild(blk(s[0],s[1]))}); $('cem').style.width='0%';$('aem').style.width='0%';$('cet').textContent='Робота повторного попереднього заповнення: 0 блоків';$('aet').textContent='Робота повторного попереднього заповнення: 0 блоків'; $('n1').innerHTML='Обидва агенти зберігають запит користувача, ходи асистента та результати інструментів. Натисніть кнопку, щоб видалити старий результат інструмента <b>A</b>.';} initP1(); var playing=false; $('play').addEventListener('click',function(){if(playing)return;playing=true;initP1(); var ce=$('ce').children,ae=$('ae').children; setTimeout(function(){ce[1].classList.add('drop');ae[1].classList.add('drop'); $('n1').innerHTML='Крок 1: A видалено. Ліворуч: текст узагальнено, тому префікс змінюється.';},300); setTimeout(function(){for(var i=2;i<5;i++)ce[i].classList.add('re');$('cem').style.width='75%';$('cet').textContent='Робота повторного попереднього заповнення: 3 блоки (B, C, D перераховано)'; $('n1').innerHTML='Крок 2: <b>інженерія контексту</b> має повторно попередньо заповнити все після редагування. <b>AKV</b> лише приховує A від механізму уваги.';},1300); setTimeout(function(){for(var i=2;i<5;i++)ce[i].classList.remove('re'); var n1=blk('E','k-n new');var n2=blk('E','k-n new');$('ce').appendChild(n1);$('ae').appendChild(n2); $('aet').textContent='Робота повторного попереднього заповнення: 0 блоків (B, C, D використано повторно)'; $('n1').innerHTML='Крок 3: обидва агенти додають новий хід E. AKV повторно використав B, C і D без змін, і вони все ще містять інформацію, отриману з A.';playing=false;post();},3000); }); $('reset').addEventListener('click',function(){playing=false;initP1()}); /* P2 */ var st;function initP2(){st={toks:[['A',0],['B',1],['C',2]],dropped:{},next:3,stage:0,drop:{},rep:[]};renderP2(); $('n2').innerHTML='Початковий стан: токени A, B, C розташовані на позиціях 0, 1, 2. Виконайте 3 операції по черзі.';$('req').textContent='{"messages": [m0:A, m1:B, m2:C], "drop_message": {}, "reposition": []}';} function renderP2(mark){var L=$('ops');L.innerHTML='';st.toks.forEach(function(t){var c=t[0]==='D'?'k-n':(t[0]==='B'?'k-a':'k-t'); var b=blk(t[0],c,'позиція '+t[1]);if(st.dropped[t[0]])b.classList.add('drop');if(mark&&mark.indexOf(t[0])>-1)b.classList.add(mark==='D'?'new':'mv');L.appendChild(b)});post();} initP2(); R.querySelectorAll('[data-op]').forEach(function(b){b.addEventListener('click',function(){var op=b.getAttribute('data-op'); R.querySelectorAll('[data-op]').forEach(function(x){x.classList.remove('on')});b.classList.add('on'); if(op==='reset2'){initP2();b.classList.remove('on');return} if(op==='append'){if(st.toks.some(function(t){return t[0]==='D'})){$('n2').innerHTML='D уже додано. Спробуйте <b>видалити B</b>.';return} st.toks.push(['D',st.next]);st.next++;renderP2('D'); $('n2').innerHTML='<b>Append</b>: D обчислюється на основі активного кешу й отримує наступний індекс позиції.'; $('req').textContent='{"messages": [m0:A, m1:B, m2:C, m3:D], "drop_message": {}, "reposition": []}';} if(op==='drop'){if(!st.toks.some(function(t){return t[0]==='D'})){$('n2').innerHTML='Спочатку додайте D, а потім видаліть B.';b.classList.remove('on');return}st.dropped.B=true;renderP2(); $('n2').innerHTML='<b>Drop</b>: B залишає майбутню увагу. Позиції не змінюються, а текстова історія зберігає B.'; $('req').textContent='{"messages": [m0..m3], "drop_message": {"3": [1]}, "reposition": []}';} if(op==='repos'){if(!st.dropped.B){$('n2').innerHTML='Спочатку видаліть B, щоб зʼявився проміжок для ущільнення.';return} var p=0;st.toks.forEach(function(t){if(!st.dropped[t[0]]){t[1]=p;p++}});st.next=p; st.toks=st.toks.filter(function(t){return !st.dropped[t[0]]});st.dropped={};renderP2(['A','C','D']); $('n2').innerHTML='<b>Repos</b>: збережені ключі повторно обертаються (RoPE) на позиції від 0 до '+(p-1)+'. Значення не змінюються, тому нічого не перераховується.'; $('req').textContent='{"messages": [m0..m3], "drop_message": {"3": [1]}, "reposition": [3]}';} })}); /* P3 */ var M={'MiniMax-M2.7':{s:[[58.9,35.0,75.2,40.5,52.4],[62.3,36.9,72.0,40.0,52.8],[58.9,40.8,74.4,40.5,53.7]],c:[[5.2,2.4,7.0,5.5,5.0],[5.3,2.7,9.4,5.2,5.7],[4.8,2.6,5.5,4.7,4.4]]}, 'GPT-OSS-120B':{s:[[57.5,68.0,40.0,38.5,51.0],[52.7,65.1,36.8,38.5,48.3],[61.9,69.9,43.2,37.5,53.1]],c:[[13.1,5.4,20.0,6.2,11.2],[12.6,6.8,15.8,5.4,10.2],[11.4,4.1,9.7,3.8,7.3]]}, 'MiroThinker-1.7-Mini':{s:[[60.0,68.0,7.8,40.5,44.1],[45.7,66.0,4.2,32.5,37.1],[63.5,68.9,7.4,43.5,45.8]],c:[[25.2,9.2,33.6,13.5,20.4],[17.6,11.0,28.4,15.3,18.1],[15.3,9.5,26.3,8.1,14.8]]}}; var B=['BrowseComp-Plus','GAIA-Text','SWE-bench Verified','xbench-DS','Середнє'];var mSel='GPT-OSS-120B',bSel=4; var NM=['Standard','Text Eng.','AKV'],CL=['c-s','c-t','c-a']; Object.keys(M).forEach(function(k){var b=document.createElement('button');b.className='btn'+(k===mSel?' on':'');b.textContent=k;b.onclick=function(){mSel=k;$('models').querySelectorAll('.btn').forEach(function(x){x.classList.toggle('on',x===b)});drawBench()};$('models').appendChild(b)}); B.forEach(function(k,i){var b=document.createElement('button');b.className='btn'+(i===bSel?' on':'');b.textContent=k;b.onclick=function(){bSel=i;$('bench').querySelectorAll('.btn').forEach(function(x){x.classList.toggle('on',x===b)});drawBench()};$('bench').appendChild(b)}); function bars(el,vals,max,fmt){el.innerHTML='';vals.forEach(function(v,i){var r=document.createElement('div');r.className='bar'; r.innerHTML='<div class="nm">'+NM[i]+'</div><div class="tr"><div class="fl '+CL[i]+'"></div></div><div class="v">'+fmt(v)+'</div>';el.appendChild(r); (function(f,w){setTimeout(function(){f.style.width=w+'%'},40)})(r.querySelector('.fl'),Math.max(2,v/max*100));});} function drawBench(){var d=M[mSel];var s=d.s.map(function(r){return r[bSel]}),c=d.c.map(function(r){return r[bSel]}); bars($('sc'),s,100,function(v){return v.toFixed(1)});bars($('co'),c,Math.max.apply(null,c)*1.1,function(v){return v.toFixed(1)+'¢'}); var ds=(s[2]-s[0]).toFixed(1),dc=((c[2]/c[0]-1)*100).toFixed(1); $('n3').innerHTML='<b>'+mSel+' · '+B[bSel]+'</b>: AKV порівняно зі Standard дає '+(ds>=0?'+':'')+ds+' бала і '+(dc>0?'+':'')+dc+'% вартості. Джерело: таблиця 1, дані авторів.';post();} /* P4 */ var C=[8,10,12,14,16],LAT=[[43.57,45.03,43.16,108.86,229.90],[43.57,50.27,52.82,60.67,69.96],[25.93,27.11,27.18,28.49,30.63]],OUT=[[217,254,313,146,138],[228,246,264,267,267],[245,295,339,369,369]]; function drawServe(){var i=+$('c').value;$('cv').textContent=C[i]; bars($('lat'),LAT.map(function(r){return r[i]}),235,function(v){return v.toFixed(2)+'с'}); bars($('out'),OUT.map(function(r){return r[i]}),380,function(v){return v}); var x=(LAT[0][i]/LAT[2][i]).toFixed(2); $('n4').innerHTML='За паралельності '+C[i]+' затримка P95 AKV <b>у '+x+' раза швидша</b>, ніж у Standard. '+(i>=3?'Понад 12, навантаження KV змушує Standard повторно виконувати попереднє заповнення, тому його затримка різко зростає.':'Порівняння пік проти піку зіставляє AKV на 14 із Standard на 12.');post();} $('c').addEventListener('input',drawServe); /* P5 */ R.querySelectorAll('#mtp-akv-lim li').forEach(function(li){li.addEventListener('click',function(){li.classList.toggle('open');post()})}); window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,300); })(); </script> </div> </body></html>">

Наскільки швидкий AKV у бенчмарках обслуговування?

Тести обслуговування проводилися на GPT-OSS-120B із 80 завданнями SWE-bench Verified із довгим контекстом. За пікових налаштувань кожного методу AKV забезпечує пропускну здатність виводу 1,18x і пропускну здатність вводу 1,53x. Затримка запитів P95 у 1,51 раза менша.

За паралельності 16 затримка P95 Standard досягає 229,90 секунди проти 30,63 секунди для AKV. Навантаження KV змушує Standard повторно виконувати попереднє заповнення. Час повної уваги на кожному кроці декодування зменшується з 7,082 до 2,849 мс.

На 100 завданнях SWE-bench Verified у межах бюджету графічних процесорів AKV досяг приблизно 47% проходження. Standard досяг 40,7%, а Text Engineering — 32,3%.

Чи можуть агенти самостійно налаштовувати політику кешу?

MiniMax-M2.7 удосконалив політики на 20 завданнях BrowseComp-Plus, а потім виконав 100 відкладених завдань. Політика на шостій ітерації знизила вартість на 17,8% порівняно зі Standard за незмінної базової точності. В анотації повідомляється про економію 7,1% понад політику, розроблену експертами.

Надання контролю над кешем у вигляді інструмента також підвищило точність. GPT-OSS-120B зріс із 52,1 до 61,0 на підмножині зі 100 завдань. Вартість MiniMax-M2.7, однак, зросла з 5,4 до 5,9 цента.

AKV та інші підходи до KV-кешу

ПоказникиAKVУзагальнення за порогомRadixAttention SGLangStreamingLLMSnapKV
Працює зKV-кешем, керується агентомТекстовою історієюKV-кешем, повторне використання префіксаKV-кешем, фіксованим вікномKV-кешем запиту
Що видаляєтьсяВибирається політикою або викликом інструмента моделіІсторія, старша за поріг токенівНічого, спільні префікси використовуються повторноСередні токени; зберігаються sink-токени та останні токениПозиції запиту з низькою увагою
Повторне попереднє заповнення після скороченняНіТак, збережений суфіксНе застосовуєтьсяОновлення кешу не потрібнеНе застосовується
Цільове навантаженняБагатораундові агенти з викликом інструментівОболонки агентівЗагальне та агентне обслуговуванняПотоковий діалогДовгі запити
Заявлений ключовий результат-27,7% вартості, +1,7 балаБазовий метод у статті AKVДо 6,4x пропускної здатностіДо 22,2x порівняно з повторним обчисленням ковзного вікнаГенерація у 3,6 раза швидша на 16K
МоделіQwen, GPT-OSS, MiniMax-M2Будь-якіШирокий спектрLlama-2, MPT, Falcon, PythiaLlama, Mistral, Mixtral
Потрібне донавчанняНіНіНіНіНі
ЛіцензіяApache-2.0Залежить від оболонкиApache-2.0MITApache-2.0

Основні показники взято з власних статей кожного проєкту; використано різні конфігурації. Вони не є безпосередньо порівнюваними.

Основні висновки

  • AKV дає агентам змогу видаляти та переміщувати KV-кеш замість переписування історії.
  • Середня вартість знижується на 27,7%, а показник зростає на 1,7 бала в 3 моделях.
  • Repos підвищує результат GPT-OSS-120B на BrowseComp-Plus із 55% до 62%.
  • За паралельності 16 затримка P95 зменшується з 229,90 до 30,63 секунди.
  • Наразі підтримуються лише текстові моделі Qwen, GPT-OSS і MiniMax-M2.

Ознайомтеся зі статтею, репозиторієм GitHub і сторінкою проєкту. Також підписуйтеся на нас у Twitter і не забудьте приєднатися до нашого сабреддіту про машинне навчання зі 150 тисячами+ учасників та підписатися на нашу розсилку. Стривайте! Ви є в Telegram? Тепер ви також можете приєднатися до нас у Telegram.

Потрібно співпрацювати з нами для просування вашого репозиторію GitHub, сторінки Hugging Face, випуску продукту, вебінару тощо? Зв’яжіться з нами

Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.

Вперше опубліковано виданням MarkTechPost

Читати оригінал на MarkTechPost ↗

Текст і зображення належать MarkTechPost і наводяться тут із зазначенням авторства та посиланням на оригінальну публікацію.

← До новин

Ще новини

Усі останні новини