Что такое reranker и зачем он нужен
Что проверяют
Понимаете ли вы, почему поиск и RAG строят в два этапа, и чем модель второй ступени отличается от той, что наполняет индекс. Заодно проверяют чувство стоимости: реранкер это всегда размен качества на задержку.
Как отвечать
Первая ступень отбирает кандидатов дёшево: BM25 или приближённый поиск соседей по эмбеддингам. Там запрос и документ кодируются независимо (bi-encoder), близость считается скалярным произведением, поэтому индекс масштабируется на миллионы документов. Платой служит грубость: модель не видит взаимодействия конкретных слов запроса с конкретным документом.
Реранкер это вторая ступень. Он берёт небольшой топ кандидатов и пересчитывает релевантность точнее. Классический вариант это cross-encoder: пара «запрос, документ» подаётся в одну модель целиком, на выходе скаляр релевантности. Точность заметно выше, но стоимость линейна по числу кандидатов, поэтому ко всей базе такое не применяют.
Реранкер бывает не только нейронным. Градиентный бустинг над признаками с listwise-лоссом хорошо работает там, где есть поведенческие сигналы: клики, длина просмотра, свежесть, популярность. В RAG реранкер ценен тем, что позволяет вытащить из индекса больше кандидатов и положить в контекст только верхушку.
Метрики называйте парами: Recall@k у первой ступени и nDCG или MRR после переранжирования.
Где спотыкаются
Меряют реранкер в отрыве от первой ступени. Если нужный документ не попал в отобранную сотню, никакая переранжировка его не вернёт, и упираться надо в полноту отбора, а не в качество второй модели.
Молчат про задержку. Cross-encoder на сотне кандидатов это сотня прогонов модели на каждый запрос. Без батчинга, усечения длины и ограничения размера топа такой сервис в продакшен не уедет.
Путают переранжирование с бизнес-правилами. Поднять свои товары или убрать недоступные это отдельный слой поверх релевантности, и если смешать его с обученной моделью, объяснить выдачу и починить её метрикой станет невозможно.