Каратаваныя RAG: Этапы працэйной лініі, ключовыя складовы і варіантны ландшафт
З'ясавайце, як працюе генераванне з падасламі рэтрыбуцыі ад початку да канца, якія складовыя патрэбны системе RAG, і як разныя варыянты RAG пасуюць у ўзеўмовай структурэ.
Крыніцы: The Complete Guide to RAG — Part 1: What It Is, Why It Exists & How It Works
Модель мовы може рацыянаць выключна эфектыва, але ўсё раван не ведае ніч пра вашу внутраню дакументацыю, змяны правілаў за минулы тыдзень чы пра заявку, паданую гадзіну таму. Тэхнологія Retrieval-augmented generation (RAG) усуне гэты прыемак, дазваляючы моделі шукаць неабходную інфармацыю ў зовнішнім источніку ведаў пры дадзенні адпаведзення. У гэтым кяле расказана пра проблемы, якія рашае RAG, і тыя, якія ён не рашае, пра тры этапы системы RAG, пра складовыя, якія патрэбны для ўтварэння такой системы, а таксама пра способы разумеўця дужо длігог списку варыянтав RAG.
RAG ў адной фразе
RAG спаўнае два процесы:
- Пошук: аднаходжэнне релевантной інфармацыі ў зовнішнім источніку ведаў.
- Стварэнне: стварэння адпаведзення моделлю мовы на адной падставе знайдзенай інфармацыі.
Простаючы, RAG дае модэлю бібліятэку для адказаў, якую той можа выкарыстоваць пры адпаведзе. Даследжэнняя, якія запрактыкавалі гэты падход, апісвалі яго як спаўненне параметрычнай памяці модэля, тое ўзрок, які зберагаецца ў його важынках пад час навучэння, з непараметрычной памяцю — зовнішнім індэксам, які можна шукаць і апдыраваць незалежна.
Прыемным адносленнем можа быць экзамен з відкрытым підручнікам:
- LLM — гэта студент.
- База знанняў — гэта підручнік.
- Система адналёгчэння — гэта студент, які перашыраеяць на правыя сторунки.
- Адпаведзенне — гэта адказ студента, напісаны з тыми сторункамі адкрытымі.
Модэль дапамагае логікай і плавным мовленнем; система адналёгчэння дапамагае фактамі, якія є значнымі для конкрэтнага запытання.
Проблемы, якія павінен рашыць RAG
Апоўнэжліванне толькі вбудованымі знаннямі модэлі сталкаецца з калькама практычных абмежэнняў. Для кожнага з іх RAG прыносіць частковая рашэння.
Знанні, якія заканчваюцца часам навучэння
Модэлі не можаць знаць нічога, што было даданае аб змененае пасля скарыстання дадзэнняў для навучэння. За дапамогою RAG актуальная інфармацыя знаходзіцца ў зовнішнім сховішчы, якое можна адкорэгаваць калі толькі пажадаеце, не чапаючы саму модэлі.
Непадтрымваныя аб выдуманыя адпаведзі
Модэлі іноды ствараюць тверджэння, якія ўсунутыя аб не маюць падстав. Адзінкі, якія былі атрыбуаваны, даюць модэлі конкрэтную базу для рашэння, што зменшае колькість непадтрымваных адпаведзяў. Але гэта не усувае іх: процес атрыбуавання можа вернуць некоректныя фрагменты, самыя джэрела можу быць нетачнымі, а модэлі все ўсё можа робіць тверджэння, якія не падтрымваюцца доказамі.
Асобістыя даны, якія модель ніколі не бачыла
Універсальная модель не мае доступу да внутрашняях дасягаў вашай організацыі, ексклюзівнага коду чы асобістых знаёмасцей. RAG дазволяе прыкладнаму праграме адсылацца да автарызаваных асобістых джэрел пад час запытку, без парадзейвання модэлі на гэтыя даны. Контроль дасягу ўсё ж мае значэнне: прыстрой для выкарыстання знаёмасцей должен вярнуць толькі тое, што нынешнему корыстніку разрэшана чытаць.
Інфармацыя, якая часта змінюецца
Палітыкі, тэхнічная документацыя да продуктав і внутрашняяя записі постаўляюцься ў стане постаўленых змян. Дадаванне чы адкорэктаванне елементаў у індексе выкарыстання знаёмасцей ёсць значна дышэўней і быстрей, чым парадзейвання мовнай модэлі ў кожны раз, калі ў чымсь зміняецца.
Дасягі, якія занадта великія, каб адправіць ўсе разам
Укладанне цэлых дасягаў у кожны запыт вядзе да марнавання контэксту і грошаў. RAG адправляе толькі стосунавыя часткі базы знаёмасцей, што дапамагае заставіць запыткі фокусаванымі і меншымі.
Шумы з нерелевантнага контэксту
Занадта велика колькасць слабая спраўязаных матэрыялаў ускладнюе модэлю знаходжыць важлівыя доказы. Фільтраўванне, пераранжаванне і стысненне контэксту існуюць для паднятка якосці таго, што ў канечнай часе прабывае да модэля.
RAG павышае точнасць і зменшае частоту галюцинацыяў, але не гарантуе точных чы са ўсіма галюцинацыямі вільных адказаў. Яго трэба спрыяваць як інструмент надзеі, а не як доказ правильнасці.
Тры стадзіі системы RAG
На самай простай ступені кожная система RAG выконвае тры дзеяння: яна падготавлівае ведамасць, запошчае з яе і стварае на ўснове яе.
Стадзія 1: індэксаванне
Індэксаванне адбываецца перад тым, як корыстувач задае запит. Матэрыялы-джерелы, такія як PDF-файлы, веб-сторанкі, дасягнення чы рядкі базы дадзенаў, ўключаюць:
- завантажэнне ў систему,
- разбіўка на меншыя часткі,
Рэзультатам яе ёсць можлівасць пошуку інформацыі з вашых знаёмасцей. Канцэптуальна, вы ствараеце індекс для пошуку сярод своіх сабеў дадзэнняй.
Этап 2: адналёгчэнне
Калі прыходзіць запит:
- запит ператвараецца ў эмбеддынг за дапамою таго ж модэлю, які быў выкарыстоўваны пад час індексавання,
- у базе знаёмасцей адбываецца пошук суседніх вектароў,
- выбіраюцца найболей рэлевантныя фрагменты,
- неабавязковая фільтрацыя або переранжаванне падкрэпляюць выбіранне.
Праграма дзеяння ад запиту да кандыдатскіх фрагментоў выглядае так:
User Query
│
▼
[Embedding Model]
│
▼
[Query Vector]
│
▼
[Vector Database]
│
▼
[Relevant Chunks]
Важным якостям є тое, што запиты і дакументы знаходзяцца ў там самым векторным прасторе. Самэй гэтага модель укладання, якая викорыстоўваецца пад час запиту, должна адпавядаць той, якая викорыстоўваецца для стварэння індексу; сумешанне модэляў стварае векторы, якія не можна значэнча супаруваты.
Этап 3: генераванне
Выбраныя фрагменты сумашчаюцца з запитам пользователя ў прампт, і модель генеруе адпаведны адказ:
User Query
+
Retrieved Context
│
▼
[Prompt / Context]
│
▼
[LLM]
│
▼
Final Answer
Рэзультатны адказ базуецца на загальных можымасцях моделі і на конкрэтных доказах, якія беруцца з вашага источніка ведамасцей. Тое, як прампт представляе гэтыя доказы, напрыклад за дапамогою атрыбутаў істочніка, якія модель можа цітаваць, сильна вплывае на тое, насколькі адказ будзе вярна ўсем тым доказам.
Унутрь процесу стварэння індексу
Самэй тут і вяршыцца большая частка якосці системы RAG. Яе базовая структура:
Raw Data
│
▼
Document Loader
│
▼
Text Chunking
│
▼
Embedding Model
│
▼
Vector Database
Сырыя даны
Знання можа прыходзіць практычна з будзь-якага месца:
- PDF-файлы
- Веб-сайты
- Дасягінаванне
- Документы у формате Word
- Базы дадзэнняў
- API
- Внутршняе скарыстаўанне компаніі
Завантажувачы дакументаў
Завантажувач дакументаў чытае вучальны матэрыял і ператварае яго ў аднаковую структуру, якую можа обрабляць рэшта системы. Напрыклад, у LangChain завантажувачы маюць спяшчаную інтэрфейс, якая стварае об’екты Document, і ў яных можна выкорыстоўваць як load(), так і lazy_load(). Варіант lazy_load() выдавае дакументы по аднаму замест таго, каб усё было запісанае ў памяці, што мае значэнне для большых колекцыяў. LangChain і LlamaIndex — гэтыя два экасістэмы, з якіх большасць людзей пачынае свою працу.
Разбіўка на часткі
Большыя дакументы раздзеляюцца на менжэйшыя часткі, якія называюцца чанкамі, таму што адзысканне паводловай часткі дакумента зазвычай ўжоць карыснае, чым падачка всіго дакумента модэлю. Хорашы аналагія — ператварэнне кнігі на стакан картак, кожная з якіх паводзіцца пра адну ідею.
Размер чанкаў і ступень ўзаімнасупакошэння не маюць універсальна правильных значэнняў. Яны залежаць ад таго, як структураваны вашы дакументы, якія запиты вы чакаеце, які модэль умяшчання вы вжываеце і сколькі контэксту можаце сабралі пасля пераробкі. Чанкі, якія занадта маленькія, втрачаюць абаканую значыну; чанкі, якія занадта велікія, разбліжваюць сигнал ад таго ўсьмысловага рэчення, якое мела значэнне. Чырвоныя падробнейшыя інформацыі пра гэты компроміс, адзірніце раздзел пра чанкаванне, якае зберагае доказы.
Модэлі умяшчання
Кожны чакк ператвараецца ў embedding — спіс цэфраў, які выражае його значэнне:
"RAG retrieves relevant information"
↓
[0.24, 0.87, 0.11, 0.62, ...]
Embeddings дазволяюць системе вымерыць, насколькі супарадныя ўзе два фрагмента контэнту, і самэ гэта стоіць за семантычным пошукам і аднаходжэнням інфармацыі: тэксты з падобным значэнням апынуцца ў блізкай адстані ў вектарнам прасторе, нават якшо ў іх мало спільных слоў.
У сяродзе text-embedding-3 ад OpenAI маленькія моделі за замовчаннем вяртаюць 1536-вымерныя вектары, а большыя — 3072.
Обе моделі прыманяюць параметр dimensions, каб запрашаць меншыя вектары, жертвуючы часткай точнасці зарады меншага прыемлівання і быстрэйшаго пошуку. Спіс моделей зменяецца, таму паказвайце актуальныя варыянты ў дасведчэннях прадаўцы.
Вектарныя базы дадзеных
Embeddings храняцца ў вектарной базе дадзеных або вектарным індексе, створаным для шырокага пошуку супараднасці. Серед популярных варыянтаў є:
- Qdrant
- Pinecone
- Chroma
- Weaviate
- FAISS
Зберагучы запис, як правіла, храніцца не толькі вектар, але і сам текст у первісных фрагментах, а таксама метаданы — напрыклад, джерело, номер стороніцы, ID дасягу чыста часавы меткі. Саме этыя метаданы пазней дазваляюць фільтруваць інфармацыю па дате чыста типе дасягу, а таксама вказваць, звідкі прыйшала адпаведная вясь.
Компоненты прыкладнага праграмування RAG
Якща аднацца всё гэта, типовая прыкладная праграма RAG складаецца з шасцях видоў компонентав:
- Джерела інформацыі: падаюць неабходную інфармацыю — напрыклад, PDF-файлы, веб-сайты, SQL-базы дасягу чыста API.
- Раздзелвач тэксту: роздзеляе дасягі на працэсабельныя фрагменты, выкарыстоўваючы інструменты LangChain чыста власную логіку.
Карта сям’і RAG
Калі базовы процес стане зрозумелым, екасістэма іменаванных варыянтов можа здавацца перанасытанай. Не існуе адной канонічнай спісаў типаў RAG; статыі і тэхнічныя блогі вжываюць перакрываючыяся назвы для архітектураў, стратэгій выкарыстоўвання дадзеных, тэхнік контексту, адказвальных джероў і спецыялізаваных систем. Групаванне іх па тым, што яны зменяюць, дапамагае краща ўсё разумець.
Базовыя архітектуры
- Naive RAG: простая лінейная схема, яка включае вбудовванне дадзейна, пошук і стварэння рэсультатаў.
- Advanced RAG: додае крокі перед і пасля адзысквання інфармацыі, такія як перапісвачанне запиту і парадрэжаванне рэсультатаў.
- Modular RAG: розглядае кожны этап як модуль, які можна змяніць чыстаць і перакомбінаваць.
Стратэгіі адзысквання інфармацыі
- Single-pass RAG: адзыскванне інфармацыі за адны запит.
- Multi-Query RAG: стварае калькі варыянтаў запиту і адзысквае інфармацыю для кожнага з яных.
- Iterative RAG: адзысквае інфармацыю, аналізуе яе, а потым зноў адзысквае.
- Multi-Hop RAG: выконвае калькі цыклам адзысквання інфармацыі, калі для адпаведзення на запит неабходна ўзаемная связь калькі фактов.
- Hybrid RAG: спалюе семантычны пошук вектараў з пошукам за ключоўымі словамі.
Падходы да контэксту і чакання
- Parent-Child RAG: падбірае маленькія чакання, але вяртае ўсю большую родную частку.
- Sentence Window RAG: адзысквае аднае рэчыце паўз яе суседнія элементы.
- Hierarchical RAG: адбывае пошук па разным роўнем, ад дакументаў да аблак.
- Contextual RAG: адзысквае чакання, абагачыўшы іх контэкстам на роўні дакумента, прычым перад тым як іх уключыць.
- RAPTOR: стварае дрэва рекурзіўных падсумаванняў і адзысквае інфармацыю па ўсіх яго роўнях.
Самакорэкцыйныя і адаптывальныя падходы
- Self-RAG: модель аналізуе, чыяму патрэбны данні для адгутавання і чыяму яе рэзультат падтрымліваецца.
- Corrective RAG (CRAG): ацэнюе адгутаваныя рэзультаты і запускае практыку адгутавання, калі яны ў слабым стане.
- Adaptive RAG: направляе кожны запит да стратэгіі, якая падходзіць яго складнасці.
- Feedback-based RAG: выкарыстоўвае адзывы корыстувальніка або ацэнавача, каб з часам падняць якосць адгутавання.
Агентныя падходы
- Agentic RAG
- Multi-Hop Agentic RAG
- Multi-Agent RAG
У такіх падходах агент сам адлучае, калі і дзе адгутаваць данні, можліва, за дапамою калькольнікаў аб саўместна працюючых агентоў, у замен на выкарыстоўванне фіксаванага алгорытму.
Варіянты, якія визначаесяць даўальнікам знаёмых
Калькі лозунакаў проста описваюць, звядзе камені ўстанавлічэння практык. Vector RAG шукае ў індэксе эмбедінгаў, тады як SQL RAG і Table RAG запытваюць реляцыйныя або табулярныя даны, часта праз тое, што модэль запішае сам запыт. GraphRAG адбierа даны з графа ведамасцяў пра аб’екты і ўзаемныя звязкі, Web або Search RAG атрымвае актуальныя рэзультаты з індэкса пошуку, а Knowledge-Base RAG выкарыстоўвае спецыяльна падготавлены корпус, такі як цэнтр дапамогі або вікі.
Мультимодальныя варыянты
Іншыя пазначэння адносуюцца да типу контэнту, які адбierаецца. Text RAG — гэта стандартны варыянт; Image, Video і Audio RAG адбierаюць даны з гэтых медыя-форматаў, зазвычай праз эмбедінгі аб транскрыпцыі, а Multimodal RAG — гэта загальны тэрмін для систем, якія спалучаюць калькі з гэтых падходаў.
Спецыялізаваныя варыянты
Пашчэтныя групы систем назваў, налаштаваных для пэўных трэбаваń: адна галузь, такая як право чы медыцына (спецыфічная для домэну), запытанні, якія залежнаць ад часу, калі важліва свежасць (тэмпаральныя), адказы, прыстосаваныя да конкрэтнага пользователя (персоналізаваныя), запытанні і выкладчыкі на кальколькох мовах (багатаязычныя), чуліватыя даны, якія павінны застацца захаванымі (захаванне прыватнасці), а таксама індэксы, распадзеленыя між кальколькома сайтамі чы арганізацыямі (распадзеленыя чы федэрацыйныя).
Этыя групы свабодна перакрываюцца. Рэальная працоўная система можа быть гібрыдной, агентскай і спецыфічной для домэну ўодночас; абозначэнні описваюць выборы пад час проектавання, а не взаімна выключальныя продукты.
Ад простых да розвітых пайплайнаў
Найболей просты пайплайн — это працоўная лінія:
Query
↓
Embedding
↓
Vector Search
↓
Top-K Chunks
↓
LLM
↓
Answer
Гэта тое, што люди зазвычай маюць на увазе під наўатным або базавым RAG: уключыць запит, выбраць колькісна найбліжэйшыя фрагменты і перадаць іх модэлю. Це разумная першая версія, якая частаўкай ўстаткуецца для маленьких, чыстых корпусаў.
Болей зрэлыя системы дадаюць дапаможныя этапы праз процес выкарыстоўвання інфармацыі:
User Query
↓
Query Rewriting
↓
Query Routing
↓
Hybrid Retrieval
↓
Metadata Filtering
↓
Reranking
↓
Context Compression
↓
LLM
↓
Answer
Кожны этап спрямованы на конкрэтную слабасць. Перапісва запыту выправляе нечыстыя або розмовныя запиты, направленне прызначае запыт да правильнага індэксу або інструмента, гібрыдны спосаб выкарыстоўвання інфармацыі ловіць точныя тэрміны, якія працоўнік вектарнага пошуку працягвае, фільтраўванне метаданных адключае дакументы, якія не падпадаюць пад заданы дыапазон, пераранжаванне перакладвае кандыдатаў з большай точнасю за дапамогою модэлю, а стысненне скарочвае тое, што застаўся, каб падышло під бюджет. Дадавайце іх толькі тады, калі можаце вымерыць проблему, яку яны рашаюць; сложнасць сама па сабе не ёсць метай.
Чаму RAG — гэта не проста вектарная база дадзеных плюс LLM
Шырока падзея среди пачаткікаў — гадка, што RAG значыць «зберагчы эмбеддінгі, запытваць іх, вызваць модель». У рэальных умовах працы процес здаецца больш такім:
Document Processing
↓
Chunking
↓
Metadata
↓
Embedding
↓
Vector / Keyword Retrieval
↓
Filtering
↓
Reranking
↓
Context Compression
↓
Prompt Construction
↓
LLM
↓
Validation
↓
Final Answer
Кожны крок у гэтым ланцугу можа пагародзіць фінальны адказ: некоректная парсацыя, недбалая разбівка на часткі, відсутнае метааданыя, неадэкватная модель эмбеддінга, слабая фільтрацыя або паслабна складзена інструкція. Самэй таго падключэнне вектарнага сховішча да моделі — толькі пачатак. Як бы ні была здольная модель, яна не можа полным чынам компенсаваць тое, што яй даюць некоректную інфармацыю.
Як адгуквацься пра систему RAG
Стварэнне адказа — гэта не ўсё. Хорашая система RAG выкарыстоўвае практычна корыстную інфармацыю і стварае адказ, які даследна падтрымваецца знайдзенымі доказамі. Размеры, якія варта мерыць:
- Якасць выкарыстоўвання інфармацыі: чы рэальна вяртаюцца стосунаваныя дакументы або часткі?
Адзельнае вимераванне кожнага этапу дазволяе діагноставаць неудачы; падход ацэнкі RAG па этапам неудач паказвае, як гэта структураваць.
Куды працаваць далей
Наступным аспектам глыбіні ўзроўнювання являецца сам шлях індэксавання: як PDF ператвараецца на текст, разліка межы завантажэння, аналізу і чысткавання, компромісы межы фрагментавання на адповідныя часткі па знакам, токенам, рекурзыўным методам, сэмантичным крітэрам і структурным аспектам, што на самае працоўвае перакрыцча фрагментавання, як следуець спроектаваць метаданы, як текст ператвараецца на вектор, у чым разлік межы косай схожасці, скалярнага добутку і евклідовай аддаленасці, а таксама як база дадзэння вектораў адбывае пошук схожасці у великых масштабах.
Ключовыя выводы
- RAG спаўнае навучаныя знанья моделі з можлівасцю пошуку ў зовнішніх сховішчах, таму адпаведзі можна адбіваць на аднойчынную і актуальную інфармацыю без паўторнага навучэння.
- Ён зменшывае кантэкст адпаведзяў, якія не падтрымваюцца, але ніколі не гарантуе правильнасці; процесы выкарыстоўвання дадзэння, апавядамлення пра ўтрыманні і стварэнне адпаведзяў все ўсё можа зазнаць бягункі.