Карта RAG: ад першых прынцыпаў да збояў у прадакшне
Два канвееры, тры крокі і спіс названых збояў: як працуе генерацыя з пошукам, дзе яна ламаецца і якія выпраўленні вырашаюць кожную праблему.
Крыніцы: The Complete RAG Roadmap: From “What Is It?” to Production
Генераванне, аддытаванае за дапамою выкарыстоўвання інфармацыі, лёгкае для дэманстрацыі, але складнае для правільнага рэалізавання. Рабочы пратэтап можа быць створаны за сорак ліній коду і за адні вечар. Пасля чаго пачынаецца длігі працэс выявлення прычын, чаму сістэма тры разы з дзесяці дае некарэктныя адказы, чаму чат-бот упэўнена цітуе пункт кантракту, які ніколі не быў напісаны. Шырокі план развіцця пакрывае аба аспекты: ён пачынаецца без жаднага жаргону і заканчваецца тэхнікамі, якія розлічваюць дэманстрацыю на выявачыцы выхілдзе і сістэму, якой людзі даваюць доверлівасць з грошамі.
Ідэя простымі словамі
Уявіце мадэль мовы як хораша адучаная абранцу, якая ніколі не бачыла вашых файлаў. Яна практычна всякія даныя з публічнага Інтэрнэту, але не мае нічога з вашых даговораў пра арэнду, правіл кадровай політыкі, каталога продуктав або прэзентацыі за пасляпэўны квартал.
RAG ператварае экзамен з закрытымі кнігамі на экзамен з адкрытымі кнігамі. Уместо таго, каб пакласцца на тое, што мадэль запамятала вашы даны, сістэма спачатку шукае неабяжлівыя сторанкі, перэдае іх і паведамляе модэлі адпаведзяць толькі на ўсё, што ёй дадзена. У назве паказаны тры крокі:
- Працэўнае выкарыстоўванне: шукаеце ў своіх дакументах і выбіраееце тыя фрагменты, якія маюць значэнне.
- Дапамога: размешчаееце тыя фрагменты ў запітацці разам з пытаннем.
- Стварэнне: прымушваеце модэлі напісаць адпаведзь на адважанні таго, што ёй дадзена.
Гэта ўсё сэрца ідэі. Кожная пазнейшая дапрацоўка, ад перэранкераў да графаў, існуе толькі для таго, каб адні з тых трох крокаў стаў менш некалькісным.
Для чытальнікаў, якія не ўжо ў міроўцы тэхнічных навыкаў, корыста заключаецца ў можлівасці поясніць, што стварае інжынерная команда, чаму ўсё ламаецца так, як ламаецца, і якія запытанні трэба задаць пад час дэманстрацыі ад прадавца. Для інжынераў гэта механізмы, компромісы і спосабы выключэння, што значыць неабходна запытацца, чаму косайна сэмілярнасць ёсць дзівным заменнікам рэлевантнасці, чаму фрагменты з 512 токенамі паспелююць зіпсаваць табліцы і чаму набор для ацэнкі мае большое значэнне, чым выбор модэлю. Ніхто не можа прыйняць фразу «проста вжывайце базу вектараў» як завершанае адказа.
Два пайплайны, а не адны
Структурны момент пачынае прычыняць проблемы практычна всім. Сістэма RAG — гэта не адны пайплайн. Гэта два пайплайны, якія ніколі не працуюць адночасова.
Канал А здыячы індэксаванне. Ён выкананы загадзя, зазвычай як пакетная задача. Дакументы дзелююцца на часткі, кожная частка ператвараецца у спіс цыфр, якія фіксуюць ўсё, што ў яе ёсць, а гэтыя цыфры падаюць у індэкс, які можна шукаты. Гэта самы просты канал, і самэ тут вяршыцца прыблізна 80% адпаведнасці якосці канечнай адпаведзі.
Канал Б выкананы для запыткаў. Ён працуе ў рэальны час, калі корыстувач задае запыт. Запыт таксама ператвараецца у цыфры за аднаковым методам, знаходзяцься найбліжэйшыя зберажаныя часткі, якія падставляюцца ў запіт, і практычна адразу прыходзіць адпаведзь.
Калі два падчыны не пагадзяюцься ў спосабе кодавання, нічога не працюе, гэта супамінае робку дакументаў па алфавіце, а пасля пошук па колеру. Люды часта зосераджваюцца на падчыне B, тыябо на запіце, модэлі і тэмпературэ, хоць большая частка проблем крыўцяецца ў падчыне A. Індэксаванне выкананае адно раз, а запыты — ў кожны раз, і большасць багоў хаваецца ў прыеме межы між імі.
Этапы, ад базовых до прыменення
Фундаменты
Першая тэма — гэдзе на самай справе выходзяць галюцынацыі, і гэта не тое, што модэль глупая. Сярод супаўзеліглых ідэй — што такое вікна кантэксту, чаму весь база дадзеных не можа быць проста вставлены ў адно з яе вікон і што значыць канцэнтрацыя знанняў. Потым ёсць пытанне, якое люды спрыямляюць неправільна: RAG, файн-цюнінг і большае вікна кантэксту — гэта тры аднальнія інструменты для трох прынцыпова разных проблем, пры тым як іх постаўле часта рэкамендуюць для рашэння проблем іншых.
Страховая компанія, чыя формуліровка умов страхавання зміняецца кожны квартал, паказвае разлік. Для точнай налагодкі патрэбна перэпадрэбніца інфармацыі кожны квартал. RAG означае апдэйт каталогу.
Прыем і разбіўка на часткі
Прыем дакументаў — гэта сама по сабе задача: PDF-файлы, якія на самай працоўцы ўжо ў форме сканаваных зябраў, табліцы, заголовкі, падзаголовкі і 40-сторонні дадатак, які нікому не патрэбен. Потым прыходзіць разбіўка на часткі, тое есць выбор таго, як разлучыць дакумент. Гэта здаецца простым, але так не ёсць. Якшы разлучыць занадта маленькімі часткамі, то ў кожной з іх будзе толькі фраза «застаўка павінна быць вярнутая», без жадных пазначэнняяў пра умовы. Якшы разлучыць занадта вялікімі часткамі, то мадэль занурваецца ў шум. Галоўныя методы — гэта разбіўка фіксаванага размеру, з урахоўваннем рэчэй і рэкурсыўная разбіўка, а таксама метод перакрыцця, які не дазволяе рэчам быць адсечанымі.
Возьмімо 60-сторонні даговор прыёму, чыя клазулі пра штрафы залежаць ад вялічыны, заданай на 40 сторонак раней. Межы частак вялічыняюць, чы тая звязок застоіцца чы ні.
Эмбеддынгі і пошук за вектарамі
Гэты этап здаецца чымсь чародзкім, але такога няма. Тэкст ператвараецца ў спіс цыфр, упорадкованых так, каб фраза пра анульванне замовлення апынулася поблізу фразы пра вярненне прадукту, а далёка ад фразы пра замовленне ўсё большай колькасці товару. До супаўзвучных паняцюкаў належаюць выміры, косінусавая сэмабільнасць і той факт, што блізасць у вектарнай прасторы не гарантуе адпаведнай адпаведзі.
Далей йдзе кэшаванне: што на самай працэ практычна робіць вектарная база дадзеных, чаму пошук сіловым спосабам не функцыонуе на вялікіх масштабах і што пад час апрыксіматыўскага пошуку найбліжэйшага суседа жэртвуецца для прышвычкі скорасцю.
Цыкл адзысквання
Хутчэй тут саўершаецца складанне элементаў. Выбір колькісці частак, якія трэба запрашаць (top-k), ёсць часткай гэтага працэсу, і больш — не значыць лепш. Фільтрацыя метаданых дазволяе пошуку охопіць толькі дакументы 2024 года або толькі рэгіон Мумбаі. Таксама важліва ўпорадкування запіту, адтолькі як і спосаб і парадак аранжавання знайдзенага кантэксту вплываюць на адпаведны адказ.
Далей следуеюць падтрымкі і цітаты. Мадэль должна апісваць, напрыклад, раздзіл 4.2, а не проста падараваць абсалютную впэўненасць у сабе. Не менш важліва ўмеласць мадэлі заявіць, што адказ не ў дакументах, што, верагодна, ёсць найменей цэніваная функцыя будзь-якай сістэмы RAG.
Ацэнка
Практычна ўсе прахідзяць па шляху, не звертаючы увагі на этап, што адказвае на пытанне, чаму практычна ўсе выдаюць неякісныя RAG. Проблему, якая не мерыцца, нельга вылечыць. Кантроль якосці складаецца з двух пытанняў: чы былы выбраны правыя матэрыялы і чы мадэль застаўся вярным ім? Кожны з эых аспектаў сам па сабе ёст крытычны і выклікае адпаведную корэкцыю. У наборы інструментаў ёсць золаты сэт тэстовых пытанняў, взятых у рэальных корыстнікаў, ацэнка выкарыстоўвання матэрыялаў па точнасці і вярнаму адлічэнню, ацэнка генеравання па вярнасці і адносе да пытання, а таксі LLM, які выступае як суддзя і стэжы за тым, дзе выклікаюцься проблемы.
Адны сістэма пасягнула 90% па пункту выкарыстоўвання матэрыялаў і 55% па пункту вярнасці. Іе пошук быў нормальным, але адпаведныя адпаведзі ўсё равно былі некорэктнымі.
Абнаўленні, кожны з якіх связаны з падзеямі
Лепшыя способы выкарыстоўвання матэрыялаў
Гібрыдны рэшук спалюе пошук на адмысловай асоцыяцыі з класычным падпаданнем па ключоўых словах, таму што методы эмбедынга вельмі паслаба справляюцца з точнымі ідэнтыфікаторамі, такімі як номеры модэляў і ідэнтыфікаторы рахункоў-фактур. Метод перэранкінга даскладаў 50 кандыдатаў за некалькі секунд, а пасля дазваляе медленейшаму, але болей розумнаму модэлю выбраць 5 найкрашчых. Трансфармацыя запыту перапісвае нечыстае запытанне у такое, якое можна адшукаць, дзеліць складзеная запытанне на часты або выкарыстоўвае HyDE, які стварае фальшывы ідэальны адказ і адшукае яго заместо запытання.
Запыт пра парабяранне двух праектаў у Бангалоры па даце выймання і цэне — гэта адна запытанне, якое вымагае трох аддзельных пошукоў.
Лепейшая індэксацыя
Правільная налагодка сектара A аплікуе калькольная тэхнікі. Пошукі тыпу «родык-дзеці» шукаюць маленькія, тачныя фрагменты, але задаюць модэлю большыя часткі тэксту навакола іх. Семантычная разбівка фрагментавання адбываецца там, дзе зменшыцца тэматыка, а не за абякавым лікам сімвалоў. Разказы і іерархічныя індэксы спачатку шукаюць разказы дакументаў, а потым глыбэй аналізуюць іх. Graph RAG зберагае адносіны між энтытэтамі, а не толькі тэкст, таму ён можа адпавядаць на запытанні, такія як, калія прадавцы ў той жа час яўляюцца і кліентамі.
Хорашым прыкладам ёсць запытанне, касаючыся сарабіткі з правамі: для яго неабходныя правіла, ўзменшэнні яных у 2023 годзе і прыметка пра адступленні, тры дакументы для аднаго адпаведзення.
Паведанне агента
Пасля гэтаго момента RAG больш не ўжо ў форме фіксаванага працэса і начынае робіць выборы. Механізм направлення задаўанняў керуе тым, куды яго направіць — да правільнага індэкса, да базы дадзеных SQL або ж узагалі не выконваць пошук. Механізм багатоэтапнага пошуку чытае інфармацыю, выявляе прычыну недастатку даных і зноў выконвае пошук. Сістэмы Self-RAG і Corrective RAG дазваляюць сістэме самай оцаніць атрыбуты атрыбутаванай інфармацыі і адхіліць яе, калі яна неякразна, пасля чаго пераходзяць на пошук у Інтэрнэце або чыста з’явіцца, што у ней няма адпаведзення.
Возьмімо задаўанне пра тое, чаму была адхілена патэнція. Ёй адпаведзець трэба, з’яўіўшы адпаведнае правіле, файл патэнціі і код адхілення, якія запрашуюцца адна за іншай.
Заплутаныя дакументы
Рэальныя бізнес-знанні рэдка калі выклікаюцца у вачыню як апранутыя параграфы. Яны прыходзяць у вастоце табліцаў, сканаваных дакументаў, планаў прастору, скрыншотаў і дыяграм. Серэд неабходных навыкаў — парасінг з урахоўваннем структуры, выкарыстоўванне табліцаў, якія можа адобразіць злучаныя клеткі, вбудовванне зображэнняў, а таксі як пошук у дакументах, дзе адказ знаходзіцца ў графіцы. Тыповым прыкладам ёсць пытанне пра цэны, колькісныя даны для якога ўсё ў табліцы, сканаванай як дакумент.
Проблемы вырабніцтва
Пасля дэманстрацыі ўсё ламаецца. Показнікі затрымкі паказваюць, куды знікаюць мілісекунды. Важліва вартасць за запіт, а таксама кэшаванне, якое дзейсна дапамагае. Індэкс павінен заставацца актуальным, калі дакументы зміняюцца ў кожны час. Контроль даступу павінен гарантаваць, што корыстнік А не можа заглянуць у фрагменты дакументаў корыстніка Б — гэта распашчастая і рэальная проблема. Завяджаныя дакументы можуць вводзіць штучныі контэнт. Монітарынг і логаванне паказваюць, калі якосьць таямніча падупала. Сістэма, якая чыста працавала з 200 дакументамі, можа зламацца, калі ў яе будзе 200 000 дакументаў.
Спачатку выявіце прычыну абяцкі
Калі трэба запам’ятаваць адну рэч, то гэта: распраўжаныя тэхнікі RAG не ўскладненая версія базовых тэхнік RAG. Гэта сукупнасць патчаў, кожны з якіх прызначаны для конкрэтнай проблемы з адным назвам. Калі прычына абяцкі з’ясована, наступным логічным крокам стае тэхніка падбору.
Тры прынцыпы дапамагаюць заставаць падход чыстым:
- Няма павагоды к фрэймворкам. Канцэпцыяйдуць перад інструментамі, і кожны, хто разумее прыемы аб’еднання дадзеных, можа ўжыць іх будзь-дзе.
- Няма коду, які проста скопіюваецца і вярнуецца. Код прадстаўляецца толькі пасля таго, як стане ясна прычына яго такога віда.
- Няма адгуку, што ён завжды працуе. У дзеярых случаях RAG ёст крытычным выборам, а простыя рашэнні будуць крашчымі.
Пачатківцы должны выучаць тэмы па парадку, адколі кожная з іх выкарыстоўвае знанні з паканальнай. Тыя, у кых сістэма не працуе як трэба, можа адразу перэйсці да этапу ацэнкі.
Супаўзвязаная літэратура
- Практычныя прытамакі: Перадача RAG у працэйнае выкарыстанне: проблемы на всіх этапах на прыкладах з рэальных сітуацыяў — Паследовы выклад кантэнту «Практычныя прытамакі: Перадача RAG у працэйнае выкарыстанне: проблемы на всіх этапах на прыкладах з рэальных сітуацыяў»: контракты, перакананні і шаблоны коду для команд, якія впрыменяюць гэты падход.
- Гібрыдны пошук у Postgres для дапаможніка з охоры здароў’я: схема, чанкаванне, RRF і ацэнка — Стварэнне слоя адзысквання даных для дапаможніка з охоры здароў’я у Postgres: чанкаванне з урахоўваннем структуры, гібрыдны пошук за дапамогою pgvector з RRF, бінарная квантызацыя, прагі і ацэнка рэзультатаў.