Стратэгіі разбіўкі для прадакшн-RAG: фіксаваны памер, семантычная і parent-child
Практычны агляд разбіўкі ў RAG: ад фіксаванага памеру і рэкурсіўнага падзелу да parent-child, прапазіцый, late chunking, RAPTOR, табліц, кода і бенчмаркаў.
Крыніцы: Chunking Strategies for Production RAG: From Fixed-Size to Context-Aware and Multimodal Retrieval
Уявімо, ў працівніка, які апрацоўвае заяві в страховій компаніі, вінікае пітання: які документы потрыбні для схвалення заявкі на відшкодування за пошкоджэння водою у розміры 40 000 евро, і што необхідно перэвірыты перад оплатою? У гэтым пітанні працівнік спіраецца на чынній посібнік з апрацоўкі заявок. Файлі було правільно завантажэно, OCR функція працювала належнім чыном, поперэдня апрацоўка усунула зайві даныя, мадэль для пошуку відповідного матэрыалу знайшла потрыбній посібнік, а сістэма ранжування показала яго серэд першых рэзультатыв.
Проце відповідзь все одно залішаецца неповною.
Досвідчэній аджустэр не був бі здывованій. Гэта правіло не містыцца в одному абзаці. У опісовому рэчэнні зазначэно, што для прэтэнзій, пов’язаніх із підозрою на поперэдні пошкоджэння, необхідна незалежна перэвірка перад оплатою. Поруч з цым наведэна табліця повноважэнь. На наступній сторынці ёсць схема, якая показуе послідовнісць перэвірок і верыфікаціі власносты. Сістэма дакументаў таксама містыць ідэнтыфікатор посібніка, яго версію і рэгіон застосування.
Для оператора гэта не чотыры окрэмі факты. Гэта одне бізнес-правіло, вікладэне у чатырох рызніх фарматах: абзац візначае умові, табліця — осіб, які можуць схваліты, схема — послідовнісць перэвірок, а метадані — дыючу версію.
Стандартны роздзеллер, настроены на 500 токэнаў, можа разместыць абаротак у аднай часткі, верхнюя палова таблыцы — у другай, адпаведную рэчку таблыцы — у трохці, а выдзеяны тэкст дыяграмы — у чатвертай. Кожная частка ўзятае за правядзімую. Кожны вызов функцыі embedding завершаецца успехам. Панэль керування застаецца з зеленым кольрам. Аднак ведамасць было фундаментальна пераранжавана. Пад час запыту сістэма должна з’яўляць звязак між тыпам тэзы і дыяпазонам колькасці, перадаць гэта на адпаведнага апраўнікання, знаходзіць трэбаванні па адарожчанню і вярнуць пераконтанні, усё гэта на адной час з фрагментамі, якія не можна прачытаць самастойна. Модэль мовы прыме часткі і запіша непавны адказ.
Самэльчына прычына, чаму дыбаггін RAG вводзіць у глухое каліцтво. Команды меняюць модэлі embedding, паднімаюць параметр top-k, купуюць сільнейшы рэранкер або перапісваюць запыт. Інодзе гэта дапамагае. Частае — толькі компенсуе шкоду, нанесеную пад час сегментацыі. Некалітэсны RAG часта ёст таблыцаваннічы проблема, перадвушаная пад маскай LLM.
Большая частка дыялога пра кантэйніраванні тэксту скупляецца ў адны чысла: 256 токэнаў, 512 або 1 000, плюс ступень перакрыцча. Гэта справядлівыя пытанні аплявення, але архітэктурная прыбліжна іншая:
Што павінна застацца разам, каб тады, калі гэта будзе атрымана сама по сабе, яно ўсё равна мела тое ж значэнне?
У наступным чытанні рассказваецца пра ад найпростыяйшых стратэгій да тэхнік, якія з’явіліся у 2024 і 2025 гадах, паказваюцца моменты, калі кожная з іх ўзнаграджваецца, і заканчываецца праектам для практычнага вжытку, які справляецца з заплутанымі корпоратывнымі дакументамі.
Месца кантэйніравання тэксту ў працэсе апрацоўкі
Кантэйніравання тэксту — гэта не адзінокы крок у апрацоўцы тэксту. Гэта межа між розумэнням чыстых дакументаў і стварэннем пошукаваных знаёмасцей. Усе, што знаходзіцца вышэй у ланцоўке, вялікае рашыння пра тое, што можна раздзеліць, а ўсе, што знаходзіцца ніжэй, залежыць ад таго, чы раздзеленыя часткі зберагаюць достатню колькасць значэння, структуры і паводзкіх даных, каб ўсё можна было правільна знайсці.
Уявіце сабе паведамленне з усіма шляхамі. Джэрэла, такія як PDF-файлы, табліцы, зображэнні, JSON, базы дадзэння, API і код, прыймаюцца, аналізуюцца, чысцяцца і нормалізуюцца. Лячына толькі тады, калі шар для разбівання на часткі вяршыць рашэнне, як кожны тып кантэнту стане елементам для пошуку. Для наратыўнае тэксты можна выкарыстоўваць структурны або сэмантычны падзел. Для ўплотненых правілаў можа падходзіць прэдставленне на рэвэлюцыі. Табліцы патрабуюць меж, якія будуць адпаведныя ўсім ўмовамі ўзора. JSON павінен адпавядаць бізнес-об’ектам. Зображэнні патрабуюць візуальных апісаў, якія будуць прыўязаныя да арыгіналу.
Таму у прымэнных сістэмах рэдка калі выбіраецца аднаковы розмер частак для всьго. Адна корпуса можа мячыць прэдставленні на рэвэлюцыі дакумента, раздзела, параграфа, рэвэлюцыі і токэна. Пары «родны-дзеця» выкарыстоўваюць маленькія часткі для точнасці, а большыя — для кантэксту; тады як пазнейша разбівка на часткі, пошук у кантэксце і тэхнологія RAPTOR восстанавляюць інфармацыю, якая інакш была бы адкінута.
Працэс разбіювання на часткі таксама не завершуецца, калі існуюць вектары. Метаданы частак, версіі дасягаў, звязкі межу падрыхтоў і дочоўных елементаў, кантроль доступу і апыланні да выхадных дасягаў павінны застацца непашкоджанымі пад час індэксавання, выкарыстоўвання, пераранжавання, складання кантэксту і стварэння новых дасягаў. Ацэнка заканчывае гэты цыкл: неправільныя выкарыстоўвання дасягаў, дуплікацыі кантэксту, некарэктныя цітаты і змены у шаблонах запітаў павінны вярнуцца і спрыяць прыняттыю рашэнняў па разбіюванні на часткі. Працэс рэальнага разбіювання на часткі менш стосуецца простага розрывання дасягаў, а больш — праектавання елементаў выкарыстоўвання, на якіх працюе весь іншы працэс.
Цэнтральны компроміс
Возьмем кароткі фрагмент правіл:
High-risk corporate customers must complete Enhanced Due Diligence.
Facilities above EUR 10 million require Group Credit Committee approval.
Fully cash-collateralised facilities may follow the exception defined in Section 7.4.3.
Зберагчы ўсё разам, мы захоўваем кантэкст, але гэта дае шырокі, размыты вектар. Агрэсывнае раздзеленне дае чыстыя рэзультаты пошуку, але правіла затверджэння можа адхіляцца ад класу кляўэнта, да якога яны прызначаны, а выключэння можа стаць незалежным ад правіла, якое яно мяніць.
Гэта і ёсць весь напруга: маленькія фрагменты павышаюць тачнасць, вялікія фрагменты захоўвальваюць кантэкст, а сістэмы для практычнага вжытку патрэбуюць стараннае балансаванне. Кожная тэхніка фрагментавання — гэта разны шлях у гэтым компромісе, і жадна з яных не пазбавляе нас патрэбы разумець дакументы і запіты, якія на самай працоўцы ставяюць корыстувальнікі.
Простыя базовыя падходы
Фрагментаванне фіксаванага размеру
Фрагментаванне фіксаванага размеру дзеляе тэкст на часткі фіксаванай дужыні, зазвычай па токенам, з можлівым перакрыцэнням. Гэта проста, дэтэрміністычная і недорогая метода.
Спылкаванне токэнаў зазвычай лепшая за спылкаванне сімвалаў, таму што мадэлі на адной основе эмбеддынга бачаюць токэны. Пяціста сімвалаў немецкага чы рускаг языка можу мячыць значна меншае лічба значамых елементаў, чым тая ж колькасць у англійскай мове. Гэты метод кодуе тэкст у токэны, праходзіць праз іх за фіксаваным інтэрвалам і дэкадуе кожны вікна. Надакладанне означае, што кожны вікна пачынаецца раней, чым заканчываецца пярэдні.
- Добра працуе для: аднороднага прозы, базовых крэйтарыўных пунктаў, сітуацый, дзе найважнейшая ўпрыемнасць у аператыўнай працы, і ранніх пратэтапаў, якім спачатку патрэбна рабочая схема.
- Не працуе, калі: значэнне залежыць ад структуры. Умова можа заканчыцца на токэне 499, а яе выключэнне — на токэне 501, пры чым граніца нічога не ведае пра бізнес-логіку.
Што дае надакладанне
Перакрыцце ўтварае захопленне ад несправнасцей граніцаў. Без яго рэчы можа быць раздзелена на два фрагменты, і ніякі з яных не будзе самостойным. За ўчасцю перакрыцця кожны фрагмент несе частку матэрыялу суседньага, таму оба застаюцца зрозумелымі.
Цена за гэта рэальная: больш вектараў, больш вітрачання на эмбедынг, большыя запасы памяці і спісы рэзультатаў, заполненыя майжэ ідэнтычнымі фрагментамі. Прыблізна 20 процэнтав — гэта прыzwyczай, а не закон, таму трэба спрыяваць яго як параметр для перапыткаў з метрыкамі адзысквання інфармацыі.
Фрагментаванне фіксаванага размеру здобывае свое месца не заводзячыся аптымальнасцю, а паставляючы стабільную базу. Калі болей складны метод не можа значна перамогчы яго на вашай корпусе дадзеных, дапаможная сложнасць не ўзгоджваецца.
Рэкурсыўнае раздзелэнне
Дакументы падпрыемства ўжо маюць корысныя межы ў заглавлях, раздзелах, абаратках, рэчанках і спісах. Рэкурсыўныя способы раздзелення выкарыстоўваюць гэтыя межы, прычаму толькі калі гэта немагчыма — прыменяюцься довільныя точкі раздзелу. Напрыклад, рэкурсыўны спалучальнік сімвалаў LangChain спачатку пробуе двойныя новыя радкі, якія зазвычай пазначаюць абараткі. Калі фрагмент заўсёды занадта вялікі, ён пробуе адны новы радок, потым знакі паводзка ў рэчанках, потым праслінкі, а ў канцы — адзіныя сімвалы. Ліміт розмеру — гэта прага, якая запускае кожны з альтэрнатыўных спосабаў.
Парадак разлінавача мае большое значэнне, чым сама цыфра розмеру. Для добра арганізаваных правіл, процедурагаў, інструкцый і тэхнічных дакументаў гэта часта ёстабільны і надзеяны варыянт.
Адзін савет па час адрабаткі: калі падчас выкарыстоўвання вялікага об’ёму даных ужэ была выкаранутая іерархія, не трэба яе выметаць і прасіць з’еднальнік або іншы прыстрой пра ўтворэнне яе занова. Раздзіл пад номерам 7.4 ў роздзеле пра позычкі ужо паведамляе, якія тэксты належаць разам. Зберагачыце гэю структуру ў метаданых і выкарыстоўвайце яе для обмежэння працэсу роздзелення. Проста кажучы, не разрушайце структуру падчас роздзелення на часткі, а потым не намагайцеся яе восстанавіць падчас выкарыстоўвання.
Рэкурсывнае роздзеленне прыпускае, што структура больш-менш адпавядае значэнню, але гэта не завжды так. Адзін параграф можа містыць тры некалякуючыяся правілы, а пяць параграфоў можу опісваць адзін працэс. Самэ тут і стаюць актуальныя методы, якія базуюця на значэнні.
Елементы — рэчэнні і параграфы
Такі інструменты, як spaCy і NLTK, апрантуюць дэтэктары рэчэнакоў, якія справляюцца з прыбліжным раздзеленнем на рэчэнкі ў такіх случаях, як скрацення, дэсятковыя чысыры, заглавнікі і трохточкі. Раздзелэнне на параграфы ёсць простэйшым і частае эфектывным спосабам, адколі параграф — гэта групаванне, якое авар перадумаў. Для чыстых дакументаў раздзелэнне на параграфы і з’едыненне короткіх суседзяў да мінімальныя габарытавае — граматычнасць між падходамі з фіксаванымі габарытамі і сэмантычнымі падходамі.
Косць закладаецца ў зменныя габарыты чакункоў. У дзеярых параграфах ёсць 50 токэнаў, а ў іншых — 800, што ускладняе групаванне, падымае затрымкі падчас інтэграцыі і ускладняе прыбліжэнне габарытавае індэксу. Чы рэальная практычнасць крашчых меж адпраўдвае гэта, залежыць ад корпусу.
Слайдуючыя вікна як інструмент для адзначэння наявных элементаў
Слайдуючыя вікна — гэта фіксаванага размеру часткаванне, пры якім перакрыцце выкорыстоўваецца як механізм адналокавання, а не толькі як засоб захавання меж. Прычына: вектар запіту найкрашча падходзіць да таго абзацу, які безпасебна на яго адпавядае. Калі такі абзац знаходзіцца між межамі ў аднай з частак, жадна з частак не зможа парадуваць высокім рэйтынгам. З достатнім перакрыццем кожны абзац разумнага дыяжыну будзе цэлым у прынеймна адной частцы.
Большае перакрыцце павышае рэгрэт, але гэта супакоўваеся з рэдандансам. Перад прыблізна 30–40 процэнтамі спісы top-k заполняюцца майжэ дублікатамі, якія выкарыстоўваюць рэсурсы кантэксту без дадавання новых фактов, тады як 10–25 процэнтамі падходзіць для большасці корпусаў. Адлічвайце перакрыцце, вымерваючы шчыльнасць дублікатавання разам з показнікам Recall@k, адтымушчы, што павышэнне Recall@5 праз подвоўванне колькісці дублікатавання можа не павышыць якасць адпаведзей.
Стратэгіі, якія лічуць значэнне
Семантычнае часткаванне
Семантычна сегментацыя заменяе правілу падрахунку токэнаў запытам: чы хватыць карысці змены тэмы, каб пачаць новую еўрануду? Уявіце сабе раздзел, у яком першыя два рэчэнні апісваюць трэбаванні да адарожвання, трэцяе прысвечвае лімітам платэжаў, а чатвертае — правілам пра шахрайство. Фіксаваны сплітэр не можа разгледзець гэтыя змены, тады як добра настроўаны семантычны сегментатор можа.
Звычны падход складаецца з трох стадзій. За дапамогою лінгвістычнага модэлю раздзеліце тэкст на рэчэнні. Кожнае рэчэнне, або невялікі блок суседзячых рэчэнняў, практыкуецца за дапамогою сентэнцы-трансфармера. Потым вычысляецца косайны адступ межаў суседзячых эмбеджэў, і ставіцца межа там, дзе адступ перасягае певны пэрцэнтайл, часта межа 85-го і 95-га пэрцэнтайла адступоў у тым дакуменце.
Гэты порог являецца крытычным параметрам. Калі ён занадта высокі, асоцыяваныя ідэі розбіваюцца на маленькія, беззначныя фрагменты. Калі ж ён занадта нізкі, адміністраваныя тэмы застаюцца з’едыненымі, вяртаючы шум, які хацелася адчыніць.
Гэта таксама коштае больш, таму што павінна адбыцца цэла процедура вбудоввання ранішэ, чым будуць вядомы межы. Для короткіх, адчытных дакументаў такі расход майжэ не мае значэння. Для дзяўных, нэўпорадкована сформатаваных тэкстаў выявленне рэальных змян тэм можа значна паспрабаваць праблему пошуку. Адна чыстая меры: метод прыпускае, што тэмы паступова і відчутна змінююцца межы рэчэннямі. У ўжоўжанай правовай чы адэкватнай прозе, дзе адна рэчэнне можа містыць тры умовы і два аўтазы, адстані на рэчэнневаму рэвэле ствараюць шумныя сігналы.
Разбіўка на фрагменты «род-дзець»
Гэта адаптаваныя шаблоны з наібольшым адзейнаемасцю ў практычным RAG, каліжоў яны рашаюць проблему, якую ігнаруе падход «па аднае еўранія»: найлепшая еўранія для выкарыстоўвання інфармацыі не ёсць найлепшая для створэння новага тэксту.
Якшы прыклад — частка з 2,000 токенаў, якая абрабатвае меры лімітаў, выключэння, кантролі і процедуры эскалейвання. Якшы ўключыць яе цэлую, то будзе захаваны кантэкст, але вектор будзе нечысты. Якшы разбіць яе на часткі по 200 токенаў, то павышыцца точнасць выкарыстоўвання інфармацыі, але знайдзены фрагмент можа не мяць таго, што трэба модэлю для правільнага аналізу.
Метод разбівкі на «родныя» і «дзецінскія» фрагменты раздзеляе эты два заведаменні. «Родным» фрагментам ёсць большыя, цэлесообразныя часткі, такія як цэлае рэчынце, процедура або падраздэл. «Дзецінскімі» фрагментамі ёсць меньшыя, спецыфічныя часткі, якія вытэкаюць з іх: адзінлікія умовы, прагі або выключэння. Толькі «дзецінскія» фрагменты ўключаюцца і шукаюцца. Калі «дзецінскі» фрагмент падходзіць, яго ідэнтыфікатор «роднага» фрагмента запрашвае большы тэкст-выхаднік, і самэ гэта модэль насправдзе чытае.
LlamaIndex і LangChain адказваюць гэтам праз іерархічныя вузлы, адзысканне дакладнаў з малых да большых і адзысканне галоўных дакладнаў. Кожны «дзецінскі» вузел зберагае ID галоўнага дакладнаў у метаданых, а пасля адзыскання ведамаеся ўсе супаданні з іх галоўнымі дакладнаўямі пры стварэнні кантэксту.
У рэгулююцыяных сэрвісах ідэнтыфікаторы патрабуюць рэальнай лініяй праеўласнення. Чытальны ID, які аб’едначае дакладнаў, версію і раздзел, ёсць безпечнейшы за будзь-які UUID, таму што «дзецінскі» вузел з версіі 7.2, які адносіцца да галоўнага вузла з версіі 7.1, стварае кантэкст, які выглядае правдападобна, але ў практыцы ёсць некорэктным. Гэтый прынцып таксама дзейнае для розных фарматаванняў: «дзецінскі» вузел можа быць рэйталізаванай строчкай табелі, візуальным опісам дыяграмы або прапозіцыяй, усе якія маюць спольнага галоўнага вузла, які прэдставляе адны логічны раздзел.
Разбіўка прапозіцый на чакі
Возьмімо такое рэчыце з правіл праўедзення крэдытавання: рызыкаваныя корпаратыўныя заёмнікі патрабуюць паўнейшага аналізу ўмоўкі, а таксама годовага перагляду, і камітэт павінен даць схваленне ў кожны раз, калі ўражання ад іх дыяльнасці перасягае заданы ліміт. У ёй маюцца тры чысткі факты. Сістэма, якая адпавядае на пытанне пра тое, як часта пераглядаюцца такія кліенты, не павінна пераглядаць усе крэтытарыя норматывы, каб знайсці адпаведнае рашэнне.
Кожна пропозіція отрымуе власну інформаційну структуру, тому векторній простыр перэтворуецца на простыр атомарніх фактыв, што підвішчуе дакладнасць для конкрэтніх, факт-орыентованіх запітань. Дыюць два обмежэння шчодо формування рэзультату:
- Прыявленне не ўтварае адказ на пытанне пра правду. Гэта ўзоркаваная, створаная модулярнае модэлю рэпрэзентацыя. У рэгульяваным рабоце спачатку беруцца прыявленні, а пасля вяртаюцца да автантыпныя тэксту, каб знайсці падставы, логіку і цітаты. Прыявленне — гэта элемент індэксу, а не тверджэнне.
- Затраты растуць стрэмгана. Однін дакумент з 10 000 токэнаў можа даць сотні прыявленняў, кожна з яых вымагае выканання операцыі эмбедынгу, таму індэкс быстра расце.
Вярнэнне загубленага кантэксту
Пазнелікаванне фрагментаў
Традыцыйнае пазнелікаванне спачатку дзеліць тэкст і імбеддзіць кожны фрагмент окрэма. Пазнелікаванне пазнейшага тыпу, якое Jina AI адкрыла ў 2024 годзе, змінюе частку гэтага парадку.
Метод пазлавання дакумента з паздзейшым апрацоўкам спачатку праходзіць увесь дакумент праз мадэль амбеддынгу з дзейнасным кантэкстам, каб атрымаць рэпрэзентаціі токенав на рэвэле кантэксту. Пазней прызначаюцца межы пазлак, адкуль з’еднваюцься вектары токенав, якія знаходзяцца ў кожным окне. Разлік з простым іспользованнем большых пазлак у тым, што елемент для пошуку застаецца маленькім. Тэкст заставаецца сфокусаваным, але яго вектар праблесквае сяродовішча, у яком ён з’яўіўся. Займеннікі, скрацення, прыметныя цітаты і тэрміны, з’явіліся раней, адрабатваюцца ў процэсе стварэння амбеддынгу, і не застаюцца на розглядзе мадэлі пад час генеравання.
Кост інфраструктуры ўсамштыраны. Патрэбны мадэль адбудовы на основе дзейна кантэкста, якая дае выходы на рывень токенаў, дадатковая памяць для індэксавання і рэтэльна напісаны код для агрэгавання дадзеных. Яна таксама не можа выправіць паказваныя проблемы сегментацыі: табліца, паспрацаваная некорэктна, або дыяграма, якая была дадзена праз прадзеянне паперкавання, застаецца недаступной. Яна рашае проблему втраты кантэкста пад час адбудовы, але не нічога раней. Для корпусаў з сільнымі межвыявочнымі залежнасцямі, такімі як правілы, кантракты і інструкцыі, павышэнне якасці адбудовы можа быць значным.
Кантэкстуальнае выкарыстанне дадзеных
Метод кантэкстуальнага выкарыстання дадзеных ад Anthropic, опублікованы ў 2024 годзе, падходзіць да той самай проблемы ізоляцыі іншым спосабам. Ён не зменяе архітэктуру адбудовы. У момент індэксавання ён абгаюжае тэкст, які выкарыстоўваецца для выкарыстання кожнага фрагмента.
Адзэнныя запаведзіны, якіе назначаюць ліміт, можаць не пасаць да запытку, у якой згадваюцца клас кантрактнага адносіння, ўпраўленчы раён і архівны орган, таму што гэтыя тэрміны знаходзяцца ў асупраўляючым дакуменце. Таму перад індэксаванняем для кожнага фрагмента ствараецца короткая, спецыфічная для дакумента інформацыя, напрыклад, пра тое, з каго раздзела якой версіі правіла ўзятае гэта адзэнне і што яно візначае. Гэтая інформацыя дадаўцаеся на пачатку, і такі комплекс включаецца ў дакумент.
У аналізе Anthropic адыянаецца, што саюванне кантэкстуальных эмбедынгаў з кантэкстуальным BM25 зменілі колькасць неудач у аднаходжэнні топ-20 на 49 процэнтов, а дадзенне параду занова — на 67 процэнтов. Гэтыя цыфры апыляюцца з саеўных корпусаў Anthropic і не ёсць гарантыямі. Рэальныя выгоды залежаць ад вашых дакументаў, запітоў, модэлю эмбедынгаў і наладкі аднаходжэння. Урок не ў цыфрах, а ў тым, што дадзенне спецыфічнага для дакумента кантэкста да ізольаваных частак можа сутычна дапамагчы, калі важлівы значэнні знаходзяцца за межамі частакi.
Ён наібольша падказка ў разе неясных фрагментаў: аддатковых рэядоў таблыц, пісьменаў да адпаведных зображэнняў, прамян да вядомых тэрмінаў і частак, чыя сфера была запоўнена мацічным раздзелам, якога ўжо няма. Ён таксама гарна працуе ў пары з методам выкарыстоўвання мацічных і дзецінскых элементаў. Існуе адна важлівая правіла: створаны кантэкст ёсць толькі падказкай для пошуку, а не самым джэрэлам інфармацыі. Якшто да кожнай частакі дадаць аднойчыныя апісанні, вектары стануць занадта схожымі, што пагоршыць працэс пошуку. Хорашая кантэкстуалізацыя дадае толькі тое, што неабходна, каб зрозумець частку без ўважлівасці да яе суседніх элементаў.
RAPTOR: калькі лэвела абстракцыі
RAPTOR – скарытака Recursive Abstractive Processing for Tree-Organized Retrieval – спрамованы на адракцію проблемы, якая ўзаўсёды існуе ў сістэмах аднароўневага пошуку: дзеяныя фрагменты матэрыялу чыста добра адпаведзаюць на конкрэтныя фактычныя запытанні, але маюць труднасці з запытаннямі, якія выкалікаюць неабходнасць сынтэзы інфармацыі з разных частак. Пораўняйце запытанне пра тое, хто затверджуе адзін конкрэтны тверджэнне, з запытаннем пра весь сістэмны карэнтыр контролю за такім тыпам тверджэнняў. Для першага існуе адна автарытатная адпаведзь у табліце. Для другага неабходны падтверджэння з правіл адарожвання, дэлегавання аўтантыі, політык падтрымкі чыста вяснавання, процедураў перагляду і шляхоў апранасці, верагатна з розных частак і дакументаў.
RAPTOR стварае іерархію. Адказы-джэтыякі станавяцца ніжнім слоем. Спадзяючыся адказы-джэтыякі агрупаваюцца на адварот на адпаведнасці ўместкавання і мовны мадэль падсумавляе кожную групу. Гэтыя падсумкі таксама агрупаваюцца і падсумавляюцца знову, і так паўтараецца, пакуль калькі высокага рэвэля не будуць прэдставляць усі дакумент чы корпус. Пад час запыткі вузкая запытка можа падходзіць да адказу-джэтыяка, а шырокая — да падсумку высокага рэвэля, таму адна сістэма можа обрабатваць аба варыянты без змян у архітэктурэ.
Галоўная проблема пад час стварэння кантэнта — гэта походжанне інфармацыі. Апুшчэнні ўособлівае тлумачэння, а такое тлумачэнне можа спакаліць прагрызы, краевыя прыклады і асаблівасці, якія ў рэгульюемай рабоце маюць найвышэйшую значымасць. Ўжывайце вёрхнія вузлы, каб знайсці адпаведныя часткі корпусу, а пасля — пераканацца ў первісных фрагментах тэксту пры стварэнні апুшчэння. Апুшчэнне дапамагае аднаходзіць падтверджэння, а первісны тэкст являецца тым, на чым мадэль базуе своія выводы. RAPTOR прадаёт сэрвісы за высокую цену для дзейнаў, рэгуляторных канструкцый і большых інструкцыяў, дзе корыстувальнікі ў адной заявцы ставяць як дэталізаваныя, так і сінтэтычныя запіты. Для короткіх зборак або однаковага тыпу запытанняя такая складнасць рэдкая часам выправдоўвае ся.
Структураваны і не-тэкстовы кантэнт
Табліцы: структура — гэта значэнне
Верніцеся да табелю аўтантыяў. У яй зберагліся чыстае выражанні адносаў: тып прэтэнзіі — падпярэблена вода, дыяпазон сумы вышэй 25 000 еўро, апраўнік — рэгіональны менеджэр прэтэнзій. Калі ператворыць гэта на радок слоў, адносы межаў столбцоў, якія надаюць значэнню кожной вартосці, знікаюць, таму табелі патрабуюць спецыяльнага адносу да сабе.
У малых табелях часта лепш застаўляць іх цэлымі, пашчоту калі запіты пораўнююць радкі або патрабуюць всего дыяпазона умов. Запісуйце іх так, каб звязкі межаў столбцоў і радкоў засталіся, напрыклад, ператварыўшы кожны радок у пары «значэнне — атрыбут», якія называюць кожны столбец. У велікіх табелях радкі дазваляюць дэліць інфармацыю на болей тачныя часткі, але кожны радок павінен мяць свае заголовкі, таму што тры простыя вартосці без атрыбутаў самыя по сабе нічога не значаць.
Пад прыемнайшае рашэнне крыўцяе пад серыяваннем. Калі корыстуначы ставяць дэтэрміністычныя запіты, такія як выказанне ўсіх тых, хто затвердзіў сумы, прэкасаваныя певным лімітом, тады метод вектарнага пошуку можа выступіць абсалютна неправым інструментам. Табліцы, якія запрашваюцца за дапамою SQL або dataframe, будуць крашчымі за будзь-якія падходы з включэнням даных для пошуку за точнымі крытэрамі. Прынцып: не разрушайце явную структуру толькі для таго, каб усё выглядала як тэкст.
JSON і структураваныя запісы
Той жа логіка прыменшваецца і да JSON. Запіс, які мае палаты segment, rating, region, amount, approver і флаг review, вясно паказвае, якія поля належаюць разам, таму вікорыстоўванне інструмента для раздзелення токенаў у серыялізаванам JSON ігнаруе гэта. Маленькія запісы павінны застацца цэлымі, з чытаемым формам для выкарыстоўвання, які выводзіць кожнае палаты разам з яго абазаваннем. Для большых об’ёмаў дадзеных трэба знайсці стваральныя бізнес-элементы, такія як кліенты, рахункі, транзакцыі, запускаваныя працэсы або рашэнні па справах, і раздзеліць дадзеныя на часткі навакола іх.
Унутры запіса трэба раздзеліць семантычныя палаты ад тых, якія можна фільтрацыяваць. Палаты, якія будуць адносаваныя да запытаў на натуральнай мове, павінны быць часткай эмбеддынгу. Палаты такія як region, version, business unit і effective date зазвычай лепшая працуюць як фільтры метададзеных у індэксе, чым як частка вектара. Прафільтрацыя метададзеных ўскорае і павышае точнасць для катагарычных лімітаванняў, і ўтрымвае эмбеддынг у межах значэння.
Код: сынтаксіс — гэта межа
Код створыць тую ж проблему ў іншай сферэ. Універсальны раздзелювач, які розрывае файл на Python на 500-м токене, можа адсоціяваць функцыю з ўсімі елементамі яе оператывацыі або клас з усімі яго методамі. Для пошуку коду межы павінны адпаваць сынтаксісу: функцыі, методы, класы і модулі. Модуль ast у Python можа пераканструляваць выхідны код у дрэво і выяўляць кожную функцыю, асінхронную функцыю чы клас як самастоятэльную елементацію, так што часткі коду будуць адпаваць семантыцы мовы, а не толькі лічбе сімвалоў. Для рэпазітарыяў на багацькох мовах tool tree-sitter прыменяе адну інтэрфейс для пераканструлявання, якая падтрымлівае дзесяткі мов, і справляецца з крайнімі случаямі, якія не можа адгукнуцца рэгулярныя выразы. Структура «род-дзець» працуе ефектыва: можна точна выяўіць метод, а потым, калі модэлю патрэбны шырэйшы кантэкст, раскрываць інфармацыю пра яго клас чы файл.
Дыяграмы і зображэння
Не трэба спрыяць тэксту OCR як даўнейшам адбіву візуальнага матэрыялу. Дыяграма прабегу перадае значэнне праз стрэлкі, последовасць, розгалужэння, групаванне і прасторовую структуру, якія OCR не можа зафіксаваць. Ўжыўце мадэль, здатную распазнаёмаць візуальны матэрыял, каб напісаць апісанне таго, што перэдае зображэння, а не толькі слоўы, якія ў яму ёсць. Зберагаўце паказчык на аднородны файл. Створанае апісанне ёсцца ентрыяй індэкса, а сама вачальная картына ёсцца тым, што сістэма паказвае як доказ. У рэгулюючыхся сістэмах цітата павінна вядуць на аднородны візуальны матэрыял, а не на яго апісанне.
Распрацоўка па тыпу кантэнту
Рэальныя дакументы ўскладненыя. Адзін рукаводзіцель можа мець правілы, опісаныя словамі, табелю аўтарытэтаў, дыяграму працэса, метаданы у фармаце JSON і вбудованыя апісанні. Не існуе разумной прычыны застаўляць аднаго сапраўдніка для обработкі ўсіх чатырох элементаў, аднойчы кожны з іх несе значэнне по-разна: параграф — праз лінгвістычную цэласнасць, табелю — праз перасеканні роўнаў і столбцоў, дыяграму — чэрзе пазіцыю, направленне і групаванне, а JSON — чэрзе явныя ключы.
Рэштатацкі элемент — гэта маршрутазер, які выявляе тып кантэнту кожнага выдзельванага блока і надае яго стратэгіі апрацоўкі. Маршрутазер не павінен быць сложным; яго значэнне заключаецца у тым, што маршрутызацыя на адпаведнасць тыпу кантэнту стае явным элементам дызайну, а не наследкам выкарыстоўвання якога-небудзь універсальнага роздзелвача. Для дапаможніка з тэзамі наратыўны матэрыял будзе перадаваны для структурнага або сэмантычнага роздзелвання, табліцы аўтарытэта — для серыялізацыі, урахоўваючы структуру табліцы, дыяграмы — для модэлю візуальнага апісання, а JSON-метаданныя — для роздзелвання з урахоўваннем аб’ектаў.
Кожны выдзельваны блак зяўляецца з тымі ж основнымі метаданнымі: ідэнтыфікаторам дакумента, версіяй, ідэнтыфікатарам вышэйшага блока, роздзелу і рэгіону. Гэтае спакоюванне дазволяе пасляўшым этапам бачыць, што рэчка табліцы, параграф і апісанне дыяграмы ўзаемна пов’язаныя доказы з аднаго роздзелу.
Калі выграюць большыя елементы
Большая часць вішчэзгаданого прогрэсу спрамована на досягнення більш вісокоі дэталізаціі, што можа створуваты хібне вражэння про тыя, што чым меншы одыніці даных, тым крашчэ. Досліджэння LongRAG розглядалі протылежній напрамок, перэвіраючы, чы можуць значно більшы одыніці даных — до 4 000 токенів у дэякіх експерыментах — перэвершыты дэталізоване пошукове функціонування у складніх багатоетапніх запітах. Вісновок полягав не у тому, што велікі блокі даных завжды крашчы, а у тому, што рывень дэталізаціі пошуку мае відповідаты рывню дэталізаціі запіту.
На запіт про тыя, як часта потрыбно перэглядаты певній тып облікового запісу, існуе відповідзь розміром з окрэме тверджэння. Для отрымання повноі інформацыі про сістэму керування певнім тыпом тверджэнь потрыбні даныя з кількох сфер, а дэталізованій пошук можа змусіты сістэму складаты шыроку відповідзь з многіх окрэміх фрагментыв, праз што з’являюцца помілкі об’еднання навіць тоды, колі кожэн фрагмент ёсць правільнім.
Вібір і оцінка
Як обраты стратэгію
Няма еднай стратэгіі фрагментавання, якая была бы найкрашчая ў всіх сітуацыях. Выбор залежыць ад структуры документа, рэальных тыпаў запытанняў, ліміту затрымкі, тольерантнасі да вартасці індэксавання і прыметаў практычнага вікорыстоўвання. Тып запытання мае такое ж значэнне, як і тып документа. Адной і той жа набор правіл можа служыць для вузкіх пошукавых запытанняў, касаючыся мінімальной частоты перагляду, і для шырокіх запытанняў на адказ пра цэлую структуру, пры чым для гэтых запытанняў патрэбна разная ступень дзеярожнечы выкарыстоўваных дадзенняў. Калі вашы даны для ацэнкі паводзяцца толькі пра одны тып, найкрашчая стратэгія можа паспелаць неэфектыва ў рэальных умовах працы.
Прыбліжныя кансэпты:
- Еднакавы прозаічны тэкст, ранні пратэтап: фіксаваныя размеры з незначным перакрыцэнням.
- Чытаўкі і інструкцыі з чыстай структурой: рэкурсывнае або структурам-адаснованае фрагментаванне, пры чым іерархія зафіксавана ў метаданных.
- Дзяўны наратыў з нерэгулярным фарматаваннем: семантычнае фрагментаванне, калі дадатковыя вітраты прыносяць значны адказ.
Бенчмарк у замену на здогадкі
Прагляд калякоў канкрэтных фрагментаў і вывод пра тое, што яны выглядаюць разумна, дапамагае у адлучэнні бягаў, але гэта не ўскоўненае ацэнкаванне. Асалодны вопыт — чы рэальная стратэгія дапамагае прыстрою для пошуку аднаходзіць доказы, неабходныя для запытанняў, якія фактычна надаюць корыстувальнікі.
Створыце набор для адзьякнаравання, які пакрывае разныя патрабаванні: вузкі факт, зв’язанный з адной строчкай таблыцы, запіт на множыя доказы, які выкалекуець неабходнае нарабатанне плюс апісацыю працэсу, умовны запіт пра адвакцію і запіт на сынтэзу межаў разных роздзелаў. Працяпіце кожны запіт да ID-аў елементаў даных, якія трэба знайсці.
Метрыкі адзьякнаравання самыя по сабе недастатні. Зазначыце, насколькі велікі індэкс у пораўнанні з базовым размерам, якія ёсць вартасці інкапсулявання на дакумент, час індэксавання і адзьякнаравання, колькі токэнаў кантэксту на запіт, частка дуплікатаў, правільнасць адпаведзей і правільнасць цытатаў. Тры дадатковых балоў Recall@5 ёсць малае значэнне, калі індэкс зростае у чатыры разы, а рэзультаты заполняюцца майжэ ідэнтычнымі копіямі.
У тыповым корпусе правіл прыемным шаблонам ёсць тое, што рэкурзіўнае раздзеленне пераважае раздзеленне фіксаванага размеру на кальколькі пунктов за аднаковыя вітраты на індэксаванне, семантычнае часткаванне даўае ўжо большыя рэзультаты за незначны дадатковы косц, падход «род-дзець» паўышае рывень вярнага аднаходжэння ўсё больш за рахунак значныя адзінкі ў індэксе, а варыянт «праблемы плюс род-дзець» даходзіць да найвышэйшага рывня вярнага аднаходжэння, але за значна большыя вітаткі і складнасць. Кантэкстуальнае аднаходжэнне можа досягнуць падобных рэзультатаў за меншыя вітраты на індэксаванне, што можа падтрымаць выбор такога модэлю час аднаходжэння індэксу, а RAPTOR можа астаты за падходам «род-дзець» у вопытах з вузкімі фактамі, але пераважаць у сінтэзе. Лякуйце гэта як ілюстрацыю формы компромісаў, а не як фактычны рэзультат. Правы пункт працы залежыць ад патрабаванняў да точнасці, лімітаванняў па затрымкам, бюджэту на індэксаванне і ад таго, чы розраховваецца кожны дадатковы элемент яго складнасцю.
Не оптамізавайце толькі працэс аднаходжэння
Падзеймім, што сільная перакрыцанасць павышае показнік Recall@5, але пяць верхніх рэзультатаў цяпер складаюцца з чатырох практычна ідэнтычных аблакоў з адной клазулі, чыяму іншыя рэлевантныя часткі застаюцца за межамі дазволенага кантэксту. Адна метрыка павысілася, а сістэма пагорэла. Неабяжна ацэніць усю лінію — ад выкарыстоўвання інфармацыі, працэс пераранжавання і складання кантэксту да стварэння адпаведнай адпаведзі, спытваючы на кожным этапе, чыякі неабходныя доказы засталіся, чы не паўтарэнні займаюць корыстны прастор, чы адпаведзь правільная і падкрэплена доказамі, а таксама чы цітата вядома да правільнага джэрага і версіі.
У рэгулююцыяных сістэмах правільнасць цітатаў не ёсць дробнай дэталлю. Адпаведзь можа быць фактычна правільной, але базавацца на неправільной версіі правіла. Гэта таксама ёсць недастаткам у сарабітанні з правіламі, і гэта застаецца непазірным, калі толькі не будзе явна перапытка походжання цітатаў.
Архітэктура вырабоцтва
Ключовая змянена ў спосабе мышлення заключаецца у тым, што адульная сістэма керавання праектамі рэдка калі патрабуе аднаго універсальнага функцыянала для адгрупавання дадзеных. Яна патрабуе шар керавання, які надае кожны блок контэнту належной стратэгіі, зберагае метаданы пра спільную структуру всіх отрыманых частак і паставляе явныя звязкі назад да автантычнага крыніцы.
Для рэхібуслова працавання з адказамі правядзібны падход такі: наратыўныя часткі дзеляцца на структурныя або сэмантычныя часткі; ўжоўтканыя клазулі правіла ператвараюцца ў прапозыцыі, у якіх застаецца ўзростак; маленькія таблыцы кэрыруюцца цэлымі; большыя таблыцы дзеляцца на часткі рэядоў, у якіх вырашаецца месца заголовкаў; дыяграмы прадаюцься з опісамі, створанымі мадэлямі візуяў; а запісы JSON раздзеляюцца за дапамогою об’ектаў. Кожная частка, незалежна ад тыпу, несе тыя ж ідэнтыфікаторы: ID дакумента, версія, ID узростка, частка, рэгіон і аднасць да вучорнага артыкула. Гэтае спакульнае наследства мае такое ж значэнне, як і самыя часткі, адтолькі што ёно дазволяе павернуць рэяд таблыцы, клазулі чы працэсны опіс як доказ з адной часткі аднай версіі.
Праця з адказамі пра падпал водай
Пытанне ніколі не было ў тым, чы розмер 500 чы 800 токенав ёсць правільны. У выкладзе былі разныя віды доказаў. У параграфе было зазначана, што трэбае незалежная перапрацоўка. У табліцы было паказана, хто затверджуе дыяпазон колькасці. У дыяграме былі паказаны перакрыцця, якія выконваюцца перад адплатаю. У метаданых была вказана, якая версія і рэгіон прыменяюцца.
Якісна структура чакункавання прабачае кожны фрагмент у яго первісной структуры і фіксуе, што яны дзелюць адну частку. Гэта дае можлівасць выбору пад час выкарыстоўвання даных: запыткі на затверджэнне выкарыстоўваюць радок у табліцы, запыткі на перапрацоўку — клазу, запыткі пра працэс — апісанне дыяграмы, а складныя запыткі выкарыстоўваюць калькі супакояжых фрагментаў і розгледваюць ўсе яны ў меры іх спакойнага элемента. Гэта і ёсць розлік межы раздзелення тэксту і стварэння елементаў для выкарыстоўвання даных.
Парадакт, які выкалываецца, не ўскладнены фіксаваным размерам: спачатку сэмантычны, потым прапозіцыйны, пры чым выграўвае найсвежэйшая ідэя. Лепш: выучыце выхідны матэрыял, выучыце запіты, захаваце існуючую структуру, выберыце розмір гранулярнасці адзысквання, восстановіце нехватную кантэксту, захаваце паходжанне, вымерыце адзысквання і адказы, і дадзіце сложнасць толькі там, дзе яна ўзмацнівае рэзультат.
Пасляпянны чэк-ліст пры індэксаванні
Перш чым фрагменты падаюць у працэс укладання, кожны з іх павінен адпавядаць трым выклікам:
- Можна адзыскваць. Дастаткова спецыфічны, каб падходзіў да значных запітоў, але не настолькі шырокі, каб падходзіў да усяго без адбору.
- Можна інтэрпрэтаваць. Мае дастатковы кантэкст, каб сам падтрымваць свой значэння, або мае надзеяны спосаб вярнуць гэты кантэкст праз адзыскванне роднай інформацыі.
Калі хоць адна з гэтых элементаў відсутня, шар фрагментавання перадае сваія проблэмы на этапы выкарыстоўвання, пераранжавання, складання кантэксту і створэння рэзультата. Хранілішча вектароў з радасцю індэксуюць некалітэчныя елементы, API для эмбеддзінга вяртае вектар без жаданых прытворстваў, а мадэль можа напісаць вярны ўказвіт на адной з гэтых падстав, пры чым нічога не паказвае, што прэдставленне ў правільным стане. Найдэшавейша мера — паспрабаваць вылечыць зламаны елемент прытаму, пакалі ён не стаў часткай эмбеддзінгу.
Перад запускам таксама неабходна спланаваць логгіраванне, карыстоўванне секрэтнымі данымі і налашчэннямі, стварэнне дэтэрміністычных ID, версіяванне модэляў і запрошэнняў, адстэжэнне лягінгу фрагментаў, кантроль даступу, наборы даных для ацэнкі, калектывнае управліне жыццёвым цыклам індэксаў, а таксама монітарынг якасці выкарыстоўвання, часу адпаведзення і віткоў.