Галоўная / Артыкулы

Адладжвайце канвеер, а не LLM: прадакшн-мадэль мыслення для збояў RAG

Калі RAG-бот адказвае няправільна, рэдка вінавата LLM. Прасочвайце збоі праз загрузку, пошук, генерацыю, ацэнку і цыкл, каб знайсці патрэбны ўзровень.

Выдавец: REACTAPP.TOP10 хв чытання2306 слоў

Крыніцы: RAG Is Not Just Vector Search

Уявіце бота падкісткі на малаймператырскай фірме з SaaS, які аднаго дня адпавядае на запыткі двух кліентаў розна, калі якія-то запытаюцца пра тэрмін вярнення грошаў.

Ачынаецца інцыдэнт, і першая думка інжынера, які працуе, — што LLM стварае халюцынаціі і трэба іншы модэль. Гэта ўсноўная дыягноза. У яе RAG спрыяваецца як чорная скрынька, мяніцца модэль, і спадзяюцца, што сімптамы знікнуць.

Адпытны інжынер пачынае з іншага і запытаецца, у якім этапе працэсу выйшла проблема. Сказаць, што модэль стварае халюцынаціі ў назвах, — гэта толькі сімптам, які нічога не адказвае.

Чыры дні пазней з’являецца справжнія проблема. Палітыка вярнення грошаў была перазначыта, але ніхто не выдаліў застарэлы PDF з корпусу дадзеных, таму обе версіі продовжвалі з’являцца з аднаковымі рэйтынгамі рэлевантнасці, і мадэль вярна падсумавляла суперсучасны кантэкст. Яна зовсама не галюцынавала. (Гэта сукупны сцэнарый для ілюстрацыі, але яго варыянты ўжо ў звычайзе.)

Ёсць расстоянне межа версіяй RAG з учэбніка і спосабам, якім працюе RAG у практыцы. У навучальных матэрыялах яго зазвычай складваюць у адну лінію:

Embed → Search → Generate

Гэта дастычна для дэмана, але недастычна для практычнага выкарыстоўвання. Рэальная сістэма мае калькольныя межы для выканання задач. Важныя інжынерныя пытанні — не толькі чы глобальны языковы модуль можа напісаць хораша адпаведзь, але і чы кожны слой, які формуе гэтую адпаведзь, працуе належна.

Прыём дадзеных: якосць адначасова з’являецца да пачатку пошуку

Большасць задач з дыягностыкі RAG пачынаецца з няправільнага крока. Людзі налаштовуюць запіты, зміняюць мадэлі інкапсулявання і корэгуюць параметры top-k, хоча асалідныя проблэмы з’яўляюцца ўжо за некалькі тыдзёні ў момент прыёму дадзеных.

Аналіз па структуры

Табліцы, блакі коду, заголовкі і спісы перадаюць значэнні праз свою структуру. Калі табліцу з цэнамі ператворыць у звычны тэкст, зв’язак между рэядкамі і ўсімі ўсімі заголовкамі столбцоў можа знікнуць. Працэс прыёму дадзеных павінен захаваць гэтую структуру і выбраць такую форму прэдставлення, якая падходзіць для пошуку, а не спрыяць тому, каб кожны дакумент спрыяваўся як адна незрознечаная частка тэксту.

Правыя падходы залежыць ад кантэнту. Для таблыцы можа знадобіцца структуравана выкарыстоўка дадзеных, серыялізацыя тэксту, метаданы або сумешаны спосаб выкарыстоўкі лексычных і сэмантычных методаў пошуку.

Разбіўка па значэнні

Просты метод разбівае тэкст на часткі кожныя 512 токэнаў. Аднак колькісна оцэнка токэнаў і ўсёе значэння не збігаюцца, таму адна частка можа пачынацца з вступнай інфармацыі і заканчывацца на паўпаце пацёлку, якога яна прагледзела.

Сэмантычная разбіўка метыяце роздзеліць тэкст на часткі па змянам тэмы, а не па колькасці токэнаў. Гэта не ўніверсальны спосаб паслаблення проблем, і ён коштае больш пад час прыемкі дадзеных. У довгіх матэрыялах, такіх як правілы, контракты і тэхнічная дакументацыя, зберагчы ідэі цэлымі, часта павышаецца якасць рэзультатаў пошуку.

