- BrainTools - https://www.braintools.ru -

Чек-лист тестирования поисковой системы: от engine sanity до RAG и графов знаний

Чек-лист для тестирования поисковых и RAG-систем — от базовой работоспособности поискового движка до качества генерации, агентных сценариев и поведения [1] на неполных данных. Шесть уровней проверок, сводная таблица с инструментами для каждого уровня и глоссарий из 50+ терминов. Проверку стоит организовывать по порядку, нет смысла гонять RAG-метрики, если система не проходит Уровень 0, то проблема может быть в том, что поиск не находит документ из-за опечатки в запросе, а не в качестве генерации.

Перед тестированием 

  • По каким полям/источникам поиск должен работать, по каким — нет

  • Поиск по включению или полному соответствию?

  • Регистрозависимый ли поиск?

  • Есть ли верхняя граница длины запроса? Что происходит при превышении?

  • Как ведет себя система при пустом запросе?

  • Если система гибридная (retrieval + LLM) — на каком этапе подключается LLM: переформулировка запроса, ранжирование, генерация ответа, все сразу?

  • Какой формат ожидаемого ответа: список документов / сгенерированный текст / то и другое с цитированием?

Уровень 0 — Функциональный (engine sanity)

Базовая работоспособность поискового движка.

Название теста

Результат тестирования

Поиск находит по всем полям, указанным в ТЗ

Поиск не находит по полям, не указанным в ТЗ

Регистронезависимость (платье = Платье = ПЛАТЬЕ)

Два слова из одного поля в разном порядке

Два слова из разных полей одновременно

Исправление опечаток (1–2 символа)

Исправление неправильной раскладки клавиатуры

Поддержка нескольких языков, смешанный запрос

Спецсимволы не ломают поиск

Эмодзи не ломают систему

Trim ведущих/конечных пробелов

Пустое поле и поле из одних пробелов

Нижняя граница длины запроса

Верхняя произвольная граница (по ТЗ)

Технологическая граница (очень длинный текст)

Учет контекста поиска (весь индекс vs раздел/проект)

Уровень 1 — Классический Information Retrieval / качество ранжирования 

Название теста

Результат тестирования

Собран golden query set с экспертной разметкой релевантности

Precision@k на golden set

Recall@k на golden set

NDCG@k

MRR (Mean Reciprocal Rank)

MAP (Mean Average Precision)

Уровень 2 — RAG: качество найденного контекста 

Название теста

Результат тестирования

Contextual Precision — нет нерелевантного шума в контексте

Contextual Recall — достаточно контекста для полного ответа

Контекст не превышает окно модели, важное не обрезано

Конфликтующие источники оба попадают в контекст, а не теряется один

Уровень 3 — RAG: качество сгенерированного ответа

Название теста

Результат тестирования

Faithfulness/Groundedness

Hallucination rate на заведомо неполном контексте

Answer Relevance

Completeness

Citation/attribution accuracy

G-Eval по кастомной рубрике домена

Summarization: alignment score + coverage score

Уровень 4 — Агентность и навигация по графу знаний 

Название теста

Результат тестирования

Multi-hop вопросы решаются корректно

Tool/Source correctness — обращение к правильным источникам в правильном порядке

Task completion — задача решена целиком

Plan adherence — путь навигации логичен, без лишних прыжков

Точность fact extraction (precision/recall против ground truth)

Disambiguation похожих, но разных сущностей

Уровень 5 — Неполные и слабосвязанные данные

Ключевой риск для гибридных систем: на «чистых» тестовых данных эти проблемы не видны.

Название теста

Результат тестирования

Честное «не знаю» при отсутствии данных для ответа

Явное обозначение частичной информации (не достраивается как факт)

Слабосвязанные сущности не объединяются в один ответ

Отсутствующие звенья графа явно отмечаются, а не угадываются

Конфликт [2] устаревших и актуальных данных обрабатывается явно

Калибровка уверенности соответствует реальной полноте данных

Тест на переэкстраполяцию (контекст покрывает вопрос на 60–70%)

Adversarial/edge-case набор с экспертной разметкой

Деградация recall по мере роста графа на старых, но валидных связях

Сводная таблица по уровням 

Уровень

Что проверяем

Инструменты

0 — Функциональный

Поля, регистр, опечатки, границы

pytest, Hypothesis, Postman, k6

1 — Классический IR

Precision/Recall/NDCG/MRR на golden set

ranx, trec_eval, свои скрипты

2 — Контекст RAG

Релевантность и полнота найденного

deepeval, RAGAS

3 — Генерация RAG

Faithfulness, hallucination, relevance

deepeval, RAGAS, TruLens

4 — Агентность/граф

Multi-hop, fact extraction, task completion

deepeval (trace, agent metrics)

5 — Неполные данные

Abstention, переэкстраполяция, конфликты

кастомный G-Eval + экспертная разметка

Чек-лист стоит читать сверху вниз по приоритету: нет смысла гонять RAG-метрики, если не пройден Уровень 0 — система может «отвечать неполно» просто потому, что не нашла документ из-за опечатки в запросе, а не из-за проблем с генерацией.

Термины и определения 

Термин

Определение

RAG (Retrieval-Augmented Generation)

