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

Каратаваныя RAG: Этапы працэйной лініі, ключовыя складовы і варіантны ландшафт

З'ясавайце, як працюе генераванне з падасламі рэтрыбуцыі ад початку да канца, якія складовыя патрэбны системе RAG, і як разныя варыянты RAG пасуюць у ўзеўмовай структурэ.

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

Крыніцы: 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 спаўнае два процесы:

  1. Пошук: аднаходжэнне релевантной інфармацыі ў зовнішнім источніку ведаў.
  2. Стварэнне: стварэння адпаведзення моделлю мовы на адной падставе знайдзенай інфармацыі.

Простаючы, 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 чыста власную логіку.
  • Модель для гэмбдінгу: ператварае текст у векторы, пры чым існуюць варыянты ад такіх прадаўцоў, як OpenAI, BGE чы Cohere.
  • База дадзеных вектораў: храніць і шукае гэмбды, напрыклад Qdrant, Pinecone, Chroma чы Weaviate.
  • LLM: пішае заканчоўны адказ, напрыклад GPT, Gemini, Claude, Llama чы Mistral.
  • Фрэймворк оркестрацыі: спаўяе ўсе элементы разам, напрыклад LangChain, LangGraph чы LlamaIndex.
  • Карта сям’і RAG

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

    Базовыя архітектуры

    • Naive RAG: простая лінейная схема, яка включае вбудовванне дадзейна, пошук і стварэння рэсультатаў.
    • Advanced RAG: додае крокі перед і пасля адзысквання інфармацыі, такія як перапісвачанне запиту і парадрэжаванне рэсультатаў.
    • Modular RAG: розглядае кожны этап як модуль, які можна змяніць чыстаць і перакомбінаваць.

    Стратэгіі адзысквання інфармацыі

    • Single-pass RAG: адзыскванне інфармацыі за адны запит.
    • Multi-Query RAG: стварае калькі варыянтаў запиту і адзысквае інфармацыю для кожнага з яных.
    • Iterative RAG: адзысквае інфармацыю, аналізуе яе, а потым зноў адзысквае.
    • Multi-Hop RAG: выконвае калькі цыклам адзысквання інфармацыі, калі для адпаведзення на запит неабходна ўзаемная связь калькі фактов.
    • Hybrid RAG: спалюе семантычны пошук вектараў з пошукам за ключоўымі словамі.
  • RAG Fusion: спаўнаё прычыненне рэзультатаў з кальколька запытаў у адну рангаваную ліста.
  • Self-Query 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 спаўнае навучаныя знанья моделі з можлівасцю пошуку ў зовнішніх сховішчах, таму адпаведзі можна адбіваць на аднойчынную і актуальную інфармацыю без паўторнага навучэння.
    • Ён зменшывае кантэкст адпаведзяў, якія не падтрымваюцца, але ніколі не гарантуе правильнасці; процесы выкарыстоўвання дадзэння, апавядамлення пра ўтрыманні і стварэнне адпаведзяў все ўсё можа зазнаць бягункі.
  • Кожная система RAG адресуе, выкарыстоўвае і стварае данні, і большасць проблем з якосцю выходзяць з выбораў пад час адрэсавання, такіх як парсінг, разбіўка на часткі і метаданы.
  • Ўжывайце той самы модель адбудовы вектараў для адрэсавання і запитоў, і зберагайце текст частакі і метаданы разам з кожным вектаром.
  • Варіянты RAG з іменамі ўскладнююць проект; дадавайце такіэтапы, як перапісваў або переранжаванне, толькі калі можаце вымерыць проблэму, якую яны рашаюць.
  • Адмацавайце процес выкарыстоўвання і адналожэння да реальных дадзеных окрасна ад заканчэннага адказу, іначы вы не знаеце, які этап трэба паспрабаваць падняць.