Даўце кожнай частцы частку кантэксту пры ўключэнні

Фрагмент, выкараны з зь 40-й сторонікі 60-стороніковага дакумента, можа быць абсалютна правільным тэкстам, пры тым за межамі свайго месца розташавання застаецца неясным. Возьмімо рэчэнне, якое кажа, што паказаныя ліміты дапраўны толькі для кліянтаў Enterprise. Без суседніх частак нічога не паведамляе таго, хто выкараны фрагмент, пра тое, да каго саме адносіцца „гэты ліміт“.

Кантэкстуальнае выкараные рашае гэтыя проблемы, дадаючы перад фрагментам кантэкст на рэвэле дакумента: заглавле, шлях да раздзела, продукт, версію або короткую створаную адмітнэсць пра тое, дзе знаходзіцца фрагмент. Мета — каб кожны фрагмент захаваў той кантэкст, які інакш была бы выкаранае процэдура.

Даўаць метаданы

Спрыяйце метаданам як функцыональным дадзеным. У наступных кроках патрэбны імя крыніцы, дата, тып дакумента, корыстнік, правыя на доступ і версія для фільтраўвання, кантролю доступу, пераканання ў свежасці і адлагоджэння проблем.

Гэта падае на адну з найважнейшых пытанняў пра процэс перабіркі дакументаў: што будзе, калі завтра змяніцца выхідны дакумент? Якшо практыка можа толькі перындэксаваць усё, нават незначныя змены ў контэнце стаюць трыбутам для аператыўнай часткі. Ідэяльна перабірка дакументаў должна быць інкрэментальной і ідэмпатэнтной, так што апошнія змены будуць выкрываны, обрабоўваны і распрасцёрваны без неабходнасці перзбудавання всіх дакументаў.

У пачатковай прыгодзе старая політыка вярнення грошаў ніколі не была памылкай ШМІ. Усё залежала ад таго, як кантролюваліся процэс перабіркі дакументаў і сам корпус.

Працэс выкарыстоўвання дакументаў — гэта практыка, а не проста пошук

Гэта слова выказваюць думку пра адзін крок. У практыцы выкарыстоўвання дакументаў — гэта ланцюг выбораў, і парада гэтых крокаў мае наследкі.

1. Перапісваць

Люды не підмахуюць запіты на пошук сама сабой. Яны запытаюцься, напрыклад, чыгуць або ня чыгуць вярненне грошаў. Штучны інтэлект можа ператворыць такі запыт у ўжытковыяшы для пошуку, можа ўключыць історыю размовы або разбіць складны запыт на меншыя. Аднак перапісванне не ўжо безкоштовна: паслабленае перапісванне можа прыховаць важлівыя дэталі або дадаць неправільныя прыпускі. Спрыяйце да гэтага ставіцца як да ўсьмох іншых элементаў, якія трэба ацэніць, а не як да чагось чырвонага.

2. Межы пры пошуку

Гэта адна з найважлівейшых дэталей практычнага выкарыстоўвання. Калі сістэма ўжоўваецца калькамі або ўрахоўвае правы на доступ, прастор для пошуку павінен салідаравацца з гэтымі межамі. Інформацыя пра калькі, правы на доступ, відымасць, дату і джэрэлу павінна прымацца пад час аперацыі пошуку там, дзе цэльная сістэма гэта дазволяе.

Фільтрацыя пасля выбору топ-к у всім кантэксце стварае два проблемы. Перша — корыстныя дакументы можаць ужо быць выведзены з топ-к дакументамі, якія корыстніку не разрэшаны бачыць. Другая — логіка автарызацыі стае небяспечна аддзеяная ад процэсу пошуку. Проста кажучы, не трэба шукаць усё, а потым спытацца, што можа бачыць корыстнік. Спачатку неабходна сузіць дыямэт пошуку.

3. Пошук двума способамі

Пошук за дапамою ўплотнённых вектароў добра справляецца з сэмантычным сяброўствам. Чалавек, які спытаецца, як анулюваць, можа быць паўзначаны з тэкстам, у яком сказана, што кліянты могу завершыць свой пакет калі толькі захочуць, незважаючы на абсэнцыю спакойных слоў.

Аднак эмбедынгі ўсё ж слабейшыя з точнымі ідэнтыфікаторамі. Падумайце пра такія строкі:

