Большае акно кантэксту не выправіць вашага агента: бюджэт увагі і кэшаванне
Акно кантэксту паводзіць сябе як бюджэт увагі. Як працуе эфект Lost in the Middle і калі ўжываць сцісканне, слізгальныя вокны, ушчыльненне ці кэшаванне промптаў.
Прадаўцы можу абявляць пра вікна кантэксту на мільйон токенав, але мадэль усё рава будзе надзвычайна адносна мало ўжываць іх. Тэсты NVIDIA RULER пераканальваюцца, якога дазволенага дыяпазону дасягае мадэль, калі яна продовжае паставляць хорашыя рэзультаты. Для двах з сімнадцяты пераследжваных модэляў – Yi-34B і GPT-4 (1106 preview) – надзеяныя 200K токенав ператварыліся на працэспасабельныя 32K, а 128K – на 64K. Найслабейшыя модэлі перастаюць эфектыва працаваць ў значна меньшым меры, чым обявлялася. Пасля гэтага абявленыя розмеры становяцься проста пунктамі на табелі цэнаў, а не рэальнымі можлівасцямі працы.
Вы бачыце тую ж самую аднаковую проблему ў калькі мест. Агент забывае архітэктурнае рашэння з першага крока. Сістэма RAG знаходзіць правы дакумент, але ўсё равна дае некарэктныя адказы. Автаматычны падсумак сесіі пропускае самэ тую лінію налаштавання, якой вам было трэба. Звычны рэфлекс — купіць большы прастор, але для агентаў гэта не дапамагае, бо прыемнасць ніколі не была проблемай. Проблема заключаецца ў тым, як мадэль распадзяляе свою увагу між усім, што ужо ўтрымліваецца ў той прыемнасці.
Короткая версія
Канцэнтрацыйны апарат не ўсё тое ж самае, што і ўніфікаваная памяць. Гэта рэсурс з лімітам на выкарыстоўвання увагі, які выкарыстоўваецца значна раней, чым наступае ліміт токэнаў. Матэрыял, які знаходзіцца на пачатку чы ў канцы кантэксту, выкарыстоўваецца лепшая, чым матэрыял у серэдзіне, так што мадэль, якой даўця дакумент, захаваны ў серэдзіне запіту, можа даваць гіркія рэзультаты, чым тая, якой нічога не даўця. Конкрэтны прыклад: агент, які прымея дзяўны лог інструментаў, купку атрыбутаў, якія былі выкарыстоўваны, і ўсі інструкцыі ў аднам запыце, будзе старацца выкарыстоўваць тое, што знаходзіцца на краях, і спакойна затуманіць рэшту.
Тры інструментаў керуюць гэтым лімітам, і кожны з іх втрачае ў чым-небудзь іншым:
- Кампрэсія запыту выкарыстоўваецца для адзелення токэнаў з малым колікствам інфармацыі. Яна даўае хорашыя рэзультаты на стандартных тэстах, але незалежныя перапрыцэлі паказваюць проблемы з структураваным кантэнтам, такім як нумарацыя, точныя стрыкты і фрагменты коду.
У гэтым і ёсць падступ: як стысненне, так і компактаванне разбіваюць кэш, а заўсёды кэшаванне дапамагае больш, чым стысненне. Іспользованне няправільнага інструмента для неправільной проблемы спрычынае тыхія бракі ў працы, якія вельмі складна дыягнаставаць пасля таго.
Кантэкст — гэта бюджэт, а не прыемлівасць
Спачатку два тэрміны. Токен — гэта едыніца тэксту, з якой працюе мадэль; ёй адпавядае прыблізна чатыры сімволы або тры чвярты слова на англійскай мове. Вікна кантэксту — гэта максымальная колькасць токенав, якія обрабоўваюцца за адну вызов, і гэта больш супаўзяе з максымальным розмерам матрыцы увагі за адну праходку, чым з загальным розмерам памяці.
Андрэй Карпаты аб’яднаў інжыніярство кантэксту як мастацтва заполнення „вікна“ самэй тым, што неабходна для наступнага крока, пры чым мадэль выступае як працоўны прыстрой, а „вікно“ — як яго рабочая памяць. Гэта аналагія ўжытковая, але охопляе толькі палову прыбліжна. Другаяя палова — гэта бюджэт увагі. Кераванне Anthropic ў аспекце інжыніярства кантэксту для агентаў рассматрывае кантэкст як скончаны рэсурс з зменшаючыміся рэзультатамі, пры чым кожны даданы токен выкарыстоўвае частаку лімітаванага запасу увагі. Гэта арыметыка, а не паэзія: колькісць пар увагі расце квадратычна, таму тысяча токенав значыць або мільйон зв’язкаў, а сто тысяч — дзесяць мільярдаў.
Таму дадзенне кантэкста, проста на ўважлівасць, ніколі не яўляецца безкоштовным. Чатыры дапаможнія прыклады, цэлая історыя размовы або дваццаць ваказаў прыладоў замест пяці — усе гэта бераецца з таго ж істочніка, што і факты, якія маюць значэнне. Першы вопыт у анаізе архітэктуры не павінен быць пра тое, сколькі токэнаў ёсць у наявносты. Ён павінен быць пра тое, якая частка бюджэту насправды спрыяе досягненню рэзультата.
U-образная крывая
Лю і яго саавтары (Стэнфорд і Берклі, 2023) вымерылі точнасць у адпаведзенні на вопыты з кальколькі дакументаў і аднайшлі U-образную форму. Адпаведзенні былі найболей надзеяныя, калі адпаведны фрагмент стаяў першым або апошнім, а найменш надзеяныя — калі ён стаяў усерэдыне. Апошніяй назве «Загублены ўсерэдыне» быстра засталася, значна пераканальвалаючы будзь-якіе іншыя узгоджаныя адказы.
Тое, што справа ўскладнюе сітуацыю, — цэлкам неспакойны пасляявочны эфект. Калі запітанне мела дваццаць чыраць дакументаў, праводабны адказ, размешаны ў серэдзіне кантэксту, меў ніжэйшую оценку, чым базовы варыант з закрытым кнігам, дзе мадэль вовсе не бачыла жадных дакументаў. Перадача правільных доказоў у неправыя месцы можа пагоршыць стан сістэмы, чым якраз нядача дакументаў.
Чаму так выходзіць: пытанне застаецца нерашаным
Чырвоныя гады прыйшлі, а ўсё яшчэ няма едзінага мнення ўжо па прычыне. Існуе калькі адпаведных пояснэнняў:
- галузевы эфект дадзеных для трэніравання, адтолькі што авторы часта ставяюць ключовыя моменты ў пачатку і канцы тэксту,
- спосаб, якім працююць позыцыйны кодаванне і каузальнае маскаванне,
- простая геаметрыя дэкадэра, якая існуе ўжо з моменту ініцыялізацыі, перш чым пачынаецца трэніраванне,
- адаптацыя, якая выклікаецца праз прадзейнаванне, калі мадэль балансуе супернацыянтныя запатраненняі ў памяці.
Кожная прычына выклікае або інша мера: іншыя даны для навчання, іная маска адказу, калібраванне адказу, або проста пераранжаваная інструкцыя. Аднаўленне ўхідных дадзенняў у адну чыстую адпаведзь могла б ввесты ў глухі кут.
Што рашанае, а што — ні
Запытанне пра тое, чы рашанае вопыт, пасляходзіць з няправільнага падходу. Простая выявленне фактов у велікай меры рашанае: сучасныя перэдовыя мадэлі можу знайсці буквальна заданы элемент у вельмі дзьяўнай колькасці дадзенняў, незалежна ад таго, дзе ён знаходзіцца. Багатоэтапныя маневры рашаныя не ўсё. Сінтэзаванне кальколькі дакументаў або рэдагаванне коду ў вялікай базе дадзенняў — гэта іншая задача, чым выявленне адного факту, і публікуемыя рэзультаты ацэнкі кодавання з дазойлівым кантэкстам паказваюць, што ступень успеху роزнае з аднымі толькі падае, калі дзьяўнае дадзеныя становіцца дыявольска дужае для той самай мадэлі і тыпу задачы.
Існуюць таксама доказы проты таго, што гэтая законамасць ёсць універсальной. У доследжэнні Chroma’s Context Rot было перапрацавана адзіннаццаць модэлей і было выявлена, што хаотычны, логічна некохэнты рад дадзеных параджыў працавае лепшая за кохэнты рад у всіх іх, а эксперыменты не паказалі ніякой стабільной перадачы за рахунак паводзяў. Разумны вывад — існуе больш адзінаго механізму падупадку якасці, і Lost in the Middle — толькі адны з іх.
Адна фраза, якая падняла балы з 27% да 98%
Компанія Anthropic апавядзіла прыклад, які дастлівае работу мадэлі Claude 2.1 у тэсце «выбараць голку сярод каштоў». Точнасць была 27 процэнтав, пакуль на пачатку адпаведздзя мадэлі не была дадзена ўсьмоўка, якая прасіла яе выбраць найболей рэлевантныя рэчы з кантэксту. Пасля чаго паказнік вырасў да 98 процэнтав. Жадных новых можнасцей не было дадзена; проста ўсьмоўка змяніла свое месца. Цэ была адна толькі евалюяцыя, адна версія мадэлі і аднаго роду заданне, таму трэба спрыятаць гэта як ілюстрацыю, а не як правілу для всіх запітоў.
Механізм: «ямы ўвагі»
Першыя токены ў последовасці прабіраюць надмерную частку ўвагі, незалежна ад таго, чыі ў яных ёсць сэнтакст, чы не. Прычына ў простай матэматыцы. Функцыя Softmax змушае вагі ўвагі дадавацца да аднаго, таму модэль вынужана направіць усю свою ўвагу куды-небудзь, нават калі нічто ў наявнасці не заслуговае на яе. Утрымацца ад этага немагчыма, і першыя пазіцыі становяцца сваерадку для ўвагі. Іх называюць «ямамі ўвагі».
Команда з MIT (Xiao і ягоў саавтары) ператворыла гэтыя особлівасці на інструмент. Яны выявілі, што проста „скользячая вікна“ занікае самэль гэтага моменту, калі першы токен выкалываецца з кэшу. Фіксаванне лішыць першых калькоў токенав як стацыярных „прыемнікаў“ дапамагае падтрымваць стабільнасць генеравання нават у потоках з мільйонамі токенав, працюючы на 22,2 раза быстрэй, чым перакалькуванне кожнай вікна. Популярныя апূরкі часта ігноруюць адзін ліміт: гэта не дадае жодных токенав рэальнай памяці. Выходны тэкст застаецца плавным, калі старыя токены знікаюць, а ўсе факты, якія выйшлі за межы, трапляюцца безвозвратна втрачанымі. Стабільнасць і памяць — гэта разныя рычы.
Таму практычны савет — размістыць ключовую інструкцыю там, дзе увага ўсё сільнейшая, зазвычай у канцы, і пераканацца на сябе на сваій апаратнай базе. Гэта не ёсць універсальным раўеннем: дзеяння дэякіх доследжэнняў паказваюць, што „прыемнікі“, якія з’яўляюцца серэд секвенцы, крашчэ прыглушаць, чым захішчаць, а ўсе залежыць ад модэлю.
Складзенне, вікна і стысненне
Уявіце чародзкій валізу, якая не можа памяцаць усё. Можна адзінакоўваць менш важлівыя рэчы, пакаваць толькі найновейшыя або напісаць прыметку пра тое, што засталося в доме. Кожны выбор прыносіць разныя наследкі.
Шыранае складзенне
Сяродзяджыя LLMLingua ацэнююць ступень неспадзявання кожнага токена за дапамогою маленькага дапаможнага модэлю і адключаюць тыя, якія несу мало інфармацыі. Рэзультаты вражаючыя: складзенне прыбліжна у 20 разоў для LLMLingua, а для LongLLMLingua, які врачуе запыт, — падвышэнне на 21,4 процента ў тэсце NaturalQuestions за рахунак вікорыстоўвання толькі часткі токенаў. Гэта два варыянты, а не адны рэзультат.
Незалежныя перадрабаткаі прыкметнаюць сітуацыю. У аднай з прамов проты рэферэнс-хранілніцы было зазначанае, што неакпрэсаваны прыказ практычна перамагае акпрэсаваны, што супрацоўвае з тым, што паказана ў студзіі. Аднае з аднойчыных даследжэнняў компрэсіі паказала, што тачнасць па лічбе фрагментаў зменшылася, адтолькі як компрэсія разрушае нумараванне і точныя строкі. Не значыць гэта, што компрэсія не работае. Яе надзеяннасць ў споры, і яна залежыць ад тыпу дадзенняў. Наратывны тэкст лепа яе пераносіць, тады калі нумераваныя часткі, ідэнтыфікаторы, код і цыфры — няўжо.
Тры спосабы керавання сэсіяй
- Слайдуючыя вікна. Простая схема «першый увайшоў — першы выйшоў»: захаваецца последнія k паведамленняў або N токенав і ўсе іншае будзе адхоўлена. Гэта не карыць нічога з пункту точкаў вычысленняў, але прыводзіць да вельмі вялікых втарасцей, таму рашэння з першага крока знікае да пятаго, і модэль можа запропанаваць ўсё, што суперасходзіцца з яным.
Пастка: сціскання знішчуе зніжку за кешування
Завдзякі швідкому кешуванню провайдэр запам’ятовуе незмінній вігляд вашого запіту і сцягуе плату за подальшы яго чытання за незначну частыну звічайноі ціні. Кеш KV, розташованій під нім, зберыгае обчысленій стан поперэдніх токенів, шчоб мадэлі не доводылося повторуваты цю працу.
Ціною зніжкі ёсць жорсткісць: прэфікс мусіць залішатыся абсолютно ідэнтычнім під час кожнага вікліку. Гэта віключае можлівісць вікорыстання змінніх часовіх позначок у верхній частыні, віпадковіх ідэнтыфікаторыв сеансу перад інструкціямі і перэрозподылення ключыв у JSON-словніку. Усе змінне мае знаходытыся у частыні з нестабільнімі данімі. Команды, які вікорыстовуюць потужні продуктывні агенты, вважаюць частоту доступу до кешу найважлівішою сістэмною метрыкою, дэ рызніця у вартосты між успішнім і невдалім доступом становіць прыблізно в дэсяць разів.
Хутчэй заўсёды зачынаецца пастка. Складзенне перапісвае запіт у кожны раз, калі ён надаецца, адтуды токены, якія выкарыстоўваюцца, залежаць ад конкрэтнага запітання, таму кожны запіт ўваходзіць у катэгорыю «недаступнае з кэша». Эконамія апошніх шыстдэсят процэнта токенаў супрацоўвае з адным дзевяноста процэнтамі падышчы, і команда праіграе гэту барацьбу частае, чым яны сабе думаюць.
У маркетынговым матэрыяле цыркулюе анекдот пра месячны счыт, які пасля застосавання складзення зменіўся з апошніх $42,000 да $2,100, пры чым не наводзіцца ні назва компаніі, ні дата, ні метод. Немагчыма з’ясавіць, чыякольве гэта паўстанавленне включалая адныя з втрачаных дадзеных з кэша, якія якраз і ёсць тым факторам, які вяршыць, чы рэзультат будзе павтарацца.
План на панедзелак
Гэты спіс не заменяе тэставання на вашых сопных дадзеных. Ён запобегае найпашыльнейшаму ошыбкам — адразу прыбегаць да складзення або большага часовага прымежніка, не пераканаўшыся ў дышэўшых, болей безпечных альтэрнатывах.
- Класіфікуйце задачу. Гэта проста выявлення фактов чы розрахунок на адмністрацыі длугага кантэксту? Гэта вяскажае, насколькі серьзёзным ёсць падыш у якосці працы.
- Пераканайцеся, дзе знаходзіцца ключовая інструкцыя. Калі яна знаходзіцца серэд іншых патронаванняў, перыякце яе на канец і змерьце эфект. Гэта змянена ў адной фразе, і гэта едыны спосаб прыняць рашэнне.
- Пераканайцеся ў стабільнасці прыфіксаў. Калі патронаванне сістэмы разлічаецца нават на адны байт между кожным вызывам, кэшаванне не дапамагае, таму спачатку трэба гэта паспрабаваць вылечыць. У атрыбутах адзінакоўства гэта згадваецца рэдка, у працоўных атрыбутах — частае, хоць гэта можа супрацаваць больш эфектыўна.
Што трэба запамятаць
Большы перыод часу не рашае проблему агента, таму што ён толькі падвялівае ўместнасць рэсурса, проблема якога ніколі не была уместнасцю.
- Перыод часу — гэта бюджэт на апрацоўку інформацыі, а не памяць; кожны дадатковы токен, які дадаецца на всякі случай, выкарыстоўваецца з таго ж рэсурсу, які служыць для важлівых дадзенняў.
Праўыя змены ў повсякдзеннай працы — гэта парадок запытанняў пад час адзірвання дызайну. Спачатку запытайцеся, што містыцца ў кантэксце і дзе знаходзіцца кожны элемент, а толькі пасля чаго — якой ён розмер. Калі зменіце парадок, вы будэтэце платыць за большы прастор, які проста дае важлівым фактам шырэйшы прастор для „зьнікнення“. Короткая правіла-памятака: спачатку пераканайцеся ў пазіцыі, потым — у стабільнасці, пасля чаго — у об’ёме, а стысненне расследжвайце ў канцы.