Що таке RAG і як його можна використовувати на практиці?

Що таке RAG і як його можна використовувати на практиці?

  • 11 липня
  • читати 15 хв
Юрій Гриценко
Юрій Гриценко Principal Solutions Architect у GlobalLogic

ЩО ТАКЕ RAG?

Retrieval-Augmented Generation (RAG) — це метод підсилення великих мовних моделей (LLM) шляхом надання їм доступу до зовнішніх баз знань у режимі реального часу. У той час як традиційні LLM генерують відповіді виключно на основі тренувальних даних, RAG дозволяє моделі звертатися до динамічного сховища документів (наприклад, векторних баз даних або API пошуку), щоб отримати відповідний контекст і використати його для формування більш точних, релевантних й обґрунтованих відповідей.

Як працює RAG у поєднанні з AI-запитом:

  • Крок 1: Користувач вводить запит (наприклад, «Поясни політику нашої компанії щодо пільг»).
  • Крок 2: Запит вбудовується у вектор і порівнюється з векторним сховищем (наприклад, документами, індексованими за допомогою OpenAI Embeddings або HuggingFace Transformers).
  • Крок 3: Повертаються k-найрелевантніших документів.
  • Крок 4: Ці документи передаються LLM як контекст (через доповнення промту).
  • Крок 5: LLM генерує відповідь, ґрунтуючись на отриманому контенті.

Такий гібридний підхід поєднує здатність LLM до узагальнення з точністю та актуальністю структурованих джерел даних.

ВАРІАНТИ ВИКОРИСТАННЯ RAG

RAG особливо ефективний у двох основних сценаріях: чат-боти/асистенти й дослідження неструктурованих документів. Усе це базується на здатності LLM до складного аналізу на основі обробленого обсягу даних і вмінні зіставляти вільно сформульовані запити користувачів з наявною інформацією.

Деякі приклади застосування:

  • Корпоративні асистенти знань: автоматизоване внутрішнє Q&A на основі політик компанії, вікi, або інструкцій.
  • Юридичні/комплаєнс чат-боти: відповіді, засновані на актуальних регуляціях або нормативних документах.
  • Підтримка клієнтів: пошук релевантних інструкцій з усунення неполадок або історії звернень.
  • Персоналізовані медичні асистенти: отримання інформації з карток пацієнтів, баз даних ліків або клінічних нотаток.
  • Пошук у технічній документації: допомога розробникам у запитах до API або внутрішніх інструментів.
  • Дослідження даних й аналітика: узагальнення, швидкий пошук, нечітке зіставлення тощо.

ПЕРЕДУМОВИ ДЛЯ ВПРОВАДЖЕННЯ RAG

Retrieval-Augmented Generation (RAG) — це не «підключив і працює» рішення. Воно найбільш ефективне, коли ретельно інтегроване в інформаційне й колаборативне середовище організації. Окрім управління контентом, успішне впровадження вимагає координації між IT-платформами, крос-функціональними командами, відповідності бізнес-цілям і змінам у процесах.

Власність і кураторство контенту

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

Пріоритизація сценаріїв і ROI

Зосередьте початкові зусилля на конкретних бізнес-завданнях, де RAG може принести відчутну користь — наприклад, зменшення навантаження на службу підтримки, покращення самообслуговування співробітників або пришвидшення адаптації новачків.

Інтеграція зовнішніх систем і готовність платформи

Критично важливим (і часто недооціненим) чинником успіху RAG є можливість інтегрувати наявні інформаційні системи у пайплайн RAG.

Сюди входить інтеграція з такими системами:

  • Системи управління знаннями (Confluence, Notion, Guru, MediaWiki): часто містять «племінні знання» та SOP. Необхідний доступ через API або експорт.
  • Сховища документів і ECM-системи (SharePoint, OneDrive, Google Drive, Box, Dropbox): доступ повинен враховувати метадані та права доступу.
  • Інтранети й портали (наприклад, ServiceNow, SAP SuccessFactors): можуть бути доповнені віджетами з RAG-пошуком.
  • CRM і системи підтримки (Salesforce, Zendesk, Freshdesk, Intercom): RAG у консолі агента для отримання відповідного контенту.
  • Системи контролю версій (GitHub, Bitbucket, GitLab): інженери можуть інтегрувати RAG з README, документацією або обговореннями.

Співпраця з IT і платформенними командами

