语料进入索引后, 系统要把查询 变成一组能够支持回答的证据. 这条链包含三个不同目标: 召回器在大规模语料中保住可能相关的候选, 重排器用更强交互把充分证据推到前面, 选择器在 token 与延迟预算内组成互补证据集合. 三者若只用一个最终答案分数评价, 漏召回、错排序和生成失败会混在一起.
本章统一使用语料快照 , 第 路召回排名 , 融合候选 , 最终证据集合 和预算 . 候选相关只表示值得继续检查, 证据则必须支持回答命题并满足版本、权限与来源条件. 这个区别贯穿两篇正文.
1. 召回器在计算什么
1.1. 从词项统计到语义表示
BM25 根据词频、逆文档频率和长度归一化评分, 对错误码、型号、条款号和罕见实体稳健. learned sparse 仍输出词表维度的非负稀疏权重, 通过训练学习词项扩展, 同时保留倒排索引执行方式. 双编码器把查询与文档分别压成单向量, 用内积或余弦寻找语义近邻.
这些分数不共享尺度. BM25 随语料统计变化, 稠密分数受模型、归一化和训练负例影响, learned sparse 还受稀疏正则影响. 分数高表示某个模型目标下的相对偏好, 不能直接解释为答案正确概率.
1.2. 交互精度与候选成本
late interaction 为查询和文档保留多个 token 向量. ColBERT 的 MaxSim 形式为 , 比单向量保留更细的词项对应, 代价是多向量存储与查询计算. cross-encoder 把查询和候选联合编码, 交互更完整, 通常只用于已经缩小的候选集.
方法选择由规模和错误类型决定. 单向量适合便宜大规模召回, late interaction 适合细粒度匹配, cross-encoder 适合辨认否定、条件和实体关系. 更强交互无法找回从未进入候选的文档, 因而召回覆盖始终是重排的前提.
2. 多路候选怎样进入共同排名
2.1. 融合先处理尺度
Reciprocal Rank Fusion 按名次而非原始分数组合:
若 , 文档 A 在两路分别排 2、40, 得分约 ; 文档 B 两路都排 8, 得分约 , B 因跨路一致而靠前. RRF 避免异质尺度, 仍需要验证每路截断深度、常数和重复处理. 学习式融合可以加入来源、时间和查询特征, 但需要独立校准集.
2.2. 过滤定义候选集合
权限、租户、有效时间、语言和文档类型在召回前或检索过程中约束 . 事后删除越权候选会占据 top-k, 还可能泄露标题、分数与缓存信息. ANN 与高选择性过滤组合时也可能少返回结果, 需要在真实权限分布上测试.
查询改写、多查询和 HyDE 会改变候选来源. 运行记录同时保留原查询、改写、每路候选和过滤条件. 若多个改写只返回重复文档, 额外调用没有增加覆盖; 若改写丢失编号或否定, 原查询分支提供必要保护.
3. 排名如何变成证据集合
3.1. 单项相关与集合覆盖
重排后的 top-k 仍可能被同一文档的重叠片段占满. 比较问题需要两侧对象, 多跳问题需要可连接关系, 制度问题需要规则、例外与时间条件. 选择器可在相关性 、新增覆盖 、冗余 和长度 之间权衡:
实际系统可以使用贪心或 MMR, 无需精确求全局最优, 但必须记录选择顺序与删除原因. 版本过期、重复、权限过滤、预算不足和低排名是不同原因, 对应不同修复路径.
3.2. 延迟沿流水线传递
候选深度 増大通常提高召回, 也把计算传给重排. cross-encoder 对每个候选重复联合编码, LLM 列表式重排还受输入长度、位置偏差和输出稳定性影响. 最终上下文预算再决定能够保留多少证据.
实验应扫描召回 、重排保留数 与 token 预算 , 报告质量—延迟曲线. Recall@100 最高的方案未必能在四段上下文中产生最好答案. 业务选择曲线上的工作点, 并为高峰流量准备减少改写、跳过昂贵重排或缩小候选的降级配置.
4. 共同的评测与阅读路线
4.1. 分层指标和域外边界
召回层使用 recall@k 判断参考证据是否出现, MRR 关注首个相关结果位置, nDCG 允许多级相关标签. 多跳问题还要测完整证据组覆盖. 排序指标提升后, 继续检查最终上下文、答案正确性与引用支持, 防止排名改善没有传到用户结果.
BEIR 一类跨领域基准表明, 同域强势的稠密检索器在新体裁和新任务上未必持续领先 BM25. 评测按实体、数字、否定、时间、多语言、多跳和无答案切片, 并保留时间外与来源外测试. exact dense 作为 ANN 对照, BM25 作为无需训练的词项锚点.
一个五查询的例子中, 首个充分证据名次为 1、2、8、未命中、4. recall@5 为 , recall@10 为 , MRR 为 . 从 增到 10 只救回一个样本, 是否采用还要看重排延迟与答案收益. 多跳问题则要求完整证据组进入候选, 单篇命中不能算作可回答.
重排实验固定召回候选, 避免把候选变化归到排序器. 集合选择实验固定排序结果, 比较 top-k、MMR 和任务槽位. 端到端实验再把三段接回, 检查局部指标提升能否传到答案和引用. 这种顺序让失败定位保留明确分母.
生产 trace 为每个候选保存召回来源、单路名次、融合分数、重排分数、过滤状态与最终选择结果. 当答案缺少证据时, 可以判断目标从未召回、被重排压低、被判重复还是因预算丢弃. 只保存最终上下文会抹掉这些差异.
4.2. 两篇正文怎样分工
稀疏、稠密与混合召回沿评分函数展开 BM25、learned sparse、dense、late interaction、混合召回和 OOD 边界. 阅读时关注每种方法改变查询表示、文档表示还是交互函数, 以及新增候选是否真正提供独有证据.
重排、融合与证据选择从异质分数进入 RRF、校准、cross-encoder、LLM rerank 与集合选择. 它回答有限位置先给谁、互补证据怎样共同进入上下文以及增加的质量是否值得延迟. 两篇共享候选身份、语料版本和问题集, 结果才能复算与比较.
阅读顺序取决于已有系统. 从零建立基线时, 先完成稀疏与 exact dense 召回, 再加入 ANN、融合和重排; 已有成熟搜索时, 可以直接检查候选到证据集合的损失. 无论从哪一侧进入, 权限与版本都先定义候选集合, 不能由重排分数抵消.
本章的共同验收对象是一份可重放候选清单. 它绑定问题、身份、时间、语料快照和各路排名, 并保留进入证据集合前的每次变换. 算法比较、延迟分析和线上归因都使用这份清单, 避免不同实验各自更换输入后仍把分数放在一起比较.
共同坐标稳定以后, 方法差异才能准确解释.