Лідери думок
Як побудувати Надійний RAG: Глибоке занурення у 7 точок відмов та кадри оцінки
Retrieval-Augmented Generation (RAG) є критично важливим для сучасної архітектури штучного інтелекту, служачи суттєвим кадром для побудови контекстно-чутливих агентів.
Але перехід від базової моделі до системи, готової до виробництва, передбачає подолання суттєвих перешкод у галузі пошуку даних, консолідації контексту та синтезу відповідей.
Ця стаття надає глибоке занурення у сім типових точок відмов RAG та метрики оцінки з практичними прикладами кодування.
Анатомія відмов RAG – 7 точок відмов (ТЗ)
За даними дослідників Barnett et al., системи генерації з підтримкою пошуку (RAG) зустрічають сім конкретних точок відмов (ТЗ) на всьому етапі обробки.
Нижче наведена діаграма ілюструє ці стадії:

Фігура А. Процеси індексування та запитів, необхідні для створення системи RAG. Процес індексування здійснюється під час розробки, а запити – під час виконання. Точки відмов, визначені в цьому дослідженні, показані в червоних коробках (джерело)
Давайте розглянемо кожну ТЗ, розташовані згідно з послідовністю етапів обробки, слідуючи за прогресом зверху ліворуч унизу праворуч, показаному в Фігурі А.
ТЗ1. Відсутній контент
Відсутній контент відбувається, коли система запитується питання, на яке не можна відповісти, оскільки відповідна інформація відсутня в доступному векторному сховищі з самого початку.
Відмова відбувається, коли великомасштабна мова (LLM) надає правдоподібну, але неправильну відповідь, замість того, щоб заявити, що їй це невідомо.
ТЗ2. Пропущені документи з вищим рейтингом
Це ситуація, в якій правильний документ існує в векторному сховищі, але пошуковий механізм не може достатньо високо оцінити його, щоб включити до перших k документів, які подаються LLM як контекст.
В результаті правильна інформація ніколи не доходить до LLM.
ТЗ3. Не в контексті (обмеження стратегії консолідації)
Це ситуація, в якій правильний документ існує і витягнутий з векторного сховища, але виключений під час процесу консолідації.
Це відбувається, коли повертається занадто багато документів, і система повинна фільтрувати їх, щоб вони поміщалися в межі контекстного вікна LLM, обмеження токенів або обмеження швидкості.
ТЗ4. Не витягнутий
Це ситуація, в якій LLM не може ідентифікувати правильну інформацію в контексті, навіть якщо правильна інформація була в векторному сховищі і успішно витягнута/консолідована.
Це відбувається, коли контекст надто шумний або містить суперечливу інформацію, яка плутає LLM.
ТЗ5. Неправильний формат
Це ситуація, в якій зберігання, пошук, консолідація та інтерпретація LLM обробляються успішно, але LLM не слідує конкретним інструкціям щодо формату, наданим у запиті, таких як таблиця, маркований список або схема JSON.
ТЗ6. Неправильна специфікація
Вихід LLM технічно присутній, але або занадто загальний, або надто складний порівняно з потребами користувача.
Наприклад, LLM генерує прості відповіді на запит користувача з складною професійною метою.
ТЗ7. Неповні відповіді
Це ситуація, в якій LLM генерує вихід, який не обов’язково неправильний, але не містить ключових частин інформації, які були доступні в контексті.
Наприклад, коли користувач запитує складне питання, таке як “Які ключові моменти в документах А, Б і В?”, LLM розглядає лише один або два джерела.
Як ТЗ компрометують продуктивність конвеєра RAG
Кожна з цих ТЗ впливає на продуктивність конвеєрів RAG:
Надійність даних та провали довіри
Коли відсутня або неправильна інформація присутня, система вже не є надійним джерелом інформації. Основні ТЗ включають:
- ТЗ1 (Відсутній контент): Відповідь не міститься в документі з самого початку.
- ТЗ4 (Не витягнутий): LLM вирішує проігнорувати правильну відповідь у документі.
- ТЗ7 (Неповний): LLM надає півправду, не містить важливих частин.
Перешкоди пошуку та ефективності
Конвеєр RAG може бути неефективним, коли він пропускає ключову інформацію на етапах пошуку та консолідації. Основні ТЗ включають:
- ТЗ2 (Пропущені документи з вищим рейтингом): Модель вкладення не може вибрати перші k вкладень.
- ТЗ3 (Обмеження стратегії консолідації): Сценарій для обрізання документів до межі обмеження LLM виключає найважливіші частини.
Помилки користувача та форматування
Хоча правильний, вихід з поганою читаемістю або неправильним форматом може компрометувати досвід користувача. Основні ТЗ включають:
- ТЗ5 (Неправильний формат): LLM не слідує конкретному формату виводу, наприклад JSON.
- ТЗ6 (Неправильна специфікація): LLM генерує розгорнуту відповідь на просте питання так/ні, або навпаки (занадто коротка відповідь на складне питання).
Стек оцінки: кадри для пом’якшення ТЗ
Метрики оцінки призначені для систематичного пом’якшення цих ТЗ.
Цей розділ досліджує основні метрики оцінки з практичними прикладами застосування.
Основні метрики оцінки RAG:
- DeepEval
- RAGAS
- TruLens
- Arize Phoenix
- Braintrust
DeepEval – Юніт-тест перед розгортанням
DeepEval розрахує зважений бал за критерієм.
Суддя LLM (наприклад, GPT-4o) оцінює кожен критерій щодо виводу LLM:

