Назад к подготовке

Когда нужен hybrid retrieval

В поиске есть embeddings и полнотекстовый индекс. Когда использовать оба подхода и как их объединять?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

BM25 хорош для точных терминов, кодов, имен и редких слов. Vector search хорош для смысловой близости и перефразировок. Их объединяют union/weighted score/RRF, затем реранкер пересортировывает общий top-N.

Полный разбор

Полнотекстовый поиск надежен, когда пользователь пишет точный термин, номер договора, название продукта, ошибку или редкую сущность. Embedding retrieval лучше переносит синонимы, неполные формулировки и смысловые запросы. В реальном RAG часто нужны оба, потому что запросы смешанные.

Простые способы объединения: взять union top-K из BM25 и ANN, нормализовать scores и взвесить, или использовать Reciprocal Rank Fusion. После этого cross-encoder/LLM реранкер может пересортировать кандидатов по query-document relevance.

В production важно логировать вклад источников: что пришло из BM25, что из vector, что выбрал реранкер. Так можно понять, где система теряет recall и какие запросы требуют словарей, synonyms или улучшения embeddings.

Теория

Hybrid retrieval повышает recall, потому что lexical и semantic search ошибаются на разных типах запросов.

Типичные ошибки

  • Полностью заменить BM25 embeddings-поиском.
  • Складывать scores разных индексов без нормализации.
  • Не оценивать recall до реранжирования.