ERR_CONNECTION_RESET
SKU-48392
API-v3-beta

Для такіх запітоў буквальны токен ёсць сігналам, і самэ гэта ўтварае падставу для лексычнага пошуку, такога як BM25. У практычным пошуку часта спалююць ўжоць плотны пошук за значэнням з лексычным пошукам за точнымі рэчамі.

4. Аднаеўчанне

Цяпер існуе два спіскі з рангаванням. У плотнага пошуку ёсць сваё рангаванне, у BM25 — сваё, і ўсунутыя балы гэтых методаў не завжды можна пораўняваць. Метод аднаеўчання рангоў (RRF) праставляе сабою просты спосаб прыўязкі гэтых спісакоў за дапамогою пазіцыі рангу:

RRF_score(d) = Σ 1 / (k + rank_i(d))

Кожны ліст спадчыяе свой вклад залежна ад таго, дзе знаходзіцца дакумент у ём, што памагае ухіліцца ад неабяжлівасці калібрування распадзелаў балав у двух незв’язаных сістэмах.

5. Перэранкаванне

Фюзыя дае набор кандыдатаў, але не павінна быць фінальным кантэкстам. Крос-кодэр для перэранкавання чытае запіт і кожнага кандыдата разам і стварае бал адносу для таго конкрэтнага пару. Гэта прынцыпова адрозніцца ад незалежнага укладання запіта і дакумента і порэвання вектараў.

Косць — гэта вычысленні, таму вы не будзеце выкананы крос-кодэр на всім корпусе. Працэс аднаходжэння можа вернуць 20 або 50 лепшых кандыдатаў, а перэранкавальнік выберае найсільнейшы кантэкст з іх.

Такім чынам, ментальная модэль працы ўключае спачатку інтэнзыўнае аднаходжэння, потым лексычнае аднаходжэння, пасля чаго фюзыю і нарэшце перэранкаванне. Гэта не проста „база дадзенаў вектараў, і ўсё“.

Генераванне: добры кантэкст усё ж не гарантуе добрыя адказы

Падбір правых дакументаў ўсё ж неабходны, але недастатні. LLM все рава должна іх правільна выкарыстоўваць.

Кантроль вікна кантэкста

Большы кантэкст не прыносіць апошнія лепшых адказаў. Мадэлі не выкарыстоўваюць дзяўялы кантэкст адносна роўна. Доследжэнні паказалі, што інфармацыя ў серэдзіне дзяўялага кантэкста можа быць запамятаўана менш надзеямо, чым інфармацыя поблізу пачатку чы канца. Таму пераклад чырвоных 20 фрагментаў у запіт можа пагаршыць адказ. Мета — максымальна корыстны кантэкст, а не максымальны ў габаратах.

Межы запіта і атрыбуцыя

У запыце трэба чытка паказаць, як следуе выкарыстоўваць атрыбутаваныя фрагменты. Мадэль должна спрыятаць іх як доказы, якія можна цітаваць, а не як інструкцыі, якім трэба падкорвацца.

Цітаты таксама дапамагаюць у стварэнні довяры і адліквідаванні бягаў. Калі ў адказе зазначаецца, што кліянты Enterprise маюць 30 дзён на анулювання, патрэбны спосабы прыцягнуць гэты тверджэнне да конкрэтнага джэрага.

Утрыманне

Утрыманне паказвае значны разлік межы дэмаверсіяй і надзеяным сістэмам. Калі пошук не дае нічога, мадэль все рава прагне дапамогчы, калі толькі адмова не ўважаецца дазволеным рэзультатам. Сістэма для практычнага выкарыстоўвання павінна магчымаць адказ, што доказаў недастатнька. Часта гэта правы выбар, а не дыфект.

Без утрымання кожная неудача пад час пошуку можа ператворыцца на халюцынацыю. LLM берэ на сябе віну за неправільны адказ, хоча рэальная неудача могла выйсці ўжо на калькі слоі раней.

Адгукі прыходзяць раней за будзь-якія практычныя заходы

RAG мае недагадчыю якосць: якосць можа пахудзець, нават калі код прыемлівача застаецца недаўраным. Новая мадэль уключэння, іншы спосаб разбівання на часткі, дадзеныя, якія былі даданы або адчынены, налагоджанні настаўкаў адшукаўвання або праверкі запіту — усе гэта можа зменіць адпаведзі, нават калі код, які быў запусцаны ўчора, ёсць па байтах аднаковым. Таму RAG у працэйнай супэрвізіі трэба ацэніваць на калькі роўнэў.

