直接回答:向量检索用双塔模型(bi-encoder)把 query 和文档各自编码成向量再算相似度,查询与文档在编码阶段没有交互,相关性判断是近似的。rerank 用交叉编码器(cross-encoder)把 query 和候选文档拼在一起过一遍模型,注意力机制能看到两者的逐词交互,相关性判断精确得多。两阶段"粗排召回 + 精排重排"是搜索引擎验证过的经典架构。

展开解析:成本上为什么不直接用交叉编码器全量排:cross-encoder 对每个 query-文档对都要前向一次,百万级文档根本跑不动;bi-encoder 可以离线预计算文档向量,在线只算一次 query 向量加近邻搜索,毫秒级。所以工程形态固定为:向量+BM25 混合召回 top-50~100,cross-encoder 精排取 top-5 给 LLM。常见模型有 bge-reranker、Cohere Rerank 等。rerank 的收益在长尾 query、专有名词、否定语义("不含有 X 的")上尤其明显——这些恰是向量相似度的盲区。注意 rerank 分数与向量分数量纲不同,设定阈值过滤低质召回时要用 rerank 分数校准。

追问方向:RRF 融合算法怎么计算?ColBERT 这类 late-interaction 模型介于两者之间是什么思路?rerank 的延迟预算怎么控制?

(约 430 字)