Галоўная / Артыкулы / РАГ — што гэта: як системы AI адзначаюць новыя знанні за патрабавам

РАГ — што гэта: як системы AI адзначаюць новыя знанні за патрабавам

Дазнаецеся, як працюе метод Retrieval-Augmented Generation — ад чакання і эмбедынгаў да пошуку вектараў, каб моделі ШІ моглі адпавядаць на запытанні без паўторнага навучэння.

2776 слоў

Уявіце сабе дапаможніка ШІ, які ўжо давно завершыў свою падготовку.

Вы запытваеце яго:

«Што ў этым дасягу, які я ўжо заваносзу?»

Модель ніколі не сталкалася з гэтым файлам падчас сваей падготовкі.

То як жа ён можа адпаведзець?

Адна з адпаведзей — гэта тэхніка пад назвай Retrieval-Augmented Generation, якую часта скрацваюць до RAG.

RAG дазволяе системе ШІ запрашваць релевантны матэрыял з зовнішніх джерел і включаць гэты матэрыял у адпаведзь, якую ён стварае.

Ось і ў чым цікавасць:

Модель не павінна перепадготавляцца ў кожны раз, калі з’яўляецца новая інфармацыя.

Паглядзім, як гэта працюе.

Проблема: ШІ не можа знаваць усё

Моделі большых языков выучаюцься на тых данных, на якіяях яны былі навучаны.

Спроставленая версія гэтага процесу выглядае так:

Training Data
     ↓
Model Training
     ↓
Model Parameters
     ↓
AI Model
     ↓
Generate Answers

Калі навчанне завершыцца, у моделі няма автаматычнага спосабу абсорбаваць новыя дакументы, веб-сайты, корпоратывныя звіты чы аднойчыны файлы, якія з’являюцца пасля таго.

Падазром, вы сьегодні завершылі навчанне моделі.

А завтра хтось створыць:

new_report.pdf

Гэты PDF проста не існаваў калі модель была навучаная.

Тады як модель могла бы адпаведаць:

"Калі тры главныя нарадкі ў гэтым звіце?"

Гэта самэ ўсё та праслойка, якую створана RAG, каб запалаваць.

Што такое RAG?

RAG = Retrieval-Augmented Generation

