BM25 vs эмбеддинги vs реранкеры: поисковый стек в 2026 году

Автоматический перевод Эта статья была автоматически переведена с оригинальной английской версии.

Хороший поисковый стек работает как воронка. Сначала недорогие методы собирают широкий набор кандидатов, а затем более дорогие методы уточняют уже существенно меньший набор. Проблемы часто начинаются, когда команды заменяют exact-text search эмбеддингами вместо того, чтобы комбинировать оба подхода.

Начните с фильтров и BM25 — сильного метода ранжирования по точному совпадению текста. Добавьте dense retrieval для поиска семантически близких результатов, затем объедините оба списка с помощью Reciprocal Rank Fusion (RRF) или аналогичного метода. Выполните реранкинг шортлиста с помощью cross-encoder. Используйте LLM только для небольшого финального набора, если прирост качества оправдывает дополнительные латентность и стоимость.

Последняя проверка: 2026-08-10. Стек ранжируется по recall, приросту качества ранжирования, корректности политик, p95-латентности и стоимости на реальных срезах запросов, а не по одному универсальному числу кандидатов.

Рекомендуемый стек

ЭтапПо умолчаниюЗадача
ФильтрацияСтруктурированные фильтрыОбеспечить соблюдение ограничений по тенанту, правам, продукту, языку, времени и доступности.
Lexical retrievalBM25Точные названия, ID, коды ошибок, юридические термины и токены с высокой точностью.
Dense retrievalЭмбеддингиСинонимы, перефразирования, неточный интент и семантический recall.
FusionReciprocal Rank Fusion или композиция взвешенных retrieverОбъединить sparse- и dense-кандидатов, не делая вид, что их score сопоставимы.
РеранкингCross-encoderПереставить ограниченный по латентности шортлист с учетом взаимодействия запроса и документа.
Финальная точностьLLM-реранкер или модель ответовРазрешить неоднозначные вопросы релевантности только после сокращения списка.
ОценкаRecall@k, nDCG, MRR, click labels, human labelsДоказать, что каждый этап улучшает предыдущий.

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

Поверхность продуктаОптимальный вариант по умолчаниюПочему
Поиск по документацииBM25 плюс эмбеддинги плюс cross-encoderВажны и точные имена API, и семантические вопросы.
RAG retrievalГибридный retrieval плюс реранкер плюс проверки цитатОтсутствие подтверждающих данных обычно хуже медленной генерации.
Поиск по продуктамLexical-фильтры плюс гибридный retrieval плюс бизнес-признакиВажны доступность, цена, популярность и точные facets.
Поиск по обращениям в поддержкуГибридный retrieval плюс актуальность и метаданные тикетовВажны и похожие формулировки, и текущая политика.
Внутренняя база знанийБазовый BM25, затем dense retrieval на основе логов запросовСначала получите измеримый результат, а уже потом добавляйте стоимость моделей.
Поиск по юридическим и комплаенс-даннымLexical-база плюс строгие фильтры, затем осторожное семантическое расширениеИ false positives, и false negatives обходятся дорого.

Почему BM25 по-прежнему нужен в стеке

Эмбеддинги находят тексты с похожим смыслом, но не всегда надежно заменяют точное сопоставление. Коды ошибок, имена функций, SKU продуктов, юридические формулировки и имена людей часто передают интент именно через точное написание. BM25 остается сильным базовым методом, потому что повышает вес терминов, которые пользователь действительно ввел.

Dense retrieval повышает recall, когда пользователь не знает точной терминологии. Выбор не сводится к BM25 или эмбеддингам. Используйте BM25 для lexical recall, эмбеддинги — для semantic recall, а fusion — для их объединения.

Когда добавлять реранкер

Добавьте cross-encoder, когда релевантные документы попадают в набор кандидатов, но занимают слишком низкие позиции. Выбирайте число кандидатов на основе измеренных recall и латентности; top 50 — полезная точка для эксперимента, но не универсальный порог.

Не добавляйте LLM-реранкер раньше cross-encoder, если только набор кандидатов не очень мал. Оценка релевантности также должна быть достаточно тонкой, чтобы оправдывать затраты. LLM-реранкинг может помочь, но он дороже и медленнее. Сравнивайте его с более дешевым реранкером.

Последовательность оценки

  1. Разметьте реальные запросы для важных интентов, языков, прав доступа и стоимостей ошибок. Начните с малого, затем расширяйте выборку, пока срезы и неопределенность не позволят принять решение.
  2. Измерьте BM25 отдельно.
  3. Добавьте dense retrieval и измерьте дельту recall.
  4. Добавьте fusion и измерьте nDCG и Recall@k.
  5. Добавьте реранкинг cross-encoder и измерьте Precision@1 и nDCG.
  6. Добавляйте LLM-реранкинг только в том случае, если после учета стоимости и латентности он повышает качество.
  7. Отслеживайте продакшен-метрики: долю запросов без результатов, долю переформулированных запросов, click-through, исправления ответов, p95-латентность и стоимость.

Дополнительные материалы

Ссылки