引用溯源怎么实现?怎么防模型「标了引用却胡编」?
谁在问:toB 场景面试官(法务、金融、医疗、企业知识库)
口语化问法
- 你们的答案带出处吗?怎么做的?
- 模型标的引用是准的吗?会不会张冠李戴?
- 知识库里没有答案的时候,系统会怎么回答?
考察意图
toB 场景的硬需求题。引用溯源是 RAG 相对微调的核心优势之一,但很多人只做到「让模型输出引用编号」就以为完事了——模型标错引用是高频现象。面试官想看:① 你知不知道引用需要后处理校验;② 「说不知道」你是靠 prompt 还是靠阈值(靠 prompt 是不够的);③ 有没有意识到错误答案在某些场景比没有答案更危险。
参考答案
60 分答案(及格线)
引用溯源:给送进 prompt 的每个 chunk 编号,要求模型在答案的每句话后标注引用编号;前端把编号渲染成可点击的出处链接,展示原文片段、来源文件和页码。chunk 的元数据(文件名、标题路径、页码、更新时间)在建索引时就要存好。
说不知道:prompt 里明确要求「材料中没有相关信息时,回答不知道,不要编造」。
90 分答案(有生产经验的回答)
补三层,每层都是 60 分答案的漏洞:
① 引用必须做后处理校验。模型标错引用是常见现象——它可能标了编号但那句话其实来自另一个 chunk,甚至来自它自己的先验知识。做法:拿答案里的每句声明去和它标注的 chunk 做一次归属校验(用轻量模型或文本重叠/蕴含判断),校验不通过就降级——去掉该引用并标注「此处出处不明确」,或者整体重新生成。「有引用」和「引用是对的」是两件事。
② 「说不知道」不能只靠 prompt。更有效的是在检索层设分数阈值:最高相关性分数低于阈值时,根本不进生成,直接走兜底话术。理由很简单——材料都摆在上下文里了,再强的 prompt 也压不住模型「凑合答一个」的倾向;而阈值兜底是确定性的。阈值靠评测集里那类「知识库没有答案」的问题来调(见 Q2-15)。
③ 分场景决定容错姿态。闲聊型产品可以宽松,但在法务、医疗、金融场景,错误答案比没有答案危险得多——用户会照着错误答案去操作。这类场景应该把阈值调高、宁可多说几次不知道,并且明确展示「以下内容依据 X 文件第 Y 条」让用户自己能核。
再补一个实现细节:引用粒度要选好。整段引用最容易实现但用户不好核对;逐句引用体验最好但模型标注负担重、出错率高。折中是按论点分段引用——一个论点一个引用,兼顾可核性和准确率。
追问链
怎么校验模型标的引用是对的?
期望把答案拆成声明(claim),逐条与被引的chunk做蕴含判断 —— 轻量NLI模型、文本重叠度或小模型判官。这就是 faithfulness 的算法,区别只在这里在线做、用于拦截,评测时离线做、用于打分信号能把它和 faithfulness 联系起来 → 知识是打通的分数阈值怎么定?定高了会怎样?
期望用评测集调,两批样本各测一边:「有答案」的别被误杀、「无答案」的要拦住 —— 精确率与召回率的经典权衡,取决于业务对「答错」和「答不出」的容忍度。且分数不可直接比较(见Q2-10),混合检索下阈值要落在融合排序或重排分上信号指出「分数不可比、阈值要基于 rerank 分」→ 非常专业模型说「不知道」,但用户觉得知识库里明明有,怎么办?
期望这是阈值误杀 —— 检索失败被兜底话术掩盖了。所以被拦截的query必须记日志、定期回捞,这批数据是检索优化的金矿;某类 query 频繁被拦说明这类检索有缺口(分词、缺BM25),要回去修检索而不是调低阈值信号想到「拦截日志要回捞」→ 有闭环意识;只说「调低阈值」→ 治标多个 chunk 支持同一句话,引用怎么标?
期望一句话允许标多个引用,展示时按相关性排序、默认只展开最相关的一条,其余折叠。重点是去重:同一份文档的相邻chunk合并成一条出处 —— 否则用户点开五个引用发现是同一页,体验很差信号能想到「同源合并」→ 做过前端展示的实际打磨法务客户说「引用必须 100% 准确,否则不能上线」,你怎么回应?
期望不承诺 100%,换成可验证的保障,按拦截顺序摆:① 校验不通过的内容不输出,宁可降级 → ② 强制展示原文片段让用户一眼可核 → ③ 给可量化的引用准确率与评测报告 → ④ 高风险场景加人工复核 → ⑤ 完整审计日志。再挑明定位:辅助检索工具,不是法律意见的出具者信号拍胸脯说「能做到 100%」→ 对技术边界无知或不负责任;给出「降级 + 可核 + 可量化 + 人工兜底」→ 扛得住 toB 交付
评分要点
- 知道引用需要 chunk 编号 + 元数据(来源、页码、标题路径)
- 知道模型会标错引用,需要后处理校验
- 知道「说不知道」不能只靠 prompt,要有检索分数阈值兜底
- 知道阈值要用评测集调,且涉及误杀权衡
- 加分:意识到某些场景「答错比不答更危险」
- 加分:能把引用校验和 faithfulness 指标联系起来
- 加分:知道被拦截的 query 要回捞分析
- 加分:面对 100% 准确率要求能给出诚实且可验证的方案