core-ai
Словарь ↗Реранкинг (Reranking)
Реранкинг (reranking) — это шаг доработки второго этапа в пайплайне поиска или извлечения, на котором начальный, широкий набор кандидатов-результатов — быстро и дёшево полученный через поиск по ключевым словам, векторный поиск по сходству или оба метода сразу — переоценивается более сложной (и вычислительно затратной) моделью, которая напрямую сравнивает запрос с каждым кандидатом, чтобы получить более точное ранжирование по релевантности, прежде чем окончательные лучшие результаты будут использованы. Причина, по которой существует этот двухэтапный подход (сначала широкое извлечение, затем точный реранкинг), а не просто запуск дорогой точной модели напрямую по всему корпусу: точные модели оценки, используемые для реранкинга (обычно кросс-энкодеры, которые обрабатывают запрос и каждый документ вместе за один проход, чтобы напрямую их сравнить), гораздо точнее оценивают истинную релевантность, чем быстрый векторный поиск по сходству, но также слишком медленны и дороги для запуска по всему корпусу из тысяч или миллионов документов при каждом запросе — поэтому практический паттерн заключается в использовании быстрого, приблизительного извлечения, чтобы сузить поле от миллионов документов до, скажем, топ-50-100 кандидатов, а затем применить более медленный, более точный реранкер только к этому гораздо меньшему набору. Это напрямую важно для качества RAG в SaaS-продуктах, потому что одно только начальное векторное извлечение часто возвращает набор результатов "достаточно хороший, но не совсем точный" — документы, тематически связанные, но не являющиеся единственным лучшим совпадением, или расположенные в неоптимальном порядке — и подача этого несовершенного ранжирования напрямую в контекстное окно LLM тратит бюджет токенов на маргинально релевантный контент и может размыть качество итогового сгенерированного ответа. Конкретный пример: юридическая RAG-система, ищущая в базе данных из 500 000 пунктов договоров по запросу о "расторжении по усмотрению", сначала использует быстрый векторный поиск, чтобы за миллисекунды получить топ-50 семантически похожих пунктов; затем она запускает модель реранкинга на основе кросс-энкодера (например, API rerank от Cohere или модель с открытым исходным кодом вроде BGE-reranker), которая индивидуально оценивает каждого из этих 50 кандидатов относительно точного запроса, и пайплайн оставляет только 5 результатов с наивысшей оценкой для фактической отправки в LLM — заметно улучшая точность ответа по сравнению с прямым использованием порядка сырого векторного поиска, потому что реранкер улавливает тонкие различия в релевантности, которые пропустило более быстрое начальное извлечение. Реранкеры обычно предлагаются как простой вызов API (отправьте запрос и список текстов-кандидатов, получите обратно отсортированный по релевантности список с оценками), что делает их простым дополнением к существующему пайплайну RAG. Реранкеры также служат второй, менее очевидной цели помимо чистого улучшения релевантности: поскольку они оценивают каждого кандидата независимо относительно запроса с помощью выделенной оценки релевантности (а не просто расстояния сходства), эта оценка может использоваться как сигнал уверенности — если даже лучший результат после реранкинга набирает балл ниже определённого порога, система может заключить, что "в корпусе на самом деле нет ничего, что хорошо отвечает на это", и запустить плавный откат ("я не смог найти уверенный ответ на это") вместо того, чтобы заставлять LLM генерировать ответ из маргинально релевантного контекста, напрямую снижая риск галлюцинаций в пайплайнах RAG.
Похожие термины