Необхідна рання координація з такими ролями:

  • Архітектори підприємства: для оцінки потоків даних, доступу до API, сумісності платформ.
  • Команди безпеки IT: забезпечення ролей і захищеного доступу.
  • Управління ідентичністю та доступом (IAM): обмеження видимості контенту.
  • DevOps / MLOps: для розгортання і моніторингу пайплайнів RAG.

Приклад: у консалтинговій компанії RAG було налаштовано на отримання документів з SharePoint і Confluence. Але без підтримки SSO API вся команда бачила контент обмеженого доступу. IT-команда налаштувала дозволи на рівні додатків.

Готовність процесів та інтеграція

RAG не існує в вакуумі — він має враховувати поточні взаємодії користувачів із системами:

  • Мапування процесів: де зараз користувачі шукають відповіді та де виникають затримки?
  • План інтеграції: RAG має бути вбудовано в наявні портали, CRM або системи підтримки.
  • Призначення відповідальних за відповіді: у регульованих сферах слід визначити, хто підтверджує контент.

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

Культурна готовність й управління змінами

Як і будь-який інструмент із підтримкою ШІ, RAG потребує довіри й адаптації:

  • Навчання і впровадження для співробітників: RAG шукає інформацію, а не вгадує.
  • Чітке повідомлення про обмеження: RAG не всезнавець.
  • Зворотний зв’язок: користувачі можуть оцінювати відповіді, позначати помилки або пропонувати джерела.

Приклад: у B2B SaaS компанії команда підтримки може не довіряти RAG. Пілотна програма з опціональним фідбеком допомагає поступово підвищити довіру.

Конфіденційність даних, контроль доступу й відповідність

Для рішень RAG, що працюють з чутливими бізнес-даними:

  • Визначити області доступу. RAG має враховувати права доступу користувачів до різного контенту.
  • Перевірити вплив на відповідність: GDPR, HIPAA, SOC 2 тощо.
  • Співпраця з юридичним і безпековим відділом: щоб уникнути витоків через промти.

МЕТРИКИ ЕФЕКТИВНОСТІ RAG

Розуміння того, чи добре працює ваша система RAG, вимагає поєднання показників кількісних і якісних метрик. Ці показники поділяються на дві основні категорії: продуктивність пошуку та якість генерації. Розгляньмо їх з описами та практичними наслідками.

Метрики якості вибірки (Retrieval Quality Metrics)

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

Наступні метрики можуть допомогти у вимірюванні якості вибірки:

  • Precision@K
    Цей показник вимірює частку з K найкращих знайдених документів, які дійсно релевантні до запиту користувача. Наприклад, якщо система знаходить 5 документів, і 4 з них справді корисні, Precision@5 дорівнює 0.8. Висока точність важлива для зменшення «шуму» і забезпечення корисного контексту для LLM.
  • Recall@K
    Recall показує, скільки з усіх можливих релевантних документів потрапили в топ-K. Якщо Precision оцінює якість, то Recall — повноту охоплення. Якщо система знаходить лише 2 з 10 релевантних фрагментів інформації, відповідь може бути неповною.
  • Затримка вибірки (Retrieval Latency)
    Це час, який минає від запиту до отримання контекстуальних документів. У користувацьких додатках затримка понад 500 мс може негативно вплинути на досвід користувача. Добре оптимізоване векторне сховище з пошуком на основі приблизних найближчих сусідів (ANN) повинне повертати результати менш ніж за 200 мс у більшості випадків для середніх обсягів даних.
  • Середній обернений ранг (Mean Reciprocal Rank, MRR)
    Для ранжованих результатів MRR показує, наскільки високо знаходиться найрелевантніший документ. Якщо користувачі зазвичай отримують найкращу відповідь на початку списку, MRR буде близьким до 1. Це особливо корисно для чат-ботів і систем семантичного пошуку.

Метрики якості генерації (Generation Quality Metrics)

Після отримання документів LLM використовує їх для створення відповіді. Важливо знати, наскільки ця відповідь є точною, повною і корисною.

