Выбар архітэктуры RAG: наіўны, пашыраны, CRAG, GraphRAG, агентны
Практычнае параўнанне шасці архітэктур RAG з плюсамі, мінусамі і сцэнарыямі, чатырохкрокавы шлях выбару і выпадкі, калі RAG — няправільны інструмент.
Крыніцы: How to Design a Production-Ready RAG System (Architecture + Tradeoffs)
Чаму RAG, і чаму адна конструкцыя недастыць
АІ-агенты ўстойкі, але яны ствараюць халюцынаціі і не можу самі аналізаваць спецыялізаваныя чы рэальнага часу даныя. Тэхнологія Retrieval-Augmented Generation (RAG) рашае якіясць з гэтых проблем, базуючы адпаведныя адказы агента на перакананай базе знанняў. Але RAG – гэта не адна-едынственная схема. Звычны пошук вектараў дастатні для простаг бота з часта задаваемымі запытаннямі, але ён паспелвае па-вялікім чыну пад час складнага аналізу чы логічных выводаў, якія абходзяць многія дакументы. У наступным раздэле практычна паказаны распалоховыя архітэктуры RAG і спосабы выбору прыдатнай з іх па тэрэтарыям задачы.
Што робіць RAG
RAG запошчае дакументы з базы знанняў і выкарыстоўвае іх для стварэння болей рэлевантных адказаў. Ніжэйшыя схематыкі паказваюць прайсупутак з хранення дакументаў праз пошук вектараў да стварэння адказаў за дапамогою LLM.
Асалідная ідэя — спалучэнне процэсу адзыскання інфармацыі, які на рэскрыні выглядае як пераход ад сховішча да адзыскання, з генератыўскім ІІ. Даўленне рэлевантнага кантэксту ў запіт прымушвае мовны мадэль застаўацца на звязку з рэальной інфармацыяй. Яна можа за секунды прасканаваць сторункі матэрыялу, спецыялізаванага для певнай галіны, таму LLM можа точна і шыбка адпаведаць на запыт корыстніка.
Тыповы процэс выканання складаецца з двух фаз. Офлайн-фаза прымае неапранутыя даны і падготавлівае іх як структураваныя, якія можна адзыскваць. Онлайн-фаза адзысквае рэлевантныя даны і адпаведае на запыт. Варта дадаць і трэцю фазу — гэта цыкл зворотнага звязку, у яком адзысканы кантэкст перацэнюецца знову і знову.
Фаза 1: прыемка даных
У першай фазе неапранутыя файлы ператвараюцца на структураваныя, якія можна адзыскваць, запісы ў базе дадзэных:
- З’явіць даныя з такіх джэраў, як PDF, Notion, SQL і Slack, за дапамогою інструментаў уродзе LlamaIndex або LangChain.
- Адчыстыць непатрэбныя элементы, такія як загаловкі, падзагаловкі і тэгі HTML.
- Разбіць дужыя дакументы на значаменныя часткі, напрыклад, по 500 слоў кожная. Занадта вялікія часткі плутаюць мадэль, а занадта маленькія втрачаюць кантэкст.
- Укладзіць кожную частку за дапамогою модэлі укладання (напрыклад,
text-embedding-3-smallад OpenAI), каб перакануць тэкст у вектары. - Стварыць індэкс вектараў у базе дадзенаў вектараў, такой як Pinecone або Chroma, што дазволяе выпрацавваць сэмантычны пошук.
Фаза 2: выкарыстоўванне і стварэнне
Калі корыстнік задае запыт, усё гэта выканана за мілісекунды:
- Трансфармацыя запытку. Сістэма ператварае запытку, напрыклад "Як мне скасаваць пароль?", у вектар, які ствараецца за дапамою таго ж модэлю эмбедынгу, які вікорыстоўваўся на 1-й фазе.
- Пошук. Сістэма шукае ў базе дадзеных вектараў 3-5 фрагментаў, якія матэматычна як можна бліжэй да запытку.
- Пераранжаванне. Модэль пераранжавання па-другі раз пераглядае рэзультаты, каб найболей прыдатны варыянт апынуўся на першай пазіцыі.
- Адгэнераванне. Знайдзеныя фрагменты ўкладаюцца ў запрошэнне (прампт) для LLM. Тыповае запрошэнне паведамляе модэлю, што ён ёсць корыстным асістэнтам, дае яму фрагменты як кантэкст, а пасля ставіць запытку пра скасаванне пароля.
- Генераванне. LLM чытае прампт разам з кантэкстам і піша адпаведзь, якая базуецца выключна на тым, што ям было дана.
Фаза 3: адзыв
Рэзультаты адчынення дакументаў трэба сталякі гледзець, каб запобiec галюцынацыям. Ацэнка паказвае, чы рашэнне дзе-нейкі часам базавалася на кантэксце, а спазірнасць адзначае, які самэ частака спаканула некорэктнае рашэнне. Гэтыя даны вяртаюцца і служаюць для выправлення стратэгіі разбівання на частакі з Першага этапу.
Інструменты па этапам
Інструменты RAG являюцца базовымі элементамі, якія спаўнаюць звязак межа вашымі дадзеннямі і мовным модэлем, і яны класіфікуюцца па стадзіях працэса, якія яны адпаведна адрабатваюць. Правы выбор залежыць ад таго, на якім этапе вы працуеце.
У табліцы тэхналогіі RAG сортаваны па стадзіях працэса.
Чы неабходны вектарны база дадзенняў?
Не абсалютна патэнцыя. Для стварэння RAG не ўсё час неабходны спецыяльны сховыш вектараў, і існуюць два простыяя спосабы. За дапамогою падходу без базы дадзенаў калькі дакументаў дзелююцца на часткі і зберагаюцца ў RAM. Гэта шырока, безкоштовна і не трэба нічога насталяваць, але памяць чыстаецца пасля перзапуску, а вялікія дакументы працуюць медленна. Традыцыяны падход з базай дадзенаў зберагае часткі тэксту ў такім програмнаму забезпечэнні, як PostgreSQL, і выканае пошук за ключоўымі словамі на адной з правіл. Гэты спосаб добра справляецца з унікальнымі фразамі, такімі як імя чалавека або ID, але не мае сэмантычнага розумеўння: корыстнік, які запытаеся пра „ссавцоў“, не знайдзе дакумент, у яком проста напісана „сёні“.
Спарэння шасці архітэктураў
Няма ўніверсальнага рашэння, якое падходзіць у всіх сітуацыях. Дзеяныя задачы выклікаюць патрэбу ў шырозе і простасці, іншыя — у глыбокай аналізе, колькіх джэрэлах інфармацыі чыста нетэкстовых дадзеннях, такіх як адпраўкі чыста графіках. Шэсьць основных падходаў падкрываюць большасць патрэб: Naive RAG, Advanced RAG, Modular RAG, Corrective RAG (CRAG), GraphRAG і Agentic RAG.
Naive RAG
У простай форме дакументы выбіраюцца на аднойчынку з запітам і перадаюцца модэлю без жадных налагоджэнняў.
На дыяграме паказана простая метода паўтарэння вектараў top-K. Запіт ператвараецца на вектар, найболей схожыя фрагменты беруцца з базы дадзеных вектараў і перадаюцца LLM. Пошук ўжо ў сэмантычным сэнсе, а складнасць нізкая.
- Адрозніцы: гэты падход даўа найшырэйшыя адказы і мае найменшыя выкладкі, яго лёгка ўстановіць за дапамогою бібліятэкаў уродзімых LangChain чыста LlamaIndex, і ён падходзіць для базовага выкарыстоўвання фактов з чыстых дакументаў.
- Слабасці: нерэлевантныя фрагменты можаць ствараць шум, які плутае LLM; ён мае труднасці з сложнымі або багатокаментнарамі запытамі, і не можа сам сабе пасправіць, таму неправільна падбірка дадзеных ператвараецца на халюцынаваны адказ.
- Найбольш падходзіць для: простых запытаў і адказоў на маленькіх, чыстых наборах дадзеных, такіх як запытанні і адказы ў асобістых дакументах, часта задаваемыя запытанні ў корпорацыях і простыя прылады для чату з дакументамі.
Развітыя тэхнікі RAG
У гэтым варыянцы додаецца логіка, такая як маршрутызацыя запытаў і перэранків пасля падбіркі дадзеных, для падвышэння точнасці.
На рысунке паказана трансформацыя запытаў пры яго падбірцы і перэранків пасля яе. Перад падбіркай запыт перапісываецца, ўбачлівейшы. Пасля падбіркі рэзультаты ранкуюцца і пераканальваюцца, каб створаны адказ быў як магчыма рэлевантным і точным. Пошук ўжоўвае гібрыдны падход (вектары плюс ключавыя словы) з перэранківамі, а ступень сложнасці — сярэдняя.
- Адрэсныя моменты: ён лепша справляецца з складнымі запытамі, выбірае падходы, якія падыходзяць для разных сітуацыяў, і дае большы контроль над процэсам стварэння адпаведных рэсультатаў.
- Слабыя моменты: паўтарны ранжыраваньне прызводзіць да затрымакаў, колькісць вызоў модэлю за адны запыт падымае вартасці, трэба стагнараваць больш элементаў, а таксама компаненты патрэбуе налаштавання, каб працавалі эфектыва разам.
- Найбольш падходзіць для: сістэм з высокай точнасцю, дзе памылкі непрыемныя, напрыклад, професійных баз знанняў і ботаў для падтрымкі кліянтаў.
Modular RAG
Modular RAG выкарыстоўвае структуру тыпу «падключы і працуй», у якой аддзельныя модулі адпавядаюць за разныя часткі рабочага працэсу.
Акцыяваныя складовыя элементы включаюць модулі пошуку і памяці. Такое раздзелэнне сістэмы значыць, што кожную частку можна налаштаваць без неабяжнага перабудоввання рэшты: каманда можа заменіць іншы механізм пошуку, аднакоўшый ранжырацыю або іншы генератор. Пошук можа вестыцца з калькольных джэрэл, такіх як API, базы дадзеных і Інтэрнэт, і ўскладненасць вялікая, таму што для гэтага трэбуе сложны слой кіравання.
- Адрозніцы: кожны складовы элемент лёгка на налаштаванне, а часткі можна апградаваць або заменіць без пачатку з нуля.
- Слабасці: вартасць наладкі і архітэктурная ускладненасць вельмі вялікія, і для гэтага трэбуе падготовчая планавання; кіраванням павінна займацца сільная інжынерная каманда, а разныя версіі модуляў могу стварыць суперсцяг.
Корэктыўны RAG (CRAG)
CRAG створаны для падвойнай перапрацоўкі сваіх адпаведзей і ўсунення бяглых памылак.
Працэс включае етап ацэнкі з альтэрнатыўным пошукам у інтэрнэтэ. Мадэль-ацэнавальнік ставіць балы знайдзеным дакументам. Калі балы занадта нізкія, сістэма ігнаруе внутрашню базу дадзеных і запускае пошук у інтэрнэтэ, каб знайсці адпаведзь іншым спосабам (прыклад паказаны на схеме праз пунктаваныя лініі). Ён мае высокую складнасць завялікі з логічным розгалужэнням і выкорыстаннем зовнішніх API.
- Адрозніцы: паслабленыя рэзультаты пошуку усуваюцца прычым, як толькі ўжо не паказаліся корыстніку, а дадатковы слой кантролю якасці робіць адпаведзі болей надзеянымі і точнымі.
- Слабасці: альтэрнатыўны спосаб пошуку займае час і вычысковыя рэсурсы, а сістэма можа ціклічна працаваць, калі ніколі не будзе задоволена тым, што знаходзіць.
- Найбольш падходзяча для: працы з высокай адпаведальнасцю, дзе некорэктная або застарэлая інформацыя ўзятая не можа быць, напрыклад, у медычных і правовых даследаваннях.
GraphRAG
GraphRAG выкарыстоўвае граф знанняў, каб структураваць асоціяціі між фрагментамі інформацыі, і не паслугоўваецца толькі сэмантычным супаданнем тэкстаў.
На дыяграме паказана праходжанне па графе знанняў і стварэнне апূরкі груп. Пасля стварэння графа сістэма праходзіць па ўсіх яго элементах, шукаючы патэрны ў дадзэннях, а не толькі супаданні слоў, таму можа знайсці, як Аб’ект А асоціюецца з Аб’ектам Б, нават калі яны з’яўляюцца ў разных дакументах. Складнасць вельмі высока, адтолькі што неабходна стварыць і падтрымваць структураваную базу дадзэнняў графа.
Другій айконкл, взяты з ілюстрацыі Microsoft Research, паказвае граф знання, створаны LLM, на базе прыватнага набора дадзеных з адпаведным GPT-4 Turbo.
- Адрознікі: ён справляецца з складнымі запытаннямі, якія спаўнаюць кальколькі концэпцый, ухіляецца ад розрозненых адказоў і можа выявіць нечаканыя, але рэлевантныя рэзультаты, з’яеднваючы элементы.
- Слабасці: стварэнне графа выклікае значныя зусіллі, ён медленнейшы за стандартны RAG, а яго якосць обмежвае карыстнае выкананне, таму што ён настолькі ж хорашы, насколькі з’яеднанні ў графе.
- Найбольш падходзяча для: адразуўвання большога картынкі і багатапрыступовага аналізу разных джэрэл дадзеных, як у рэпортажнай журналістыцы, выявленні шахрайства чы розрабоце лекаў.
Agentic RAG
У такім дынамічным дзеянні AI-агент выступае як коордынатар, які плануе, запрашае і дапрацоўвае адказ.
У працэсе выканання задачы показана ролі коордынуючага агента, які выкарыстоўвае інструменты для багатыякхэтнага аналізу. У замест на таго, каб проста взяць першыя актуальныя дакументы, ён плануе падход, выбірае, што трэба дакладна расследаваць, і дзеяе за дапамою своіх інструментаў. Ён дзеліць задачу на меншыя крокі, шукае інфармацыю ў розных джэрэлах, пераканальваецца, чыя вынікі адпавядаюць запытку, і продовжае пошук, калі гэта не так.
- Адрозніцы: гэты падход падходзіць для багатыякхэтнага аналізу, дапамагае робіць розумныя выборы па часткі інфармацыі і можа павышыць якасць рэзультатаў у складных запытках.
- Слабасці: множыства пошукоў падвышаюць вартасць, а праца у стыле дакладнага аналізу спамячвае час адпаведзення.
- Найбольш падходзіць для: задач, якія выклікаюць патэматычны планаванне, такіх як разлагальны аналіз кейсаў у правовых даследаваннях або фінансавы аналіз, які спаўінае рынковыя даны з інформацыяй пра рэгуляцыі.
Чатырыкрокавы пацек прыняцця рашэння
Няма правіла, якое падае на ўсё, але спяльны падход дапамагае справі, якая трэба адрабатваць.
Дыяграма прабегу напамінайце архітэкторам, які варыянты RAG выбраць — Simple, Graph, Corrective чы Advanced — адпрацоўваючы абмежэнні задачы. Крокі:
Крок 1: тэст на складнасць. Чы ў адказе ёсць інфармацыя толькі ў аднам дакуменце? Яктось, No-DB RAG падходзіць для маленькіх дакументаў, а Simple RAG — для большых; ён быстрый, дышэўкі і лёгкі ў стварэнні.
Крок 2: тэст на зв’язкі. Чы для адпаведзення трэба разумець глыбокія іерархіі чы схованыя зв’язкі між калькама джэрэл дадзеных? Яктось, GraphRAG адображае гэтыя рэсурсы і зв’язкі, якія простая пошукавая функцыя не можа знайсці. Напрыклад, запытка «Калькі аддзела паўтараецца на палітыку А, і хто ў іх керавальніку?» вымагае з’едынэння дадзеных аддзелаў з дадзенымі пра працавальнікаў, а GraphRAG адображае іх як з’едыненыя ентытэты.
3-й крок – тэст надзяйнасці і логічных выводам. Чы можа сістэма сабліжыцца на памылку? Калі важна высока точнасць, Corrective RAG або Self-RAG дадаюць спецыяльны крок, які пераканальваецца, чы адзержаныя даныі дзейсна адпавядаюць на запыт, прычыму яны не падаюць да корыстніка. Калі такая задача таксама выклікае мнагакрокавыя логічныя выводы, Agentic RAG за дапамою своіх агентаў забезпечвае планаванне і самапрагненне.
4-й крок – баланс межаў карыстнасці і косту. Калі прыорытэтам являецца затрымка, найкрашча падходзіць простэйшая наладка, такая як No-DB, Naive або Simple RAG. Калі якосць мае большое значэнне чым косць, але не на абсалютна высокай тачнасці, як у 3-му кроце, Advanced RAG лепшая розумее намер запыту, чым простэйшыя рашэнні, але за цену большага часу апрацоўкі.
Калі не трэба вжываць RAG
RAG дазваляе большым мовным мадэлям даваць адпаведныя на кантэкст адказы на аднойчынных прыватных наборах дадзэнняў без пастойчыкага ператрэйнінгу. Тым не менш, ён не ўсюды ўжытковы, бясконечна калі задача выклікае глыбокія мысленнія, творчую сінтэзу чы ўмеласць у вікорыстоўванні мовных патэранаў, а не проста пошук у дакументах. У такіх сцэнарыях зазвычай лепей обходзіцца без яго:
- Шырокія мысленнія пра здарожлівасць, этычныя нюансы чы загальную людскую поведэнчасць. Неабходнае — апытнае вагі празатрэйнаванага модэлю.
- Запыткі пра загальныя веды пра рэчы, якія не змініліся за дзесяткі гадоў. Дастатні празатрэйнаваны модэль, а RAG толькі паўышае час адпаведзення, не паўышаючы точнасці.
- Творчая пісьменнасць з конкрэтным тонам і стылем. Крашчэ вікорыстоўваць празатрэйнаваныя модэлі чы ўжо ператрэйнаваныя версіі, таму што RAG ў такіх случаях ўсё ж зайвы.
У заканчальной табелі прагледваецца карыстоцэннасць модэляў RAG, модэляў пасляналадкі і модэляў для логічных выводам.