Реранкер в RAG: когда второй этап поиска окупается

реранкер в RAG
rerank
переранжирование поиска
cross-encoder
семантический поиск по базе знаний
качество поиска RAG
nDCG
Реранкер в RAG: когда второй этап поиска окупается

Реранкер (rerank) в RAG — это вторая модель поиска, которая получает уже найденные фрагменты вместе с вопросом и заново расставляет их по релевантности. Он не находит новые документы, а только уточняет порядок кандидатов из первого этапа. Свежий открытый тест на базе из 64 заметок показал, что обычный семантический поиск уже ставил нужную заметку первой в 23 случаях из 24, а реранкер исправил первый результат лишь один раз. Реранкер окупается там, где первый этап находит много похожих кандидатов и их порядок решает, какой контекст попадёт в ответ модели, — и это нужно проверять на своей базе, а не включать по умолчанию.

Материал подготовлен AIrassvet 14 октября 2026 года по статье на Хабре «Я добавил Rerank в Obsidian. Что показали тесты на 64 и 500 заметках» (13 октября 2026 года) и документации Sentence Transformers и Cohere. Он адресован руководителям проектов, ИТ-директорам и командам, которые строят корпоративный поиск, базу знаний или RAG-ассистента и решают, добавлять ли этап переранжирования. Мы не повторяли эксперимент сами: цифры принадлежат автору исходной статьи и относятся к его тестовым хранилищам. Статья не сравнивает поставщиков реранкеров и не охватывает настройку векторных баз. AIrassvet не аффилирован с автором теста и разработчиками упомянутых моделей; раздел в конце статьи описывает услуги издателя.

Содержание

Кратко

  1. Реранкер уточняет порядок, но не ищет заново. Если первый этап не нашёл нужный документ среди кандидатов, реранкер его не вернёт.
  2. На небольшой базе выигрыш мал. В тесте на 64 заметках nDCG@10 выросла с 0,94235 до 0,97502, но в шести из одиннадцати «улучшений» сдвинулись только слабые вспомогательные материалы.
  3. Иногда становится хуже. В двух запросах из 24 полезная заметка опустилась ниже, хотя первый результат остался правильным.
  4. Деньги — не главное ограничение, задержка — главное. Одно уточнение стоило в среднем около $0,00008, но добавляло около полусекунды по медиане и до 4 секунд в худшем случае.
  5. Метрика может не увидеть пользу. На 500 заметках документные метрики не изменились, а число фрагментов с полным ответом в первой десятке выросло с 29 до 39–40 из 40 в зависимости от модели.
  6. Решение автора теста: реранкер выключен по умолчанию и запускается кнопкой «Уточнить результаты».

Что такое реранкер и как работает двухэтапный поиск

Семантический поиск — это поиск по смыслу, а не по совпадению слов. Документы режут на фрагменты (чанки), каждый фрагмент превращают в числовой вектор — эмбеддинг, — а при запросе ищут фрагменты с ближайшими векторами. Так находится заметка «возобновление задачи с контрольной точки» по запросу «как продолжить обработку после сбоя».

Bi-encoder — модель, которая кодирует вопрос и документ по отдельности. Это быстро и подходит для коллекций из миллионов записей, но, как сказано в документации Sentence Transformers, такой поиск может возвращать нерелевантных кандидатов (Sentence Transformers, Retrieve & Re-Rank).

Cross-encoder — модель, которая получает вопрос и документ одновременно и выдаёт одну оценку релевантности. Она точнее, потому что сравнивает тексты в контексте друг друга, но оценивать так тысячи или миллионы пар слишком медленно. Поэтому сначала быстрый поиск отбирает, например, 100 кандидатов, а затем cross-encoder их переранжирует.

Реранкер — это и есть второй этап: модель, которая упорядочивает найденные документы от наиболее к наименее релевантным запросу (Cohere, Rerank Overview). Конкретная архитектура зависит от модели, но задача одна — уточнить порядок уже найденных кандидатов.