Якосць адшукаўвання. Точнасць кантэксту падазначае, насколькі з адшуканага кантэксту было рэлевантным. Вярнаванне кантэксту падазначае, насколькі з усіх доступных рэлевантных дадзеных адшукаўванне насправды знайшло. Разам яны разлічаюць сітуацыю „мы ніколі яго не знайшлі“ ад „мы яго знайшлі, але ён быў заглушаны шумам“.

Якасць генеравання. Перакананне (якое таксама называецца апоўненасцю падставамі) пераканваецца, што адпаведны адказ вытыкаецца з адзысканых доказаў, а точнасць цітатаў пераканваецца, што названыя істочнікі падтрымліваюць кожнае тверджэнне. Хораша за структураю адпаведзь можа застацца без падстав.

Стан сістэмы. Улічваюцца таксама паракамерныя показнікі: паздзейненне p95, косць за запыт і частка відмов. Ооны не ўсё толькі стосуюцца інфраструктуры. Калі паздзейненне падвайнаецца таму, што агент пачынае выкананне калькольных цыклів адзыскання, гэта ўскладніць якасць самой сістэмы. Раптовы адлік відмов можа значыць падэйшчанне якосці адзыскання дакументаў. Падвышэнне косці за запыт можа значыць, што змяна, якая здавалася безнэшкодной, створыла дорогі шлях адзыскання.

Разлікування показань мае значэнне для дыягназу. Здаровыя рэзультаты разам з падэццем стабільнасці указваюць на генераванне. Падэцце тачнасці указвае на прыем, фільтрацыю, выкарыстоўванне або ранжыраванне. Калі вы сачыце толькі за загальным калітэтам адпаведзей, кожная рэгрэсія выглядае аднакова і не дае нічога для дзеяння.

З потока до цыклу зворотнага звязку

Основны поток застаецца простым:

Ingestion → Retrieval → Generation → Evaluation

Багато сістэм не патрабуюць нічога больша. Адзін добра індэксаваны база знанняя і чыстыя запытанні рэдка калі патрабуюць, каб агент выбіраў наступны крок. Аднак існуюць і сложнейшыя запытанні.

Возьмімо запытанне пра парабярэнне паказаных у другім квартале падаючых дохоў з тымі, што было апісанае ў прэзентацыі для рады, а потым адказа пра разлік. Для адказа можа знадобіцца мацерыялы другага квартала, прэзентацыя рады, адпаведныя часткі кожнага з іх, парабярэнне, а можа і запытанне да іншага джэрага дадзэнняў. Однаго запрашэння можа не хапіць, і тут становіцца карысным агентны RAG. У змену простаму кроку «запрашаць-потым стварыць» можна выконваць цыкл:

Retrieve
   ↓
Evaluate
   ↓
Enough evidence?
   ↓ no
Retrieve again
   ↓
Generate

Такая сістэма можа вывесты, што наразе ўсіх доказаў недастатнько, перапісаць запіт, зноў абшукацыя, або перадаць падзапіт SQL-базе дадзенаў, графу знанняў або жываму API. Абшукацыя стае ітэратыўной і перастае быць одноразовай.

Аднак агентны RAG не ўсега лепшы. Кожны дадатковы цыкл прыносіць затрымкі, дапамогу токенаў і большую верагатывацыю абыходу, а таксама можа спрычыніць непатрэбныя абшукацыі, калі у агента няма чыстай прычыны продаваць. Яго складнасць мае сэнс, калі запыты неясны, маюць кальцы або патрабуюць калькі джэрэл. Запыт пра політку вярнення грошаў, верагатна, трэба адпаведзець за адну параду за дапамогою добра спраектаванага статычнага пайплайна. Порэйванне дэків можа праверыць неабходнасць ітэрацый.

Актуальны вопыт — чыімае сістэма меркаваныя прычыны для паўтарной абшукацыі, а не чыіму ёй трэба агент. Цыклізацыя без чыстага правіла выходу толькі прыносіць затрымкі і косты.

Ментальная мадэль для вырабаткі

