Какой BERT применяли для реранкинга
Что проверяют
Вопрос про ваш опыт, поэтому ждут конкретную модель, схему и причину выбора, а не лекцию о трансформерах. Следом почти всегда спрашивают, как уложились в задержку и чем мерили прирост качества.
Как отвечать
Назовите, что брали на самом деле, и сразу поясните схему. В реранкинге BERT почти всегда работает как cross-encoder: запрос и документ подаются одной последовательностью [CLS] запрос [SEP] документ [SEP], а голова над [CLS] выдаёт скор релевантности. Этим он отличается от bi-encoder, который считает эмбеддинги запроса и документа отдельно и нужен на этапе отбора кандидатов.
Каркас ответа:
- модель: русскоязычный BERT (ruBERT и его компактные версии), готовый реранкер из
sentence-transformersна базе MiniLM, дообученный на MS MARCO, или многоязычныйbge-reranker. Объясните выбор: язык корпуса, размер модели, бюджет задержки; - место в пайплайне: первая стадия (BM25 или векторный поиск) отдаёт топ-50 или топ-100, реранкер пересортировывает только их;
- обучение: пары запрос и документ из кликов или разметки, функция потерь pointwise или pairwise, жёсткие негативы из выдачи первой стадии;
- длинные тексты: у BERT лимит 512 токенов, поэтому документ режут на фрагменты и берут максимальный скор по ним;
- продакшн: дистилляция в модель поменьше, ONNX или квантизация, батчинг пар;
- метрики: NDCG@10 и MRR офлайн, затем A/B-тест.
Цифры давайте свои: сколько кандидатов пересортировывали, какая задержка на p95, какой прирост NDCG. Если реранкинг был только в учебном проекте, так и скажите и расскажите, что проверили бы первым на реальных данных.
Где спотыкаются
Путают cross-encoder и bi-encoder и рассказывают про эмбеддинги и косинусную близость. Для реранкинга это ответ про другую стадию поиска.
Называют BERT-large «потому что точнее» и не могут объяснить, как он прогоняет сотню пар на каждый запрос при живой нагрузке.
Обучают на случайных негативах. Модель легко отличает совсем нерелевантное, но на близких документах из реальной выдачи почти не даёт прироста.