Выбор ответа Middle RAG спрашивают часто обновлено
Bi-encoder и cross-encoder
Вопрос
Почему реранкер (cross-encoder) применяют к 50 кандидатам, а не ко всему индексу?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он обрабатывает каждую пару «запрос и документ» целиком, векторы заранее не посчитать: точно, но дорого. Bi-encoder кодирует документы заранее, при запросе считается только вектор запроса и сходства.
Варианты ответа
- Cross-encoder умеет обрабатывать только 50 документов за вызов из-за ограничения API провайдера
- Он обрабатывает каждую пару «запрос и документ» целиком, векторы заранее не посчитать: точно, но дорогоправильный ответ
- Cross-encoder менее точен, чем bi-encoder, поэтому его ставят первым в воронке как быстрый грубый фильтр
- Он требует, чтобы документы были отсортированы по дате, а это возможно только для топа
Разбор
Bi-encoder кодирует документы заранее, при запросе считается только вектор запроса и сходства. Cross-encoder видит запрос и документ вместе, внимание связывает их токены, поэтому оценка точнее, но вызов нужен на каждую пару в момент запроса. Отсюда воронка: дешёвый ретривер достаёт кандидатов, дорогой реранкер их упорядочивает. Жёсткого лимита на 50 нет. Роли наоборот: грубый фильтр это bi-encoder. Сортировка по дате не нужна.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.