Первый этап: эмбеддинги Второй этап: реранкер
Что делает Находит кандидатов, близких по смыслу Переставляет кандидатов по релевантности
Как сравнивает Вектор вопроса и векторы документов вычислены независимо Вопрос и документ подаются модели вместе
Скорость Подходит для всей базы Подходит только для десятков-сотен кандидатов
Может найти пропущенное? Да, это его задача Нет — работает только с тем, что нашёл первый этап
Что получает провайдер Тексты при построении индекса и вопрос при поиске Читаемые фрагменты при каждом уточнении

Где реранкер стоит в общей архитектуре корпоративного ИИ-поиска, мы разбирали в статье о RAG-системе для бизнеса.

Как измеряют качество поиска: nDCG, Hit@1 и MRR

Чтобы сравнивать поиск «до» и «после», нужна разметка: для каждого вопроса заранее решают, какие документы полезны. Автор теста использовал шкалу от 0 до 3: 0 — документ не относится к вопросу, 1 — слабая связь, 2 — полезный, но неполный ответ, 3 — прямой и полный ответ.

  • Hit@1 показывает, оказался ли на первом месте релевантный документ.
  • MRR@10 усредняет обратную позицию первого релевантного документа: первое место даёт 1, второе — 0,5, третье — примерно 0,33, отсутствие в первой десятке — 0.
  • nDCG@10 (Normalized Discounted Cumulative Gain) учитывает сразу и релевантность каждого документа, и его позицию в первой десятке: чем ниже полезный документ, тем меньше его вклад. Значение от 0 до 1, где 1 — идеальный порядок по разметке.

Важная оговорка: если всем документам выставить одинаковую оценку, любая перестановка сохранит идеальную метрику. Это ровно то, что случилось во втором эксперименте автора, о нём ниже.

Что показал тест на 64 заметках

Автор разрабатывает открытый плагин Veynrel для Obsidian с семантическим поиском и проверял, стоит ли запускать реранкер автоматически (Хабр, 13.10.2026). Для теста он собрал синтетическое хранилище, в котором первому этапу должно быть трудно: 64 заметки, 80 фрагментов, близкие темы с разной полезностью. Вопросов — 28: для 24 в корпусе был ответ, ещё четыре составлены так, чтобы ответа не было. Положительные вопросы разделены на шесть групп: перефразирование, отрицания, похожие операции, разные языки, несколько источников и длинные заметки.

Первый этап — эмбеддинги text-embedding-3-small, до 30 кандидатов на вопрос; второй — Voyage Rerank 3 Lite через OpenRouter. Модель не получала правильных ответов, а документы не добавлялись вручную.

Метрика (24 вопроса с ответом) Только эмбеддинги После реранкера
Релевантный документ на первом месте 23 из 24 24 из 24
Релевантный документ в первой тройке 24 из 24 24 из 24
MRR@10 0,97917 1,00000
nDCG@10 0,94235 0,97502

По nDCG@10 получилось 11 улучшений, 11 случаев без изменений и 2 ухудшения; средняя оценка выросла примерно на 0,0327. Но автор посмотрел, какие документы сдвинулись:

  • В шести из одиннадцати улучшений изменились позиции только слабых материалов с оценкой 1, а полезные документы остались на месте.
  • В пяти случаях поднялись релевантные заметки, и лишь однажды реранкер исправил первый результат — поднял нужную заметку со второго места на первое.

Где реранкер помог. Вопрос — как продолжить прерванную конвертацию данных, не повторяя завершённые операции. В базе были две близкие заметки: о плановой остановке сервиса и о контрольных точках после аварийного завершения. Первый этап поставил первой плановую остановку, реранкер — заметку о контрольных точках. nDCG@10 для этого вопроса выросла с 0,5788 до 0,9640.

Где стало хуже. В вопросе об упражнениях для активной речи главный ответ остался первым, но полезная заметка о комплексной практике опустилась с четвёртого места на восьмое; nDCG@10 снизилась с 0,9149 до 0,8872. Вторая регрессия — в вопросе о проверке восстановления из бэкапа. Автор проверил, что нужный текст попадал в запросы к модели, так что дело не в потере данных.

Ещё два наблюдения. На четырёх многоязычных запросах метрика не изменилась, а один из них выполнялся больше четырёх секунд. На вопросах без ответа реранкер всё равно возвращал упорядоченный список: высокий балл реранкера сам по себе не доказывает, что ответ в базе есть.