DeepEval використовує G-eval, кадр ланцюга думок (CoT), який приймає багатоступінчатий підхід до оцінки виводу:
- Визначте критерій для вимірювання (наприклад, “співмірність”, “плинність” або “притягальність”).
- Генеруйте кроки оцінки (за допомогою оцінювального LLM).
- Слідуйте за кроком оцінки та аналізуйте вхідні дані та вихід LLM.
- Розрахуйте очікуваний зважений сум балів кожного критерію.
Типовий сценарій на практиці
- Ситуація: Технічний помічник документації (бот) для складного програмного продукту здається працюючим кожного разу, коли інженерна команда оновлює кодову базу.
- Проблема: Не існує кількісного доводу того, що бот все ще може відповісти на запит користувача (Ви просто “думаєте”, що це працює…).
- Рішення: Інтегруйте функцію PyTest у вигляді регресійного набору CI/CD у Github Action, де DeepEval запускає
G-Evalта інші метрики над тестовим випадком:
- Очікувані результати: Якщо будь-який бал метрик впадає нижче порогу (0,85), PyTest піднімає
AssertionError– негайно припиняючи збірку CI, запобігаючи тихому регресу від досягнення виробництва.
Переваги
- Варіативність метрик (50+) включно з спеціалізованими перевірками упередженості та токсичності.
- Надійно інтегрується з існуючими конвеєрами CI/CD.
- Не потрібно жодної посилання. Оцінюйте вихід лише на основі запиту та наданого контексту.
Недоліки
- Якість оцінки сильно залежить від можливостей судді LLM.
- Обчислювально дорогий, коли суддя LLM є висококласовою моделлю.
Примітка розробника – Тестовий випадок для DeepEval
Набір об’єктівLLMTestCaseвизначає тестовий випадок, який запускає DeepEval.На практиці цей тестовий випадок повинен містити більшість важливих запитів користувача та позначені виводи з витягнутим контекстом.
Ці дані можна отримати з файлу JSON або CSV.
RAGAS – Оптимізатор у вигляді голки в копиці сена
Оцінка генерації з підтримкою пошуку (RAGAS) спрямована на оцінку RAG без анотованого набору даних людини шляхом генерації синтетичних тестових наборів.
Потім вона обчислює флагманські метрики:

Фігура Б. Тріада оцінки RAGAS, що з’єднує питання, контекст та відповідь через метрики точності, повноти, вірності та актуальності (Створено Kuriko IWAI)
Флагманські метрики категоризовані на три групи:
- Конвеєр пошуку (чорна сплощена лінія, Фігура Б): Точність контексту, повнота контексту.
- Конвеєр генерації (чорна пунктирна лінія, Фігура Б): Вірність, актуальність відповіді.
- Істинне значення (червона коробка, Фігура Б): Семантична схожість відповіді, правильність відповіді.
Типовий сценарій на практиці
- Ситуація: Система RAG для юридичних контрактів не містить ключових положень. Ви не впевнені, чи проблема полягає в Пошуку (Пошуковому механізмі) чи в Читанні (Генераторі).
- Проблема: Не відомо, який оптимальний верхній рейтинг (кількість витягнутих частин).
- Рішення: Використайте RAGAS, щоб створити синтетичний тестовий набір із 100 пар запитів та доказів. Потім запустіть конвеєр RAG проти тестового набору, щоб розрахувати повноту контексту та точність контексту:
- Очікуваний результат: В залежності від результатів метрик, план дій може бути наступним:
| Метрика | Бал | Діагностична інформація | План дій |
| Повнота контексту | Низький | Пошуковий механізм пропустив правильну інформацію. | – Збільшити верхній рейтинг. – Спробуйте гібридний пошук (BM25 + Вектор). |
| Точність контексту | Низький | Верхній рейтинг частин містить занадто багато фільтру та шуму – плутаючи LLM. | – Зменшіть верхній рейтинг – Реалізуйте Реранкер (наприклад, Cohere). |
| Вірність | Низький | Генератор марить, незважаючи на наявність даних. | – Коригуйте системний запит. – Перевірте межі контекстного вікна. |
Таблиця 1. План дій діагностичної оцінки RAGAS – відображення балів на коригування системи.
Переваги
- Ідеально підходить для проекту на ранній стадії без анотованих наборів даних (Як ми бачили у фрагменті коду, RAGAS може створити синтетичний тестовий набір).
Недоліки
- Синтетичний тестовий набір може пропустити нюансовані фактичні помилки.
- Вимагає потужної моделі витягування, щоб розбити відповіді на окремі твердження (Я використав
gpt-4oу прикладі).
TruLens – Спеціаліст зворотнього зв’язку
TruLens зосереджується на внутрішніх механізмах процесу RAG, а не лише на кінцевому виводі, використовуючи функції зворотнього зв’язку.
Він також використовує оцінку LLM, що відображає, наскільки добре відповідь задовольняє намір запиту, використовуючи 4-бальну шкалу Лікерта (0-3), що робить його вищим для рейтингу якості різних результатів пошуку.
Типовий сценарій на практиці
- Ситуація: Медичний порадник-бот відповідає на запит користувача правильно, але додає пораду, яка не міститься у перевіреній базі PDF.
- Проблема: Додана порада може бути корисною, але не має підґрунтя.
- Рішення: Використайте TruLens, щоб реалізувати функцію зворотнього зв’язку з порогом, наприклад
бал > 0,8.
- Очікувані результати: Коли LLM генерує відповідь, яка містить інформацію, не присутню у витягнутих частинах, TruLens позначає запис у вашій панелі керування.
Переваги
- Візуалізує ланцюг висновків, щоб точно визначити, де агент пішов не тим шляхом.
- Предоставляє вбудовану підтримку для підґрунтя, щоб у реальному часі ловити марення.
Недоліки
- Крива навчання для визначення користувачем визначених функцій зворотнього зв’язку.
- Панель керування може відчуватися важкою для простих скриптів.
Arize Phoenix – Карта тихої відмови
Arize Phoenix – це відкритий інструмент спостереження та оцінки для оцінки виводів LLM, включаючи складні системи RAG.
Створений на OpenTelemetry компанією Arize AI, він зосереджується на спостереженні, розглядаючи оцінку LLM як підмножину MLOps.
У контексті оцінки RAG Phoenix виділяється в аналізі вкладень, використовуючи Уніфіковану апроксимацію та проєкцію (UMAP), щоб зменшити високовимірні векторні вкладення до 2D/3D-простору.
Цей аналіз вкладень математично розкриває, чи запитів, що завершилися невдало, скупчені разом семантично, що вказує на пробіл у векторному сховищі.
Типовий сценарій на практиці
- Ситуація: Бот підтримки клієнтів працює добре для повернення коштів, але надає безглузді відповіді на питання щодо гарантії.
- Проблема: Пробіл даних у векторному сховищі (Не можна знайти у журналах).
- Рішення: Використайте Arize Phoenix, щоб створити візуалізацію вкладень UMAP (UEV), 3D-карту для векторного сховища – щоб накладати запити користувача на частини документів.
- Очікувані результати: Візуально побачити скупчення запитів користувача, що потрапляють у темну зону, де немає документів, вказуючи на те, що деякі документи забули завантажити до векторного сховища.
Переваги
- Вроджена підтримка OpenTelemetry; інтегрується з існуючими корпоративними стеками моніторингу.
- Найкращий інструмент для візуалізації сліпих плям векторного сховища.
Недоліки
- Менше зосереджено на оцінці, більше на спостереженні.
- Може бути надмірним для малих застосунків або інструментів з одним агентом.
Braintrust – Безпековий мереж для регресії запиту
Braintrust призначений для високочастотних циклів ітерацій шляхом використання перекрестного порівняння моделей.
Типовий сценарій на практиці
- Ситуація: Інженерна команда оновлює запит від “Відповісти на питання” (Випадок А) до більш складного 500-словного системного інструктажу (Випадок Б).
- Проблема: Покращення запиту для Випадку Б може випадково зламати Випадок А.
- Рішення: Використайте Braintrust, щоб створити золотий набір даних із набором N ідеальних прикладів (наприклад,
N = 50). Дайте Braintrust запустити порівняння з боку в бік кожного разу, коли команда оновлює одне слово у запиті:
- Очікувані результати: Звіт про різницю, що показує точно, які випадки покращилися/погіршилися для кожного з золотого набору даних (N = 50).
Переваги
- Надзвичайно швидко тестирується перед розгортанням.
- Відмінний інтерфейс для не-технічних зацікавлених сторін для перегляду та оцінки виводу.
Недоліки
- Пропрієтарний/орієнтований на SaaS (хоча вони мають відкриті компоненти).
- Менше вбудованих глибоких метрик порівняно з DeepEval або RAGAS.
Підсумок
Коли обробляються з належними кадрами оцінки, RAG може бути конкурентним інструментом для надання LLM контексту, найбільш актуального для запиту користувача.
Стратегія реалізації: відображення метрик на точки відмов
Хоча немає універсального рішення, Таблиця 2 показує, яку метрику оцінки застосовувати для кожної ТЗ, розглянутої в цій статті:
| Точка відмови | Ідея метрики оцінки | Функція для використання |
| ТЗ1: Відсутній контент | RAGAS | Вірність / Правильність відповіді |
| ТЗ2: Пропущені документи з вищим рейтингом | TruLens | Повнота контексту / Точність контексту |
| ТЗ3: Консолідація | Arize Phoenix | Аналіз витягування та затримки |
| ТЗ4: Не витягнутий | DeepEval | Вірність / Контекстна повнота |
| ТЗ5: Неправильний формат | DeepEval | G-Eval (ПUSTOM рубрик) |
| ТЗ6: Специфікація | Braintrust | Ручна оцінка та оцінка з боку в бік |
| ТЗ7: Неповний | RAGAS | Актуальність відповіді |
Таблиця 2. Матриця пом’якшення точки відмови – Який інструмент вирішує яку ТЗ?
DeepEval і RAGAS можуть використовувати свої метрики вірності для вимірювання провалів цілісності даних (ТЗ1, ТЗ4, ТЗ7).
TruLens використовує свою точність контексту/повноту для оцінки актуальності контексту до виводу – ефективно оцінюючи ТЗ2.
Arize Phoenix надає візуальний слід процесу витягування, роблячи його легким для визначення, чи був витягнутий документ втрачений під час консолідації (ТЗ3).
Для провалів користувача DeepEval створює користувачем визначені метрики для оцінки провалів користувача, тоді як Braintrust виділяється в порівнянні наборів даних на основі фактичних даних.