Ось основні способи оцінювання:

  • Оцінка обґрунтованості (Groundedness або Faithfulness)
    Цей показник оцінює, наскільки згенерована відповідь узгоджується з вибраними документами. Якщо модель додає інформацію, якої немає в джерелах, це вважається галюцинацією. Інструменти на кшталт RAGAS (open source) можуть автоматизувати оцінювання, порівнюючи відповідь із контентом-джерелом.
  • Рівень галюцинацій (Hallucination Rate)
    Протилежність обґрунтованості — який відсоток відповідей містить вигадану або неперевірену інформацію. У регульованих галузях (наприклад, фінанси, право, медицина) низький рівень галюцинацій критично важливий. Це можна вимірювати шляхом вибіркового аналізу відповідей і перевірки, чи кожне твердження має джерело серед знайдених документів.
  • Релевантність і корисність відповіді
    Хоча це важко формалізувати, їх можна оцінювати за допомогою опитувань користувачів або ручної перевірки. Також можна застосовувати попередньо натреновані моделі для оцінки корисності відповіді. Для внутрішнього використання частота уточнюючих запитів користувача може слугувати непрямим індикатором релевантності.
  • Повнота відповіді
    Чи охоплює LLM всі частини складеного запиту? Це особливо важливо у сферах обслуговування клієнтів або дотримання вимог, де неповна відповідь може спричинити непорозуміння чи ризики. Оцінювачі (людські або автоматизовані) перевіряють, чи були враховані всі аспекти запиту.
  • BLEU / ROUGE / F1-метрики
    Ці метрики з обробки природної мови порівнюють згенеровані відповіді з еталонними (золотим стандартом). Вони корисні для бенчмарк-тестів (наприклад, при тестуванні RAG на SQuAD або кастомних QA-наборах). Проте, для відкритих запитань або випадків із кількома допустимими відповідями, ці показники менш інформативні.
  • Вартість запиту (Cost per Query)
    Включає витрати на генерацію embedding-ів, векторний пошук і використання LLM за токенами. Хоча це не метрика якості напряму, відстеження вартості є важливим для розрахунку ROI. Один складний запит може активувати кілька ресурсоємних процесів — embedding, вибірку й генерацію — тому оптимізація вартості без втрати якості є ключовою інженерною задачею.

БАЗОВА РЕАЛІЗАЦІЯ RAG З ДОПОМОГОЮ AZURE OPENAI

Один із найпростіших способів швидко почати роботу з RAG — скористатися середовищем Azure OpenAI Foundry Playground. Нижче наведено покрокову інструкцію для базового налаштування в Azure Cloud, яка дозволить вам протестувати чат на основі моделі GPT-4 з використанням завантажених користувацьких документів. Усе налаштування можна виконати в рамках безкоштовної пробної підписки.

Для початкового налаштування потрібно створити такі сервіси в Azure:

  • Azure OpenAI
  • AI Search service
  • Storage Account

Обліковий запис сховища (Storage Account)

Потрібно створити стандартний контейнер Azure Blob, у який будуть завантажуватись вихідні документи для RAG.

AI SEARCH SERVICE

Цей сервіс буде використовуватись для індексації документів RAG і надання їх для запитів від LLM-моделі. Переконайтеся, що для служби ввімкнено Role-based access control, оскільки конфігурація використовуватиме сервісні облікові записи MS Entra.

У межах служби пошуку потрібно налаштувати три компоненти:

  • Джерело даних (Data Source) підключене до Azure Blob для доступу до документів.
  • Індекс (Index), який буде основним сховищем даних для AI.
  • Індексатор (Indexer): обробляє документи для занесення до індексу; саме тут налаштовується семантична й навичкова (skill-based) індексація, які є критично важливими етапами у процесі обробки документів.

 УВАГА: індексатор можна налаштувати тільки після того, як у службі Azure OpenAI буде призначено квоту AI.

AZURE OPENAI

У цьому прикладі безпосереднє налаштування в Azure OpenAI сервісі не виконується — усі дії відбуваються через інтерфейс Azure AI Foundry UI.

Ось що треба буде налаштувати тут:

  • Квота сервісу (Service quota) — за замовчуванням вона відсутня, потрібно надіслати запит в самому Azure AI Foundry.
  • Розгортання моделі (Model deployment) — виконується в межах налаштування Chat Playground. У цьому прикладі використовується GPT-4.
  • Джерело даних для чату (Chat Data Source) — створюється в інтерфейсі Chat Playground через майстра налаштування. Для цього необхідно, щоб Azure Search була повністю налаштована з увімкненою семантичною конфігурацією і доступами сервісного облікового запису (майстер налаштування допоможе з цим).
  • Надання ролі для облікового запису користувача: «Cognitive Services OpenAI Contributor» — після цього потрібно перезайти в інтерфейс Azure AI Foundry.

Рекомендуємо публікації по темі