Сколько стоит и какую задержку добавляет реранкер

Сначала автор сравнил три модели на четырёх простых вопросах — все поставили нужный документ первым (Хабр, 13.10.2026):

Модель Правильный первый результат Средняя задержка Стоимость 4 запросов
Cohere Rerank 3.5 4 из 4 490 мс $0,004
Voyage Rerank 3 Lite 4 из 4 521 мс $0,0000102
Qwen3 Reranker 8B 4 из 4 662 мс $0,0002844

На этой выборке Voyage оказалась примерно в 392 раза дешевле Cohere, но у моделей разные схемы тарификации, и на других объёмах соотношение может отличаться.

В основном тесте на 64 заметках 28 вызовов реранкера стоили $0,00223506, а весь прогон вместе с эмбеддингами — $0,00243830; одно уточнение — в среднем около $0,00008. Это примерно в 31 раз дороже, чем в коротком тесте: на уточнение уходило до 30 кандидатов, и стоимость растёт с их числом и длиной.

Задержка реранкера (тест на 64 заметках) Время
Средняя 675 мс
Медиана 516 мс
95-й перцентиль 1042 мс
Самый долгий запрос 4020 мс

Вывод автора: деньги оказались наименее заметным ограничением, а задержка — самым заметным. Если человек сам нажал кнопку, полсекунды терпимы; ждать вторую модель при каждом поиске быстро надоедает. Для RAG-ассистента, где после поиска ещё генерируется ответ, эта задержка добавляется к общему времени ответа.

Тест на 500 заметках: документ или фрагмент

Третий прогон автор провёл на демонстрационном хранилище из 500 заметок (1600 фрагментов) — методика и агрегированные результаты опубликованы вместе со статьёй (Хабр, 13.10.2026). Хранилище оказалось шаблонным: названия технологий и общие описания без конкретных ответов. В итоге осталось всего 4 содержательных вопроса и 20 диагностических без ответа. Разметку 12 000 пар «вопрос — документ» сделал ИИ-агент, а проверил второй агент без доступа к результатам моделей; независимой проверки людьми не было.

На уровне документов все 500 заметок получили оценку «полный ответ» на все четыре вопроса, поэтому Hit@1, MRR@10 и nDCG@10 были равны 1 и до реранкера, и после. Но плагин отправляет реранкеру только один фрагмент на заметку, а ответ мог лежать в другом разделе. Когда отдельно оценили сами фрагменты, картина изменилась:

Фрагментов с полным ответом в первой десятке (4 вопроса, всего 40 позиций) Результат
Исходный поиск 29 из 40
Voyage Rerank 3 Lite 40 из 40
Cohere Rerank 3.5 39 из 40
Qwen3 Reranker 8B 40 из 40

Изменение затронуло два вопроса из четырёх. Реранкер поднимал выше кандидатов, у которых уже выбранный фрагмент содержал ответ. Для RAG это важное наблюдение: в окно модели попадают фрагменты, а не документы, поэтому качество поиска стоит мерить и на уровне фрагментов. Документная метрика может показать «без изменений» там, где контекст для генерации стал лучше. Сам автор подчёркивает, что выводов о больших технических базах из этого прогона не делает: содержательных вопросов было мало.

Когда реранкер нужен, а когда нет

Ниже — таблица решений редакции AIrassvet по выводам теста и описанию двухэтапного поиска в документации. Это ориентиры для проверки, а не измеренные пороги.

Ситуация Реранкер скорее нужен? Почему
Сотни разнородных документов, конкретные вопросы Скорее нет Первый этап часто уже ставит нужный документ первым
Тысячи похожих документов: регламенты, инструкции, решения инцидентов с одинаковой лексикой Скорее да Первому этапу нужно найти группу кандидатов, второму — различить их
Одна тема раскрыта в нескольких документах разной полноты Скорее да Порядок решает, увидит ли пользователь сначала пример или определение
RAG с ограниченным окном контекста Проверить обязательно Порядок фрагментов определяет, какой контекст попадёт к модели
Первый этап часто вообще не находит нужный документ Нет, сначала чинить первый этап Реранкер не восстановит пропущенное: улучшайте чанкинг, гибридный поиск, метаданные
Строгое требование к задержке ответа Только с замером Медиана около 0,5 с, хвост до секунд
Данные нельзя отправлять внешнему провайдеру Только локальная модель Облачный реранкер получает читаемый текст при каждом уточнении

