Получить доступ

Что такое гибридный поиск и зачем совмещать BM25 с векторным поиском?

MiddleЭмбеддинги и векторный поиск
Ещё спрашивают так:
  • Почему векторный поиск не находит артикул или код ошибки?
  • Что такое Reciprocal Rank Fusion?
Коротко

Векторный поиск хорошо ловит смысл и перефразирования, но промахивается на точных совпадениях: артикулы, коды ошибок, имена, редкие термины. BM25 (лексический поиск) — наоборот. Гибридный поиск выполняет оба и объединяет списки — обычно через Reciprocal Rank Fusion (сумма 1/(k + ранг)).

  • RRF не требует нормализации разнородных оценок — работает по позициям
  • Альтернатива — взвешенная сумма нормированных оценок, вес подбирают на оценочном наборе
  • Elasticsearch, OpenSearch, Qdrant, Weaviate, PostgreSQL (pgvector + полнотекстовый поиск) умеют гибрид

А ещё После гибрида обычно ставят реранкер

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Почему одного вектора мало. Эмбеддинг «ошибка ORA-00942» похож на эмбеддинги любых сообщений об ошибках Oracle; нужный документ с этим кодом может не попасть в top-10. BM25 найдёт его по точному совпадению редкого токена. Зато BM25 не найдёт «как вернуть деньги» по документу «процедура возврата средств».

Reciprocal Rank Fusion:

score(doc) = Σ по спискам 1 / (k + rank_в_списке)     # k ≈ 60

Документ, высоко стоящий в обоих списках, поднимается наверх. Оценки BM25 и косинусной близости при этом сравнивать не нужно — они в разных шкалах.

Практика:

  • для русского — правильный анализатор (морфология) в лексической части;
  • фильтры по метаданным (дата, тип документа, права доступа) применяются до или вместе с поиском;
  • качество измеряют recall@k на наборе запросов с известными правильными документами.

Что хотят услышать

  • Сильные и слабые стороны лексического и векторного поиска.
  • Как объединить результаты, RRF.
  • Где это реализовано и как оценивать.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем