РУКОВОДСТВО · ОБНОВЛЕНО 2026-10-10
Гибридный поиск BM25 и векторы: как объединить выдачу
Артикулы и точные термины нужны рядом с поиском по смыслу. Разберём два списка кандидатов, их слияние и проверку результата до генерации ответа.
Гибридный поиск объединяет лексическую и векторную выдачи. Сначала получите кандидатов с одинаковыми правами и идентификаторами, затем примените выбранный способ слияния и оцените результат на размеченных вопросах. RRF использует позиции в списках; он не делает их исходные scores сопоставимыми вероятностями.
1. Найдите разные классы запросов
Подготовьте вопросы по смыслу, точные названия, редкие термины, артикулы и сочетания нескольких условий. Для каждого отметьте документ с основанием и случаи, где подходящего источника нет. Сравните отдельный лексический и отдельный векторный поиск на одном корпусе. Это покажет, существует ли проблема, которую должен решить гибрид. Не подключайте второй метод только ради модного названия. В русском тексте отдельно проверяйте формы слов и отраслевые сокращения. Чужая демонстрация не доказывает качество вашей базы, а общая поддержка языка не заменяет такой набор вопросов.
2. Согласуйте документы и фильтры
Оба поиска должны возвращать сопоставимые единицы: документ или фрагмент с одним устойчивым ID. Если лексический индекс обновился, а векторный ещё хранит старую редакцию, слияние может вернуть устаревшее основание. Зафиксируйте версию источника и общий способ удаления записей. Права клиента и проекта применяйте до передачи кандидатов генератору. Для точного идентификатора проверьте анализатор и подходящий тип поля; обычный полнотекстовый запрос может преобразовать строку. Слово «BM25» само по себе не является обещанием побайтового совпадения артикула.
3. Выберите явный способ слияния
Сохраните оба списка и порядок кандидатов. Сырые scores BM25 и значения векторного сходства имеют разные шкалы; прямое сложение без нормализации требует отдельного обоснования. RRF, описанный в документации Qdrant, объединяет сигналы по позициям. Укажите число кандидатов каждой ветви и параметры слияния, затем проверяйте их как часть конфигурации. Не показывайте итоговую оценку пользователю как вероятность истинности ответа. Удаляйте повтор одного ID и сохраняйте происхождение результата, чтобы можно было объяснить, почему документ оказался в верхней части списка.
4. Проверьте ошибки до генерации
На контрольных вопросах сравните наличие нужного основания, его место и долю повторов от одного документа. Разберите ухудшения: редкий точный термин мог исчезнуть после слияния, а похожие по смыслу фрагменты — вытеснить другой источник. Отдельно проверьте фильтры и запросы без ответа. Если добавляете reranker, сначала зафиксируйте его вход: это следующий этап, а не замена проверки hybrid retrieval. Одинаковый шаблон генерации поможет оценить итоговый ответ, но убедительный текст не должен скрыть отсутствие документа с правильным основанием.
5. Версионируйте и ограничьте нагрузку
Сохраните настройки анализа текста, модель эмбеддингов, размеры выдач и способ слияния. После обновления корпуса повторяйте проверку удаления и актуальности. Измеряйте задержку каждой ветви отдельно; два поиска не обещают ускорения. Для внешних компонентов согласуйте условия обработки данных и бюджет до сетевого сравнения. В Tokenmost наличие руководства не означает управляемый поисковый индекс или embeddings endpoint. Начать можно с анализа сохранённых списков и разметки источников без платной генерации. Реальный эффект фиксируйте только по результатам собственной приёмки.
Частые вопросы
RRF складывает scores BM25 и векторов?
Он объединяет сигналы на основе позиций в ранжированных списках. Исходные числовые оценки не становятся общей вероятностью релевантности.
Гибрид всегда лучше одного метода?
Нет. Проверьте разные классы вопросов и ухудшения на одинаковом корпусе. Дополнительный компонент должен решать наблюдаемую задачу.
Почему точный артикул не находится?
Посмотрите анализатор, поле индекса и тип запроса. Полнотекстовый анализ может изменять идентификатор; выбор векторной модели не исправляет это автоматически.
Нужен ли reranker после гибрида?
Только если отдельная проверка показывает пользу. Сначала убедитесь, что нужный источник попадает в кандидаты и права фильтруются правильно.