RAG 全链路(三):重排、引用溯源与效果评估
按 token 预算选择重排后的证据,区分引用存在、引用支撑与事实正确;分层评估检索、生成和业务结果,并处理资料冲突、缺证据与超时。
更新与核对 · 2026-10-11
混合检索给出了候选,但候选相关不代表足以回答问题。这一篇把三件事接起来:重排决定优先读哪些材料,引用让结论可追溯,评测检验整条链路是否有效。
重排是第二次、更细的相关性判断
Bi-encoder 分别编码查询与文档,文档向量可离线计算,适合大范围检索。Cross-encoder 将查询与候选一起处理,让它们直接交互,逐对评估相关性,适合较少候选的重排。它通常比简单向量相似度昂贵,收益和延迟依赖模型与文本长度。
一个实验起点可以是两路召回各 50 条、去重后重排,再按 token 预算选择最终上下文。候选数、输出条数都要调,不能把 150 → 20 视为通用标准。
图 1 · 数量是待调参数,最终供给还要考虑去重、证据覆盖与 token 预算。
多给几段并不总是更好
候选过少可能漏掉多跳证据,供给过多则会增加延迟、引入冲突和分散注意力。比较不同 top-k 时,固定模型与资料版本,记录最终正确率、证据覆盖、输入 token 和 p95。
选择上下文时还应:合并同父文档相邻段落、限制重复、保留互补证据、优先有效版本。若预算不够,把检索到的三份重复说明改成一份,往往比简单砍掉最后一条更合理。
若 reranker 超时,可使用已验证的粗排结果降级;若证据不足,选择追问或说明资料不足。不能为达到固定 top-k 把低相关内容强行凑满。
引用需要四项验证
“有一个角标”不代表正确。服务端至少检查:
- 引用 ID 确实在本次授权检索结果中。
- 引用能定位到当时的文档版本与原文片段。
- 原文支持对应结论,不能只与主题相近。
- 关键结论覆盖充分,不能引用第一句后让后文自由发挥。
可以让模型输出以下业务结构;这是中立示例,并非特定厂商 API 请求:
{
"claims": [
{ "text": "该版本的连接超时配置为 5 秒。", "evidence_ids": ["runbook-42:rev-3:p-2"] }
],
"missing_evidence": [],
"status": "answered"
}
模型不得生成任意 URL;服务端用已知 ID 解析链接和定位信息。文档内容也属于不受信任输入,其中“忽略规则”类指令不能获得系统权限。
Claude 的原生 Citations 可提供结构化来源位置,减少手工编造定位的空间,但不能保证结论正确,也不能自动满足合规。支持格式与其他功能的组合限制需查 官方文档[3]。
忠实与正确:两个问题
若旧规范写错了一条定义,模型完整复述并正确引用,答案可以“忠实于资料”却“事实错误”。资料治理要独立维护生效版本、勘误、权威级别与更新时间;冲突时展示差异、优先经过确认的来源,或拒绝给唯一答案。
同样,引用覆盖率高只说明形式覆盖。真正要抽检的是引用支撑率和结论正确率。对数值与配置还可用计算器、配置校验器或确定性规则检查结果,不能只靠另一模型看起来认可。
分层评测:指标不是一对一修复按钮
| 层次 / 指标 | 回答的问题 | 需要注意 |
|---|---|---|
| 检索 Recall@k、MRR、nDCG | 证据是否找到,排序是否合理 | 需要人工或可信标注 |
| Faithfulness | 结论是否被上下文支持 | 不是世界事实正确率 |
| Answer relevancy | 回答是否切题 | 切题也可能答错 |
| Context precision / recall | 上下文是否相关、证据是否完整 | 不同实现需要的参考数据不同 |
| 业务正确率、拒答适当率 | 任务是否完成、该答与该拒是否合理 | 按业务定义标准答案和边界 |
Ragas 提供多种带或不带参考答案的指标实现,不能说所有指标都是同一种 LLM 裁判。Ragas 指标文档[4]
指标与修复手段也不是一一对应。Faithfulness 低可能是检索无关、证据冲突、提示没约束或模型推理失误。排查时用对照输入:同一问题分别提供实际检索结果与人工确认的完整证据;若后者仍答错,继续调检索通常解决不了核心问题。
一个完整实验怎么记录
用例同时保存问题、必要证据位置、标准答案、允许拒答条件和资料版本。运行时保存召回、重排、最终上下文、回答、引用、延迟与费用。每次只改变一个主要变量,比较逐用例差异,不只看总分。
例如 100 个标注问题中,重排后证据覆盖增加,但最终正确率不变:检查新增证据是否太长、重复、与旧资料冲突,或模型没有利用它。若回答正确而引用错误,修引用机制而非靠提高 top-k 掩盖。
LLM 裁判要与人工样本校准,高风险结论由人工或确定性工具复核。评测本身可能慢且有误差,不能把未经校准的离线分数直接当每条在线回答的阻断阈值。
落地检查
- 候选数和 top-k 通过实验确定,按 token 预算选择互补证据。
- 重排有超时、降级与独立观测,权限过滤贯穿每一路。
- 引用 ID、版本、定位、支撑和覆盖都验证。
- 无证据则追问或拒答,来源冲突有明确策略。
- 同时报检索质量、事实正确、引用质量、延迟和费用。
- 筛选并依法脱敏的线上坏案例进入 评测闭环。
参考资料
正文中的编号可跳转至对应来源。工程报告、官方文档与研究论文分别标注;支撑范围说明该资料能证明什么,以及不能推导什么。
- [1]官方文档Sentence Transformers — Retrieve and rerank
支撑范围: 召回加交叉编码器重排的实现思路;需比较质量、延迟与资源代价。
- [2]官方文档Cohere — Rerank
支撑范围: 重排 API 能力与用法;具体模型、输入和成本以所用版本为准。
- [3]官方文档Claude — Citations
支撑范围: 原生来源定位与支持限制;引用存在不保证结论正确或自动合规。
- [4]官方文档Ragas — Available metrics
支撑范围: RAG 评测指标的定义与适用问题;指标不能当一对一修复指令。
- [5]工程报告Anthropic — Contextual Retrieval 实验
支撑范围: 为块补充定位上下文并组合向量、BM25 与重排的实验;检索失败率下降不等于答案正确率同比提高。