Найпасёчнейшыя памылкі падчыслення — гэта выкорыстанне LLM. Некалькасна адказа ёсць толькі апошнім сімптамам, а прычына можа знаходзіцца далека ў верхніх частках ланцуга. Старыя дакументы нагадваюць галюцынаціі, паслабленая разбівка на часткі нагадвае неудачную выкарыстоўку дадзенняў, слабкая выкарыстоўка дадзенняў нагадвае памылку генеравання, а відсутнае ацэнкаванне маскіруе ўсе іх пакуль кліянты не паскардзяцца.

Таму не запытваюце, калькі модэлю выкорыстоўваць. Запытваюце, калькі шар не працюе.

INGESTION
     ↓
RETRIEVAL
     ↓
GENERATION
     ↓
EVALUATION
     ↖
      └── feedback loop / Agentic RAG

Застарэлыя даныя означаюць неабяжлівую прабоўку выкарыстоўвання іх. Відсутны документ означае неабяжлівую прабоўку яго адшукання. Документ знайдзены, але з нізкім рангам, означае неабяжлівую прабоўку паследовання рангоў. Некарэктны кантэкст з неправім адпаведнем значэннем означае неабяжлівую прабоўку працэсу стварэння адпаведнага рэзультата. Калі не можна візначыць, якая з проблем дыяўуе, спачатку створыце лепшыя методы ацэнкі. А калі адна толькі прабоўка ніколі не будзе достатня, разважыце апыт агентнага цыклу.

Пачніце з трубопрацэсу і заставіце мадэль на апошнім месцы.

Звыклівасці ідэй

Для дальшага чытання аднорыжныя статыкі пра метод генеравання з падкрэпленнем за дапамою даных, напісаныя Льюісам і яго сааверамі (NeurIPS 2020), апісваюць базовы прынцып. Статыка Anthropic з 2024 года пра кантэкстнае выкарыстоўванне даных паказвае значныя зніжэнні колькасці непаспэшных рэзультатаў, адносна кантэкстных эмбедынгаў, кантэкстнага BM25 і метода пераранкавання, хоць гэтыя даныя ўзятыя з самых выкладчыкаў. Кормак, Кларк і Бютчэр (SIGIR 2009) адкульгавалі метод Reciprocal Rank Fusion. Статыка «Lost in the Middle», напісаная Люісам і яго сааверамі, даследжвае, як мадэлі выкарыстоўваюць длігія кантэксты; статыка RAGAs опісвае автаматызаваную ацэнку методу RAG, а статыка Self-RAG, напісаная Асаі і яго сааверамі, раскрывае самапрацоўны, агентны падход да выкарыстоўвання даных.

Супаўязанае чытанне

  • Стварэнне сістэмы Multi-Tenant RAG на Amazon S3 Vectors: працэўны практык — Дызайн індэкса для кожнага тэнанта на S3 Vectors: крэдытнаінфармацыя з обмежэнным дапускам, вычысцэнне дадзэнняў на адной з ключоў, аўдыт за дапамою CloudTrail і меры ізоляцыі, якія яшчэ існуюць у кодзе прыемліка.
  • Ад пратыпу да сістэмы RAG у працоўнай суперактуальнасці: гібрыдны пошук, агенты і ацэнка — Архітэктура для сістэмы RAG у працоўнай суперактуальнасці на .NET: разбіўка дадзэнняў на часткі, гібрыдны і графічны пошук, пераранжаванне рэзультатаў, планаванне запытоў, выхідныя даны з адзначэннем тыпу і стацыонарная ацэнка.
  • Semantic Search протык Vector Search, а таксе дзе падходзяць RAG і Azure AI Search — адгукаванне пра ключавыя словы, вектары, сэмантычны пошук і гібрыдны пошук на прыкладзе політыкі адхоўкі і інцыдэтаў, а таксе пра тое, як Azure AI Search, Semantic Kernel і RAG адносяцца адзін да другога.
  • Усё пра базы дадзеных вектараў: IVF, дрэвы, HNSW і квантызацыя дадзеных — як базы дадзеных вектараў шукаюць суседзі быстра: точны протык апрыксіматыўны пошук, кластэры IVF, лесы дрэваў, шары і параметры HNSW, а таксе компрэсіі, якія выкалікае квантызацыя дадзеных.