Если в вашей базе много точных идентификаторов — артикулов, номеров договоров, кодов ошибок, — сначала проверьте гибридный поиск по словам и смыслу; пример такого подхода разобран в статье об умном поиске для интернет-магазина.

Как проверить реранкер на своей базе знаний

Методика ниже повторяет логику теста из статьи на Хабре и подходит для корпоративной базы. Это план редакции, а не результат нашего внедрения.

  1. Соберите вопросы из реальной работы. Возьмите настоящие запросы сотрудников или клиентов, включая перефразирования, отрицания («без отправки в облако»), похожие операции, разные языки и вопросы, на которые в базе ответа нет.
  2. Разметьте релевантность заранее. Шкала 0–3 для документов и отдельно — содержит ли выбранный фрагмент полный ответ. Разметку лучше делать до запуска моделей и проверять выборочно людьми.
  3. Зафиксируйте пул кандидатов. Сохраните кандидатов первого этапа (например, 30) и передавайте реранкеру ровно их, чтобы сравнение было честным.
  4. Считайте несколько метрик. Hit@1, MRR@10, nDCG@10 на уровне документов и долю фрагментов с полным ответом в первой десятке.
  5. Разберите каждое изменение глазами. Сколько улучшений касаются только слабых материалов, сколько раз исправлен первый результат, где стало хуже.
  6. Замерьте цену и задержку. Медиана, 95-й перцентиль, самый долгий запрос, стоимость по биллингу на одно уточнение.

Шаблон итогового отчёта, который стоит заполнить перед решением:

Показатель Без реранкера С реранкером Решение
Hit@1
nDCG@10
Фрагментов с полным ответом в топ-10
Исправлено первых результатов / ухудшений
Медиана и p95 задержки
Стоимость одного уточнения

Если вы выбираете между несколькими реранкерами или эмбеддинг-моделями, тот же набор вопросов работает как ваш собственный бенчмарк; почему публичных рейтингов для такого выбора недостаточно, мы разбирали в статье о своём бенчмарке для выбора LLM. Как отдельно оценивать поиск, ответы и галлюцинации RAG, — в статье о точности RAG.

Приватность: что уходит внешнему провайдеру

Реранкеру нужен читаемый текст фрагментов. При облачной модели выбранные фрагменты отправляются провайдеру при каждом уточнении — в дополнение к текстам, которые уходили при построении индекса, если эмбеддинги тоже облачные.

Автор теста нашёл неочевидную утечку (Хабр, 13.10.2026): модуль разбиения заметок подставлял имя файла как запасной заголовок, и это имя попадало прямо в тело запроса к провайдеру, хотя поля с путями из запроса были убраны. Исправление потребовало отдельного представления фрагмента для отправки наружу.

Практические выводы для корпоративной базы:

  • проверяйте содержимое исходящих HTTP-запросов, а не только список полей;
  • учитывайте, что служебные данные — имена файлов, пути, метаданные — могут попасть в текст фрагмента;
  • если в документах есть персональные или коммерческие данные, рассмотрите локальный реранкер или модель в российском контуре.

Автоматически или по кнопке

У автора теста не было данных, которые позволили бы заранее понять, на каком запросе второй этап поможет. Поэтому в версии плагина 2.1.0 он выбрал ручной режим (Хабр, 13.10.2026): пользователь получает обычные результаты и, если они кажутся неточными, нажимает «Уточнить результаты». Плагин хранит до 30 кандидатов первого этапа, показывает 10 и при уточнении не повторяет поиск. Автоматический режим сохранён в настройках.

Для корпоративной системы есть три варианта:

Режим Когда подходит Риск
Всегда включён Тест на ваших данных показал устойчивый выигрыш, а задержка приемлема Платите задержкой за каждый запрос, даже когда пользы нет
По кнопке Сценарий поиска, где человек сам просматривает результаты Пользователь может не заметить кнопку
По правилу Включается для определённых типов запросов или разделов базы Правило нужно обосновать замером, иначе это догадка

