Как оценивать качество RAG-систем: методы и инструменты для точной диагностики
RAG-системы (Retrieval-Augmented Generation) стали основой многих ИИ-решений для бизнеса. Создать систему - только половина дела. Важный вопрос: как понять, насколько хорошо она работает? Субъективная оценка «на глаз» не подходит для серьёзных проектов. Нужны чёткие метрики и системный подход.
Почему классические метрики не подходят для RAG
Традиционные метрики вроде BLEU и ROUGE измеряют совпадение слов с эталонным текстом. Для RAG-систем этого мало. Хорошо звучащий ответ может быть полностью выдуманным. Технически корректная информация может оказаться неуместной для запроса.
Основная проблема: без связи «вопрос → найденный фрагмент → ответ» невозможно понять, где произошла ошибка - в поиске релевантного контекста или в генерации ответа.
Двухуровневая модель оценки RAG
Профессиональная оценка RAG делится на два независимых направления:
1. Качество поиска (Retrieval Evaluation)
Измеряет, насколько точно система находит нужные документы:
- Hit Rate - доля случаев, когда релевантный документ попал в топ-N результатов.
- Mean Reciprocal Rank (MRR) - среднее обратное значение позиции правильного документа в выдаче.
- Precision и Recall - классические метрики информационного поиска.
Эти метрики работают без участия генеративной модели. Они сравнивают ID возвращённых документов с заранее размеченным набором релевантных фрагментов.
2. Качество генерации (Response Evaluation)
Оценивает, насколько хорошо модель использует найденный контекст:
- Faithfulness - соответствие ответа предоставленным фактам, отсутствие галлюцинаций.
- Relevancy - соответствие ответа исходному запросу.
- Contextual Precision - точность использования извлечённого контекста.
- Contextual Recall - полнота покрытия релевантной информации.
Инструменты для оценки
LlamaIndex: встроенная система оценки
LlamaIndex предоставляет готовые модули для комплексной оценки:
RetrieverEvaluator - анализирует качество поиска без участия LLM:
# Создание тестового датасета
qa_dataset = generate_question_context_pairs(nodes, llm=llm, num_questions_per_chunk=2)
# Оценка ретривера
retriever_evaluator = RetrieverEvaluator.from_metric_names(["mrr", "hit_rate"])
eval_results = await retriever_evaluator.aevaluate_dataset(retriever, qa_dataset)
FaithfulnessEvaluator и RelevancyEvaluator - используют LLM-судью для оценки качества ответов:
faithfulness_evaluator = FaithfulnessEvaluator(llm=evaluator_llm)
relevancy_evaluator = RelevancyEvaluator(llm=evaluator_llm)
# Пакетная оценка
batch_runner = BatchEvalRunner({"faithfulness": faithfulness_evaluator, "relevancy": relevancy_evaluator})
eval_results = await batch_runner.aevaluate_queries(query_engine, queries)
Система цитирования для трассировки
Для детального анализа каждого ответа используют CitationQueryEngine:
citation_engine = CitationQueryEngine.from_args(
index,
similarity_top_k=3,
citation_chunk_size=512
)
Эта система добавляет нумерованные ссылки к каждому утверждению в ответе. Это позволяет отследить любое заявление до конкретного фрагмента источника.
RAGAS: специализированные метрики
Библиотека RAGAS предоставляет продвинутые метрики для RAG-систем:
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall
from ragas.llama_index import evaluate
result = evaluate(
query_engine=query_engine,
metrics=[faithfulness, answer_relevancy, context_precision],
dataset=evaluation_dataset
)
DeepEval: автоматизированное тестирование
DeepEval интегрируется с RAG-системами для создания автоматических тестов:
from deepeval.metrics import AnswerRelevancyMetric, FaithfulnessMetric
from deepeval.test_case import LLMTestCase
test_case = LLMTestCase(
input="Какие преимущества автоматизации ответов на отзывы?",
actual_output=response,
retrieval_context=[context]
)
metrics = [AnswerRelevancyMetric(), FaithfulnessMetric()]
evaluate(test_cases=[test_case], metrics=metrics)
Создание датасета для оценки
Основа точной оценки - правильно подготовленные тестовые данные:
Синтетическая генерация
# Автоматическая генерация вопросов по документам
qa_pairs = generate_question_context_pairs(
nodes=document_nodes,
llm=llm,
num_questions_per_chunk=3
)
Ограничения синтетического подхода:
- Проверяется способность найти заранее помеченные фрагменты, а не истинная релевантность.
- Важные бизнес-вопросы должен формировать человек.
- Качество зависит от возможностей модели-генератора.
Ручная разметка
Для критически важных систем нужен набор вопросов с экспертной разметкой:
- Реальные пользовательские запросы.
- Эталонные ответы от экспертов.
- Список релевантных документов для каждого вопроса.
Рабочий процесс оценки RAG
Этап 1: Подготовка окружения
- Зафиксируйте корпус документов - не меняйте базу в ходе тестирования.
- Создайте воспроизводимое окружение с фиксированными версиями библиотек.
- Подготовьте evaluation dataset с парами «вопрос-ожидаемый контекст».
Этап 2: Раздельная оценка компонентов
- Тестирование ретривера: запустите RetrieverEvaluator для измерения Hit Rate и MRR.
- Оценка генерации: используйте FaithfulnessEvaluator и RelevancyEvaluator.
- Анализ цитирования: проверьте корректность привязки ответов к источникам.
Этап 3: Итеративное улучшение
Используйте метрики для систематического улучшения:
- Низкий Hit Rate → проблемы с индексированием или эмбеддингами.
- Плохой Faithfulness → настройка промптов или смена LLM.
- Низкий Relevancy → пересмотр стратегии чанкинга.
Применение в бизнес-системах
Для коммерческих проектов, особенно в сфере автоматизации ответов на отзывы маркетплейсов, качественная оценка RAG важна. Неточные ответы повредят репутации бренда и снизят конверсию.
Современные сервисы для селлеров, такие как SaleSynergy, используют многоуровневую систему оценки. Это обеспечивает высокое качество автоответов на отзывы. Система проверяет фактическую точность, соответствие тону бренда и релевантность контексту отзыва.
Практические рекомендации
Что делать:
- Начинайте с небольшого, хорошо размеченного датасета.
- Используйте комбинацию автоматических метрик и экспертной оценки.
- Настройте автоматические тесты для регрессионного тестирования.
- Ведите таблицу «вопрос → фрагмент → ответ → оценка» для анализа.
Чего избегать:
- Не полагайтесь только на синтетически сгенерированные вопросы.
- Не оценивайте RAG по финальному ответу без анализа промежуточных этапов.
- Не используйте нестабильные версии evaluation-библиотек в продакшене.
- Не игнорируйте человеческую валидацию спорных случаев.
Заключение
Профессиональная оценка RAG-систем требует системного подхода и правильных инструментов. Разделение на оценку поиска и генерации, использование специализированных метрик и автоматизация тестирования превращают разработку RAG из эксперимента в инженерную практику. Результат - измеримые критерии качества.
Инвестиции в качественную систему оценки окупаются. Они повышают точность ответов, снижают риски и позволяют систематически улучшать продукт на основе объективных данных.