BM25 vs эмбеддинги vs реранкеры: поисковый стек в 2026 году
Автоматический перевод Эта статья была автоматически переведена с оригинальной английской версии.
Хороший поисковый стек работает как воронка. Сначала недорогие методы собирают широкий набор кандидатов, а затем более дорогие методы уточняют уже существенно меньший набор. Проблемы часто начинаются, когда команды заменяют exact-text search эмбеддингами вместо того, чтобы комбинировать оба подхода.
Начните с фильтров и BM25 — сильного метода ранжирования по точному совпадению текста. Добавьте dense retrieval для поиска семантически близких результатов, затем объедините оба списка с помощью Reciprocal Rank Fusion (RRF) или аналогичного метода. Выполните реранкинг шортлиста с помощью cross-encoder. Используйте LLM только для небольшого финального набора, если прирост качества оправдывает дополнительные латентность и стоимость.
Последняя проверка: 2026-08-10. Стек ранжируется по recall, приросту качества ранжирования, корректности политик, p95-латентности и стоимости на реальных срезах запросов, а не по одному универсальному числу кандидатов.
Рекомендуемый стек
| Этап | По умолчанию | Задача |
|---|---|---|
| Фильтрация | Структурированные фильтры | Обеспечить соблюдение ограничений по тенанту, правам, продукту, языку, времени и доступности. |
| Lexical retrieval | BM25 | Точные названия, ID, коды ошибок, юридические термины и токены с высокой точностью. |
| Dense retrieval | Эмбеддинги | Синонимы, перефразирования, неточный интент и семантический recall. |
| Fusion | Reciprocal 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-реранкинг может помочь, но он дороже и медленнее. Сравнивайте его с более дешевым реранкером.
Последовательность оценки
- Разметьте реальные запросы для важных интентов, языков, прав доступа и стоимостей ошибок. Начните с малого, затем расширяйте выборку, пока срезы и неопределенность не позволят принять решение.
- Измерьте BM25 отдельно.
- Добавьте dense retrieval и измерьте дельту recall.
- Добавьте fusion и измерьте nDCG и Recall@k.
- Добавьте реранкинг cross-encoder и измерьте Precision@1 и nDCG.
- Добавляйте LLM-реранкинг только в том случае, если после учета стоимости и латентности он повышает качество.
- Отслеживайте продакшен-метрики: долю запросов без результатов, долю переформулированных запросов, click-through, исправления ответов, p95-латентность и стоимость.
Дополнительные материалы
- Search Ranking Stack содержит полное пошаговое руководство по реализации.
- RAG Evaluation Metrics объясняет оценку retrieval и цитат.