Частые вопросы

Что такое реранкер в RAG?

Это вторая модель поиска, которая получает найденные фрагменты вместе с вопросом и заново расставляет их по релевантности. Она не ищет новые документы, а уточняет порядок кандидатов, которые нашёл первый этап.

Чем cross-encoder отличается от обычных эмбеддингов?

Эмбеддинги кодируют вопрос и документ по отдельности и сравнивают векторы — это быстро. Cross-encoder получает вопрос и документ вместе и оценивает их в контексте друг друга — это точнее, но слишком медленно для всей базы, поэтому его применяют к десяткам-сотням кандидатов.

Всегда ли реранкер улучшает поиск?

Нет. В открытом тесте на 64 заметках он исправил первый результат один раз из 24, а в двух запросах ухудшил порядок следующих документов. Польза зависит от того, сколько в базе похожих документов и как хорошо работает первый этап.

Сколько стоит реранкер?

В тесте на Хабре одно уточнение через Voyage Rerank 3 Lite стоило в среднем около $0,00008 при 30 кандидатах. Стоимость растёт с числом и длиной кандидатов и зависит от тарифа модели, поэтому её стоит измерить на своих данных.

Может ли реранкер найти документ, которого нет в выдаче?

Нет. Он работает только с кандидатами первого этапа. Если нужный документ не попал в пул кандидатов, нужно улучшать первый этап: чанкинг, эмбеддинги, гибридный поиск или метаданные.

Как понять, нужен ли реранкер нашей базе знаний?

Проверить на своих вопросах: сравнить поиск с реранкером и без него по Hit@1, nDCG@10 и доле фрагментов с полным ответом, разобрать каждое изменение и замерить задержку и цену. Включать его стоит, если выигрыш устойчив, а задержка приемлема для сценария.

Первоисточники и метод проверки

Метод: мы прочитали исходную статью целиком 14 октября 2026 года, выписали все метрики, цены и задержки вместе с оговорками автора и сверили описание двухэтапного поиска с документацией. Собственного теста реранкеров AIrassvet не проводил; таблица решений и план проверки — методика редакции.

Ограничения: все тесты автора проведены на синтетических или шаблонных хранилищах заметок, а не на корпоративной базе; разметка 500 заметок сделана ИИ-агентами без проверки людьми; цены и тарифы провайдеров меняются.

Как AIrassvet помогает настроить поиск в RAG-системе

Если ваш ИИ-ассистент отвечает по внутренним документам, качество ответа начинается с того, какие фрагменты он находит. Решение о реранкере стоит принимать по замеру, а не по умолчанию. На сайте AIrassvet описаны направления, которые относятся к этой задаче напрямую:

  • RAG-системы и корпоративные базы знаний: разбиение документов, первый этап поиска и проверка переранжирования на ваших вопросах.
  • Развёртывание и дообучение языковых моделей на серверах заказчика — если фрагменты документов нельзя отправлять внешнему провайдеру.
  • Аудит процессов, подготовка данных и разметка вопросов для оценки поиска.
  • Разработка MVP, интеграция и тестирование до запуска на всю базу.

Первый шаг — выбрать один раздел базы знаний и одну группу пользователей, собрать их реальные вопросы, описать источники документов и ограничения по их передаче и договориться о критерии: какая доля правильных первых результатов и какая задержка будут для вас достаточными.

Обсудить задачу.

Итог: сначала замер, потом второй этап

Реранкер — полезный инструмент, но не обязательный слой каждой RAG-системы. Открытый тест показал: на небольшой базе с хорошим первым этапом он почти не меняет первый результат, иногда ухудшает следующие позиции и добавляет около полусекунды задержки. Зато там, где много похожих документов и важен порядок фрагментов для генерации, второй этап может поднять наверх фрагменты с полным ответом.

Поэтому решение принимают по данным: свои вопросы, разметка, метрики на уровне документов и фрагментов, замер цены и задержки. Если выигрыш устойчив — включайте реранкер для нужных сценариев; если нет — улучшайте первый этап поиска.

← Все статьи

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий
Регистрация не требуется