Как это работает
Метрика особенно важна для составных вопросов, где факты лежат в нескольких чанках. Hit rate засчитает такой вопрос при одном найденном фрагменте, а recall покажет, что найдена только часть нужного.
В некоторых фреймворках оценки (например, в библиотеке RAGAS) context recall считают по эталонному ответу: проверяют, какие его утверждения подтверждаются найденным контекстом. Парная метрика — context precision, которая показывает, нет ли в выдаче лишнего.
recall@k = (найденные нужные чанки в top-k) / (все нужные чанки)
Пример
1def recall_at_k(found_ids: list[str], relevant_ids: list[str]) -> float:
2 return len(set(found_ids) & set(relevant_ids)) / len(relevant_ids)Как применять в тестировании ИИ
Если ответ плохой, а faithfulness высокая, часто виноват низкий context recall: поиск не принёс часть нужной информации. Проверяйте его на наборе с известными релевантными чанками и следите после изменений чанкинга и базы знаний.
Типичные ошибки
- Смотреть только precision: выдача чистая, но неполная.
- Не различать hit rate и recall для вопросов, которым нужно несколько фрагментов.
- Не пересчитывать recall после обновления базы знаний.
Частые вопросы
Что такое context recall в RAG?
Это доля нужной для ответа информации, которую нашёл поиск. Низкое значение означает, что часть необходимых фактов не попала в найденные фрагменты, и модель отвечает по неполным данным.
Чем context recall отличается от context precision?
Recall отвечает на вопрос «нашли ли всё нужное», precision — «нет ли среди найденного лишнего». Для хорошего поиска нужны обе метрики: полнота без шума.