Архитектура, в которой языковая модель генерирует ответ не только на основе своих внутренних знаний, а с опорой на документы, найденные поисковым/retrieval-слоем в реальном времени.

LLM (Large Language Model)

Большая языковая модель — отвечает за генерацию текста ответа в RAG-системе.

Retrieval

Этап поиска релевантных документов/фрагментов в базе перед передачей их модели для генерации ответа.

Эмбеддинг (embedding)

Числовое векторное представление текста, отражающее его смысл; используется для поиска похожих по смыслу фрагментов.

Векторный поиск (vector search)

Поиск документов по близости эмбеддингов, а не по точному совпадению слов.

BM25

Классический алгоритм полнотекстового поиска по совпадению ключевых слов с учетом их частоты и длины документа.

Гибридный retrieval (hybrid retrieval)

Комбинация классического (BM25) и векторного поиска для повышения полноты и точности выдачи.

Ранжирование (ranking)

Упорядочивание найденных документов по релевантности запросу.

Golden query set

Набор запросов с заранее экспертно размеченными правильными/релевантными ответами, используемый как эталон для измерения качества.

Precision@k

Доля релевантных документов среди первых k результатов выдачи.

Recall@k

Доля всех существующих релевантных документов, которая попала в первые k результатов.

NDCG (Normalized Discounted Cumulative Gain)

Метрика ранжирования, учитывающая не только наличие релевантного документа в выдаче, но и его позицию — выше позиция важнее.

MRR (Mean Reciprocal Rank)

Средняя обратная позиция первого правильного ответа по набору запросов.

MAP (Mean Average Precision)

Усредненная точность по всем релевантным документам и по всем запросам в наборе.

Contextual Precision

Метрика RAG: насколько найденный для генерации контекст не содержит нерелевантного «шума».

Contextual Recall

Метрика RAG: достаточно ли найденного контекста, чтобы полностью ответить на вопрос.

Faithfulness / Groundedness

Соответствие сгенерированного ответа фактам, действительно присутствующим в найденном контексте.

Галлюцинация (hallucination)

Утверждение в ответе модели, не подтвержденное исходными данными — модель «придумывает» факт.

Answer Relevance

Соответствие сгенерированного ответа смыслу заданного вопроса.

Completeness

Полнота ответа: присутствует ли вся нужная информация, доступная в контексте.

Citation/attribution accuracy

Точность ссылок на источники, которые модель указывает в ответе.

LLM-as-judge

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

G-Eval

Метод оценки качества текста через LLM-as-judge с явно описанной текстовой рубрикой/критериями оценки.

Alignment score / coverage score

Метрики качества суммаризации: alignment — отсутствие искажений и противоречий исходному тексту, coverage — полнота передачи ключевой информации.

Агент (agent, agentic system)

Система на основе LLM, способная самостоятельно планировать последовательность действий (например, обращений к разным источникам) для решения задачи.

Tool correctness

Метрика, оценивающая, вызвал ли агент нужные инструменты/источники в правильном порядке.

Task completion

Метрика, оценивающая, решена ли задача целиком, а не только похож ли финальный ответ на правдоподобный.

Plan adherence

Соответствие действий агента заранее построенному или заявленному плану решения задачи.

Multi-hop (multi-hop reasoning)

Необходимость связать информацию из нескольких источников/шагов для получения ответа.

Граф знаний (knowledge graph)

Структура данных, представляющая сущности (тикеты, документы, людей) и связи между ними, по которой можно «навигировать» для ответа на сложные вопросы.

Fact extraction

Автоматическое извлечение фактов (сущностей и связей между ними) из неструктурированного текста.

Disambiguation

Определение, какая из нескольких похожих по названию сущностей имеется в виду в конкретном случае.

Adversarial dataset

Набор специально подобранных «сложных» тестовых случаев, призванных выявить слабые места системы.

Abstention

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

Переэкстраполяция (over-extrapolation)

Ситуация, когда модель домысливает недостающую часть ответа из общих знаний, выдавая это за специфичный факт из системы.

Дрифт (drift)

Постепенная деградация качества системы во времени из-за изменения данных или их объема.

CTR (Click-Through Rate)

Доля пользователей, кликнувших на результат поиска, относительно всех, кто его увидел.

Dwell time

Время, которое пользователь провел на найденном результате — косвенный сигнал релевантности.

Abandonment rate

Доля поисковых сессий, завершившихся без клика по результату.

Red-teaming

Намеренное «атакующее» тестирование системы для поиска уязвимостей и небезопасного поведения [3].

Prompt injection

Атака, при которой во входные данные (в том числе в индексируемые документы) внедряется текст, пытающийся изменить поведение модели.

CI/CD (Continuous Integration / Continuous Deployment)

Практика автоматического прогона тестов и развертывания изменений при каждом обновлении кода.

Property-based testing

Подход к тестированию, при котором тестовые данные генерируются автоматически по заданным правилам, а не перечисляются вручную, чтобы найти неочевидные edge-кейсы.

Автор: podluzny

Источник [4]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/32875

URLs in this post:

[1] поведения: http://www.braintools.ru/article/9372

[2] Конфликт: http://www.braintools.ru/article/7708

[3] поведения: http://www.braintools.ru/article/5593

[4] Источник: https://habr.com/ru/articles/1057356/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1057356

www.BrainTools.ru

Rambler's Top100