Rerank 与两阶段检索
召回要「全」,排序要「准」:第一阶段用便宜的向量 / BM25 从全库捞几十条,第二阶段用交叉编码器逐条精排。Rerank 补的是双塔模型看不到 query 与文档交互的先天缺陷,代价是每次查询多一跳延迟与成本。
也叫:Rerank · 重排 · 两阶段检索 · 精排 · 召回与排序
核心概念:召回要「全」,排序要「准」出自 T2-6
这是检索系统的经典分工:
第一阶段(召回 / Retrieval):从百万文档里快速捞出 50–100 个候选,目标是不漏(recall)。 第二阶段(精排 / Rerank):对这几十个候选精细打分,选出最好的 5–10 条,目标是准(precision)。
一句话记住:召回负责别漏掉,精排负责别排错。 面试时用这个对仗句开场,比讲一堆模型名字有效。
检索系统的经典分工:百万文档 → 50–100 个候选 → 最好的 5–10 条
别漏掉
对应先把可能有用的都捞上来
捞得再全,也不保证最相关的那条排在前面
第一阶段 · 召回
Retrieval
从百万文档里快速捞出 50–100 个候选,目标是不漏
recall候选 50–100毫秒级
别排错
对应在捞上来的这几十条里排名次
只在候选里挑 —— 绝不对全库重排
第二阶段 · 精排
Rerank
对这几十个候选精细打分,选出最好的 5–10 条,目标是准
precisiontop 5–10cross-encoder
面试用这个对仗句开场,比报一串模型名字有效 —— 一句话就交代了两个阶段的目标函数不是同一个:前半程盯 recall,后半程盯 precision。
以上节选自T2-6 Rerank:为什么要两阶段检索,读全文能看到前后语境。