Выбор ответа Middle RAG спрашивают часто обновлено

Bi-encoder и cross-encoder

Вопрос

Почему реранкер (cross-encoder) применяют к 50 кандидатам, а не ко всему индексу?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Он обрабатывает каждую пару «запрос и документ» целиком, векторы заранее не посчитать: точно, но дорого. Bi-encoder кодирует документы заранее, при запросе считается только вектор запроса и сходства.

Варианты ответа

  1. Cross-encoder умеет обрабатывать только 50 документов за вызов из-за ограничения API провайдера
  2. Он обрабатывает каждую пару «запрос и документ» целиком, векторы заранее не посчитать: точно, но дорогоправильный ответ
  3. Cross-encoder менее точен, чем bi-encoder, поэтому его ставят первым в воронке как быстрый грубый фильтр
  4. Он требует, чтобы документы были отсортированы по дате, а это возможно только для топа

Разбор

Bi-encoder кодирует документы заранее, при запросе считается только вектор запроса и сходства. Cross-encoder видит запрос и документ вместе, внимание связывает их токены, поэтому оценка точнее, но вызов нужен на каждую пару в момент запроса. Отсюда воронка: дешёвый ретривер достаёт кандидатов, дорогой реранкер их упорядочивает. Жёсткого лимита на 50 нет. Роли наоборот: грубый фильтр это bi-encoder. Сортировка по дате не нужна.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.