Сама назва пояснюе механізм:

  • Retrieval → аднаходжэнне релевантных дакументаў
  • Расшырэнне → увядзенне гэтых дакументаў у контекст моделі
  • Генераванне → стварэнне адпаведнай адпаведзі на ўсё гэта
  • У працоўным рэжыме не так, як:

    Question
       ↓
    LLM
       ↓
    Answer
    

    возможна стварыць такую лінію обробкі:

    Question
       ↓
    Retrieve relevant information
       ↓
    Add information to context
       ↓
    LLM
       ↓
    Answer
    

    Такая змяна архітектуры можа маты значны эфект.

    RAG проты традыцыйнага AI

    Без RAG процес ўсё проста:

    ┌──────────────┐
    Question ───→│     LLM      │
                 └──────┬───────┘
                        ↓
                     Answer
    

    З ужываннем RAG:

    ┌─────────────────┐
                        │ External Data   │
                        │ PDFs / Docs     │
                        │ Database / Web  │
                        └────────┬────────┘
                                 ↓
    Question → Retrieval → Relevant Context
                                 ↓
                               LLM
                                 ↓
                              Answer
    

    Модэлі больш не трэба запамятаваць усё заздалегідь.

    У замяну ёна може з’являць неабходныя факты за патрэбам.

    Як на самай працоўцы функціонуе RAG?

    Стандартная наладка RAG праходзіць через кальколькі разных стадзій:

    Documents
       ↓
    Document Processing
       ↓
    Chunking
       ↓
    Embeddings
       ↓
    Vector Database
       ↓
         ← User Question
       ↓
    Query Embedding
       ↓
    Similarity Search
       ↓
    Relevant Chunks
       ↓
    LLM
       ↓
    Final Answer
    

    Разберамо кожную з іх.

    Складзіце свае даны

    Пачатковай пунктам ёсць збір выхадных матэрыялаў. Гэта можа включаць:

    • Файлы у формате PDF
    • Дасягі, створаныя у Word
    • Старонкі, запрашаныя з веб-сайтаў
    • Навуковыя чырыны або даследжэння
    • Внутршнія дакументы компаніі
    • Інструкцыі, якія описваюць продукт
    • Файлы з звычайным тэкстам
    • Дакументы, якія зберагаюцца ў базе дадзеных
    • Энтры з базы ведаў

    Як прыклад, уявіце папку, якая мае:

    company_policy.pdf
    research_paper.pdf
    employee_handbook.pdf
    product_manual.pdf
    

    Працэс RAG можа прыймаць і обрабоўваць усе гэта.

    Разбіўка дасягоў на часткі

    Падача цэлага дасягу модэлю за раз зазвычай не є практычной чераз обмежэння па розмеру.

    Самэльга дасягі разбіваюцца на менейшыя елементы, якія называюцца часткамі.

    Ось простая ілюстрацыя:

    Document
    │
    ├── Chunk 1
    ├── Chunk 2
    ├── Chunk 3
    ├── Chunk 4
    ├── Chunk 5
    └── ...
    

    Уявіце дасяг з 100 старонак, які мае калькі тысяча рэчэй.

    У замест на сканаванне всіго тэксту за кожны запит, можна разбіць яго на больш адмініструемыя часткі:

    Chunk 1 → Introduction
    Chunk 2 → Architecture
    Chunk 3 → Security
    Chunk 4 → Performance
    Chunk 5 → Limitations
    

    Спосаб разбівання тэксту залежыць ад характару кантэнту і таго, што вы створаеце.

    Канвертаванне тэксту ў эмбеддынгі

    Сюды ўсё становіцца справжна цікавым.

    Комп’ютеры не можуць разумець значэнне тэксту так, як людзі, прынеймна не натывна.

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

    Разглядзім гэты прыклад:

    "Machine learning is a branch of AI"
                 ↓
            Embedding Model
                 ↓
          [0.21, -0.14, 0.73, ...]
    

    І другое рэчы:

    "Artificial intelligence includes machine learning"
                 ↓
          [0.19, -0.11, 0.70, ...]
    

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

    У простай візуалізацыі:

    AI
                ●
               / \
              /   \
         ML ●       ● Robotics
            \
             \
           Cooking ●
    

    Мета не ў тым, каб знайсці буквальнае перакрыцча словаў.

    У замест на гэта мета — адзначыць семантычную супаднеча — близасць у значэнні.

    Што такое семантычны пошук?

    Традыцыйны пошукавач на ключоўкі прыйме запит на кантэкст:

    "car"

    і будзе шукаць дакументы, якія буквальна маюць слова car.

    Семантычны ж пошук прагне зрозумець, што на самай працоўцы мае на увазе запит.

    Напрыклад, запіт на кантэкст:

    "Як электрычныя аўтамабілі зберагаюць энергію?"

    можа паказаць абзац, які пояснюе, што электрычныя аўтамабілі выкарыстоўваюць літій-іонныя элементы для зберагання электрычнага налягання.

    Фразаванне ў гэтых двух запітах практычна не перасягаецца, пры тым як супаднеча застаецца логічной.

    Гэта можліва таму, што эмбеддынгі кодуюць адносіны ў значэнні, а не толькі у спалучэнні.

    Зберагачыце эмбеддынгі ў базе дадзенаў вектараў

    Калі вже існуюць эмбеддынгі, ім трэба месца для зберагчыць.

    Гэтая ролю выпало на долю базы вектарных дадзеных, якая зберагчыць:

    Chunk
       +
    Embedding
       +
    Metadata
    

    Прыблізна структуравана так:

    Vector Database
    
    ID    Vector              Text
    -------------------------------------
    1     [0.21,...]          Chunk A
    2     [0.78,...]          Chunk B
    3     [0.34,...]          Chunk C
    4     [0.91,...]          Chunk D
    

    Калі хтось падае запит, система скануе гэтыя зберажаныя вектары, каб знайсці адпаведны контэкст.

    Сярод популярных інструментаў для такога вектарнага пошуку ёсць:

    • FAISS
    • pgvector
    • Pinecone
    • Weaviate
    • Milvus
    • Chroma

    Канкрэтная база дадзеных, яку вы выберазе, не ёсць галоўным фактарам.

    Важнае — гэта:

    Зберагчыце інфармацыю у такім формате, які дазволяе шырокі і значэнчны пошук.

    Пользователь задае запит

    Спадзяймося, ўжо корыстувач запіша:

    "Калія механізмы безпекі викорыстоўвае система?"

    Эты вопыт пасля таго ператвараецца ў свой сабэй эмбеддынг.

    User Question
          ↓
    Embedding Model
          ↓
    Query Vector
    

    У гэты момант система зберагчыць цыфровы «пярасток» вопыту.

    Пошук значучых адносоўных мяркаваў

    Эты вектар запытку пасля таго паўставляецца ў адносе да кожнага вектара, які ўжо знаходзіцца ў базе дадзенаў.

    У простыях словах:

    Query
                       ●
                      / \
                     /   \
                    ●     ●
               Relevant   Relevant
                 Chunk     Chunk
    
                        ●
                     Unrelated
    

    Выбіраюцца самыя близкія па адпаведнасці фрагменты.

    Напрыклад, якшчо:

    Question:
    "What security mechanisms does the system use?"
    

    Система можа вернуць:

    Retrieved:Chunk 17 → Authentication
    Chunk 42 → Encryption
    Chunk 51 → Access control
    

    Такім чынам, модэль тепер мае значучы, адносовы контекст для работы.

    Дадаць атрыманыя мяркавы ў запытку

    Калі знаходзяцца значучыя фрагменты, іх перадаюць LLM як контекст разам з первісным вопытом.

    Канцэптуальна структура запытку выглядае так:

    System Instructions
            +
    User Question
            +
    Retrieved Context
            ↓
           LLM
            ↓
         Answer
    

    Напрыклад:

    Context:
    
    "The system uses AES-GCM encryption
    for protecting stored data..."Question:"What encryption method does the
    system use?"
    

    З урахаваннем такой наладкі, модель можа адаптавацься з чымось на кшталт:

    "Система выкарыстоўвае шифраванне AES-GCM для захавання збераглых дадзеных."

    Такая адпаведзь базуецца на запрашаных дадзеных, а не толькі на тым, што модель засвоўвала пад час свайго первіснага навчання.

    І гэтае ўсё, што мае значэнне

    Сама модель не павінна буць выучылася чаго-небудзь стойкага з гэтай адмянкі.

    Яе внутрашні параметры застаюцца незменнымі.

    У замест на гэта, працэс выглядае так:

    New Information
          ↓
    External Knowledge Store
          ↓
    Retrieve When Needed
          ↓
    LLM Uses Context
          ↓
    Answer
    

    Гэтае раздзеленне між фіксаванымі знаннямі модэлі і зменным, зовнішнім джерелам знаń – гэта самае, што надае RAG яго сілы.

    RAG не значыць, што AI выучыў інфармацыю

    Гэтае размежаванне мае вельмі важлівое значэння, і легка ўпасть у памылку.

    Дазвольце запэўніцца, што вы заваносіце файл на кшталт:

    Project_Report.pdf
    

    і асистэнт пачынае адпавядаць на запытанні на яго аднойчынку.

    Гэта не значыць, што модель перманентна абсорбавала змест таго звярнення ў сваія параметры.

    У замест на гэта дакумент ёсць:

    Stored externally
           ↓
    Retrieved when relevant
           ↓
    Provided as context
           ↓
    Used to generate response
    

    Прыдатны аналагія — студэнт, які паводзіцца з учбовым падручнікам пад час екзамена.

    Студэнт не запамятавае кожную сторонку заздалегідь.

    У замест на гэта процес выглядае так:

    Задаюцца запытанні, пасля чаго шукаецца адпаведная сторонка, яя чытаецца, і тады даёцца адпаведна адпаведзь

    RAG паводзіцца прыбліжна так сама.

    RAG vs Fine-Tuning

    Гэта параджук часта выклікаецца, таму варта яго чытальна раз'ясніць.

    Fine-Tuning

    Fine-tuning на самай працоўкі вырашае параметры моделі, продаважываючы яе навчанне на спецыяльным наборах прыкладоў.

    Канцэптуальна:

    Base Model
       ↓
    Training Data
       ↓
    Fine-Tuning
       ↓
    Modified Model
    

    RAG

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

    Base Model
       +
    External Knowledge
       ↓
    Retrieval
       ↓
    Context
       ↓
    Answer
    

    Ось спроставаны прагляд па бокам:

    Менш прымусовы Магчыма, але з іншымі компромісамі Болей сильныя варыянты прыменення Вялікі потэнцыял
    Функцыя RAG Тонкая наладка
    Змены параметраў модэлі Зазвычай няма Є
    Внешняя інфармацыя Адлічны падход
    Адкантаванне інфармацыі Адкантаваць дакументы або індэкс Можа затрабаваць переналадку
    Прыватныя дакументы Корыстны
    Стыль або працэсаванне Абмежана
    Апавярэнне выхадных данаёў Не гарантавана за сваймі прыродам

    Этыя два методы не ўзаемна выключальныя; команды можаць іх сумаваць.

    Чы можа RAG выкарыстоўваць Інтэрнет?

    Так, ён можа.

    База знаёмасцей з зовнішніх источнікаў не павінна знаходзіцца толькі ў прыватным хранілышчы дакументаў.

    Система можа замест таго запрашваць інфармацыю з такіх источнікаў, як:

    Internet
       ↓
    Search Engine
       ↓
    Relevant Pages
       ↓
    LLM
       ↓
    Answer
    

    Гэта становіць ценнасць, калі запит залежыць ад актуальных фактов.

    Напрыклад:

    „Што змянілася ў пачатковай версіі гэтага програмнага забезпечэння?“

    У такім случае система можа спачатку запрашаць актуальную дакументацыю і выкарыстоўваць яе для формування адпаведзі.

    Пры тым самым, аднальне запрашання інфармацыі яшчэ не гарантуе точнасці.

    Істочнік, з якога запрашваецца інфармацыя, все рава павінен быць надзеяным і рэальна стосаваным да запита.

    RAG для вашых сабе дакументаў

    Адзін з найпрактычнейшых спосабаў выкарыстоўвання гэтага патэрану — можлівасць безпосередняя розмова з вашымі сабственнымі файламі.

    Уявіце папку, якая мае ў сабе каляго такога:

    Research/
    │
    ├── paper1.pdf
    ├── paper2.pdf
    ├── dataset_notes.pdf
    ├── experiment_results.pdf
    └── thesis.pdf
    

    Схема, адаснованая на RAG, дазволіць вам ставіць такія запытанні:

    "Каліясць былі выявлены як галоўныя абмежэнні ў эксперыментах?"

    Тады лянцюг обробкі выглядае так:

    Your Documents
          ↓
    Extract Text
          ↓
    Chunk Documents
          ↓
    Create Embeddings
          ↓
    Vector Database
          ↓
    Question
          ↓
    Semantic Search
          ↓
    Relevant Sections
          ↓
    LLM
          ↓
    Answer
    

    Самэ гэтая прычына зробіла RAG такім ценным для робочых процесаў у галузі даследжэнняў і систем знанняў на роўні падпрыемства.

    RAG у рэальных застосоўаннях

    Гэты патэран відзначаецца ў шырокай разнаўидносці систем.

    Адказванне на запытанні кляўэнтаў

    Customer Question
           ↓
    Product Documentation
           ↓
    Retrieve Relevant Section
           ↓
    AI
           ↓
    Response
    

    Адуцыя

    Student Question
           ↓
    Course Materials
           ↓
    Relevant Concepts
           ↓
    AI Tutor
           ↓
    Explanation
    

    Даследжэння

    Research Question
           ↓
    Research Papers
           ↓
    Relevant Sections
           ↓
    AI
           ↓
    Summary
    

    Корпаратыўныя знанні

    Employee Question
           ↓
    Internal Documents
           ↓
    Retrieve Policy
           ↓
    AI
           ↓
    Answer
    

    RAG не выключае цалкам галюцынацій

    Этот момент трэба падкресліць.

    Вы можаце прыпускать:

    «Якшто я викорыстоўваю RAG, штучны інтэлект ніколі не будзе ствараць халюцинацый».

    Гэта не зусім правда.

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

    Напрыклад:

    Bad Retrieval
         ↓
    Wrong Context
         ↓
    LLM
         ↓
    Wrong Answer
    

    Існуе ўсё таксама калькі іншых спосабоў, калі можу адбыцца пахыбка:

    • Фрагменты, якія былі раздзелены так, што абмежваецца ўсё іх значэнне
    • Актуальныя факты, якіх проста няма ў вачоўнай матэрыі
    • Адзначаныя часткі, якія на самай працэ нейкак не стосуюцца запытання
    • Дасягнутыя дакументы, якія ўжо застарэлі або некоректны
    • Вачоўныя файлы, якія з самага пачатку былі некоректныя або не падходзілі
    • Занадта многі контэкст, які заўсёды падаецца ў запытанне
    • Сама модэль, якая некоректна вырашае задачу, нават калі ў яе є хорашы вхідны данні

    З-за гэтаго адрабарны система RAG патрэбуе не толькі базу дадзеных у вектарнай формацыі.

    Ацэнка системы RAG

    Можна ацэніць процес работы системы RAG на калькольных роўнях.

    Якасць адзысквання інфармацыі

    Чы справа система адзыскала правильную інфармацыю?

    Question
       ↓
    Retrieved chunks
       ↓
    Are they relevant?
    

    Якасць генеравання

    Чы модэль дасправды належна выкарыстала адзысканую інфармацыю?

    Retrieved Context
           ↓
    Generated Answer
           ↓
    Is the answer supported?
    

    Якасць цэлага процесу

    Чы весь процес разам правільна адпавядае на запыт пользователя?

    Question
     ↓
    Retrieval
     ↓
    Context
     ↓
    Generation
     ↓
    Final Answer
    

    Система можа злучыцца, нават калі адпаведны LLM ўжо высокакваліфікаваны.

    Напрыклад:

    Якщо падчас адзысквання будзе выкарыстаны неправільны документ, нават дужа скарбна модэль можа даць неправільную адпаведзь.

    Матэматыка, якая стоіць за эмбеддінгамі

    Эмбеддінгі дазваляюць порэшанаваць фрагменты інфармацыі за дапамою матэматыкі.

    Адзін з шырока выкарыстоўваных показначыкаў сэроднечыня ёсць косінусовая сэроднечнасць.

    Для двух вектараў A і B косінусовая сэроднечнасць вычысляецца як скалярны добутак A і B, разделеный на добутак их модуляў.

    Раслічаныя значэння паказваюць, насколькі близкая ў направленні є супрацоўка двух вектараў.

    Проста кажучы:

    High similarity
          ↓
    Vectors point in similar directions
          ↓
    Likely related meaning
    

    Это дае RAG конкрэтны матэматычны спосаб выявлення інфармацыі, якая сэмантычна адносіцца да запиту.

    RAG — гэта як бібліятэка для ШІ

    Мабыць, гэта самы ясны спосаб уявіць сабе гэта.

    Уявіце ШІ як адзінаго вельмі здольнага студэнта.

    Без RAG:

    Student
       ↓
    Uses what they already remember
       ↓
    Answer
    

    З RAG:

    Student
       ↓
    Goes to library
       ↓
    Finds relevant book
       ↓
    Reads relevant pages
       ↓
    Answers question
    

    Фундаментальныя знанні і спроможнасць студэнта да логічных выводам не зменіліся.

    Зменилася толькі інфармацыя, якая є у распаўядзе на тэкучы момент.

    У сутнасці, гэта і є вся ідея RAG.

    Куды працюе RAG

    Сістэмы RAG парадоксальна спосабом становяцца все бол складнымі.

    У будучыні ў іх реалізаціях можа быць аднаўлены:

    User Question
          ↓
    Query Understanding
          ↓
    Multiple Retrieval Sources
          ↓
    Document Ranking
          ↓
    Reasoning
          ↓
    Tool Use
          ↓
    Verification
          ↓
    Answer + Evidence
    

    Уместо таго, каб шукаць інфармацыю толькі ў адном дакументе, сістэма можа пераглядаць:

    PDFs
    +
    Database
    +
    Website
    +
    API
    +
    Company Knowledge Base
    

    Потым актуальныя фрагменты з’еднаюцца разам.

    Гэта прыводзіць RAG да таго, каб стаў шырэйшай архітектурай знанняў і логічных выводам для агентаў AI, а не проста методам выкарыстоўвання інфармацыі.

    Шырэйшы контекст

    RAG абзначае значныя змены ў нашым падходзе да знанняў у AI.

    Стары падход быў такім:

    Train AI
       ↓
    Put knowledge into model
       ↓
    Ask questions
    

    Новы падход выглядае больш так:

    Train AI
       ↓
    Keep knowledge externally
       ↓
    Retrieve relevant information
       ↓
    Reason over it
       ↓
    Generate answer
    

    Такі спосаб аддзелення інтэлекту модэлю ад зовнішніх знанняў выявляецца чыразна ўплывамым.

    Модэлю больш не трэба зберагаць усі факты ў сабе.

    У замен яму трэба ведаць, як эфектыва выкарыстоўваты інформацыю, калі ён да яе мае доступ.

    Заключныя мысці

    Можа, будучыня штучнага інтэлекту не заключаецца у стварэнні моделі, яка запамятавала ўсё, што толькі можна знать.

    Можа, гэта радыя стварэнню моделі, якае можа визначыць, што ёй трэба знайсці, аднаходзіць правы джераг, эфектыва викорыстоўваць тэкст і пераканацца, чы рашэнне є правдападобным.

    Самэ гэта робіць RAG значным для уваги.

    AI Model
       +
    External Knowledge
       +
    Retrieval
       +
    Reasoning
       +
    Verification
       ↓
    More Useful AI
    

    Гэта вядома да большай ідеі: найрозумнейшы штучны інтэлект можа не быть тым, який знае ўсё. Цэю можа быть тая модель, якая ведае, як знайсці тое, што ёй трэба.

    Спадневаная літаратура

  • ReAct: Как AI-агенты спяюваюць разумаванне з дзеяннямі у рэальным свете — Дазвольце дазнацца, як фрэймворк ReAct спяювае разумаванне і выкарыстоўванне інструментаў для роботы AI-агентоў, а таксама чаму ён разлічыцца з моделямі Chain-of-Thought, RL і разумавання.
  • Дзевяць архітэктурных прынцыпаў для AI-систем агентскага типу высокай якосці — Дазвольце пазнакоміцца з планам архітэктуры, якая складаецца з дзевяці прынцыпаў — ад сетакавання з нульовым дзяўерам да роўней дадзэнняў і прычыплення паказанняў — для стварэння перапытных, корпоратывных AI-систем агентскага типу.
  • Розумеўце памяці AI: адгук, эмбеддынгі, RAG і параметры модэлі — У этай стацыі пояснюецца, як системы AI насправдзе запамячваюць інфармацыю, пры чым рассматрываюцца вікна адгуку, эмбеддынгі, базы дадзэння вектароў, RAG і параметры модэлі.