Головна / Статті / Що таке RAG: як системи ШІ отримують свіжі знання за потребою

Що таке RAG: як системи ШІ отримують свіжі знання за потребою

Дізнайтеся, як працює технологія Retrieval-Augmented Generation — від розділення тексту на частини та створення ембеддингів до векторного пошуку, щоб моделі ШІ могли відповідати на запитання без повторної підготовки.

2776 слів

«Що міститься в цьому документі, який я щойно завантажив?»

Retrieval-Augmented Generation, яку зазвичай скорочують до 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 проти традиційного ШІ

    Без 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 ●
    

    Мета не в тому, щоб знаходити буквальне перекриття слів.

    Натомість метою є визначення семантичної схожості — близькості у значенні.

    Що таке семантичний пошук?

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

    "автомобіль"

    і буде шукати документи, які буквально містять слово автомобіль.

    Семантичний пошук намагається зрозуміти справжнє значення запиту.

    Наприклад, запит на кшталт:

    ">Як електромобілі зберігають енергію?"

    може вивести уривок, який пояснює, що електромобілі використовують літій-іонні акумулятори для зберігання електричного заряду.

    Формулювання цих запитів майже не збігаються, проте результат пошуку все одно має сенс.

    Це можливо тому, що ембеддинги кодують взаємозв’язки у значенні, а не лише у способі написання.

    Зберігання ембеддингів у векторній базі даних

    Як тільки з’являються ембеддинги, їм потрібне місце зберігання.

    Саме для цього існує база даних векторів, яка зберігає:

    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
    

    Тепер у моделі є змістовний, релевантний контекст для роботи.

    Додавання отриманої інформації до запиту

    Як тільки знаходяться релевантні фрагменти, вони передаються ШІ як контекст разом із початковим запитанням.

    Концептуально структура запиту виглядає так:

    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 не означає, що ШІ засвоїла інформацію

    Це розрізнення має велике значення, і його легко помилитися.

    Уявіть, що ви завантажуєте файл на кшталт:

    Project_Report.pdf
    

    і асистент починає відповідати на запитання на його основі.

    Це не означає, що модель назавжди вбрала зміст цього звіту у свої параметри.

    Натомість документ є:

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

    Корисною аналогією є студент, який під час іспиту користується підручником.

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

    Натомість процес відбувається так:

    Запитання → пошук відповідної сторінки → її читання → відповідь

    RAG функціонує приблизно так само.

    RAG проти тонкого налаштування

    Це порівняння постійно зустрічається, тому варто його чітко пояснити.

    Тонке налаштування

    Під час тонкого налаштування параметри моделі коригуються шляхом продовження її навчання на конкретному наборі прикладів.

    Концептуально:

    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 є відмінною.

    Наприклад:

    Якщо під час пошуку отримується неправильний документ, навіть дуже потужна модель може дати неправильну відповідь.

    Математика, що лежить в основі ембеддингів

    Ембеддинги дозволяють порівнювати фрагменти інформації за допомогою математики.

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

    RAG — це як бібліотека для ШІ

    Student
       ↓
    Uses what they already remember
       ↓
    Answer
    

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

    Куди рухається 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 стає більш широкою архітектурою знань та міркувань для штучних інтелектуальних агентів, а не просто триком для пошуку інформації.

    Ширша картина

    RAG ознаменовує значну зміну у підході до розуміння знань штучного інтелекту.

    Стара модель була такою:

    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
    

    Це вказує на більшу ідею: найрозумніше ШІ — це не те, що знає все. Це те, що знає, як знайти те, що йому потрібно.

    Пов’язана література

    • Agentic AI Explained: From Language Models to Autonomous Agents — структурований огляд того, як ЛММ перетворюються на агентні системи за допомогою інструментів, пам’яті, планування, архітектур багатьох агентів та інтеграції MCP.
  • ReAct Explained: Як AI-агенти поєднують міркування з діями у реальному світі — Дізнайтеся, як фреймворк ReAct поєднує міркування та використання інструментів для функціонування AI-агентів, та в чому його відмінності від моделей Chain-of-Thought, RL та міркувань.
  • Дев’ять архітектурних принципів для AI-систем з агентами виробничого рівня — Ознайомтесь з планом архітектури, який складається з дев’яти елементів — від мереж без довіри та рівнів даних до зв’язування доказів — для створення перевірюваних AI-систем з агентами корпоративного рівня.
  • Розуміння пам’яті ШІ: пояснення контексту, ембеддингів, RAG та параметрів моделі — У цій статті детально розглядається, як системи ШІ насправді зберігають інформацію, включаючи контекстні вікна, ембеддинги, векторні бази даних, RAG та параметри моделі.