Skip to content

证据引用、冲突处理与拒答 ​

Grounding 是让回答中的事实陈述有可核验的材料依据。在 RAG 中,它要求检查检索到的材料能否支持答案中的数字、条件和结论。引用把这层对应关系展示给读者;证据不足或相互冲突时,还需要缩小回答范围、请求澄清或暂不下结论。

例如,“出差结束后 30 个工作日内提交,提交后 5 个工作日到账。[E1][E2]”看起来有出处,却可能连错两次:原文的提交期限是自然日,付款从审批通过起算。引用编号存在,并不能说明引用的材料支持这句话。

这一步的处理过程是:先确认材料适用于当前问题,再判断它能支持哪些事实;对材料之间的差异作出解释,最后决定完整回答、部分回答、请求澄清,还是停止给出确定结论。生成后的答案仍需检查,防止模型在转述时改变数字、条件或适用范围。

引用要对应到具体事实 ​

先看差旅制度中的两条证据:

编号原文
E12026 年境内出差应在结束后 30 个自然日内提交报销申请。
E2报销申请审批通过后,财务应在 5 个工作日内完成支付。

用户问“多久提交,多久付款”,答案包含两个能够独立核验的事实陈述,也称为断言(Claim)。核验时,把每个断言与其引用的原文放在一起比较:

答案中的断言引用核验结果
出差结束后 30 个工作日内提交E1原文写自然日,单位被改了
提交后 5 个工作日内支付E2原文从审批通过起算,不支持从提交时起算
境外出差也适用同一期限E1E1 只规定境内出差,无法确认境外规则

拆分断言时,需要保留主体、条件、时间和单位。“审批通过后 5 个工作日内支付”可以独立核验;拆成“审批通过后”和“5 个工作日”就失去了完整含义。

同一个断言也可能需要多段证据。例如一段规定适用人群,另一段给出期限,需要联合查看才能支持答案。只检查某个关键词或数字是否出现,会漏掉这些条件。

正确转述后,引用应紧跟它支持的事实:

2026 年境内出差应在结束后 30 个自然日内提交报销申请。[E1] 审批通过后,财务应在 5 个工作日内完成支付。[E2]

如果引用全部堆在长段落末尾,读者难以判断每份资料究竟支持哪句话,后续自动检查也更困难。

材料正确,不等于适用于当前问题 ​

假设还检索到旧版 E0,规定提交期限为 60 个自然日。E0 适用于 2025 年结束的境内出差,E1 自 2026 年 1 月 1 日起适用,并正式替代相同范围内的 E0。

用户问 2026 年的事项,应使用 E1。即使模型逐字引用 E0,仍然答错了问题。相反,回答 2025 年的历史事项时,也不能仅因为 E1 更新就选择它。

适用性检查需要对照事项时间、地区、人群以及规则明确的生效方式。文档发布日期不一定等于生效日期,制度也可能采用出差结束日或费用发生日等不同口径。若用户没有提供决定适用范围的条件,应先澄清。

只有通过适用性检查的证据,才进入后续的支持判断。权限也应由检索服务与应用检查,不能把受限资料交给模型后再要求它忽略。

有差异的资料,怎样判断是否冲突 ​

上面的 E0 与 E1 数字不同,但有明确的生效区间和替代关系。指定事项时间后就能选择,无须把两条规则交给模型投票。

真正需要停止下结论的是另一种情况:两个正式文件在同一时间、同一范围内都有效,一个写 30 个自然日,另一个写 45 个自然日,而且找不到优先级或替代规则。此时现有材料无法确定哪条规则应当执行。系统应列出各自规定及来源,说明尚无法确认适用期限,交由负责人核实。

处理差异时,可以依次核对:

  1. 是否讨论同一事项。境内与境外的期限不同,不构成同一范围内的冲突。
  2. 是否有明确的生效区间或替代关系。若有,按事项时间和规则选择。
  3. 是否存在正式的优先级规则。若有,保留选择依据;若没有,不自行推定。

转载数量不能决定权威性。五篇网页可能复制自同一文件,数量多不会让一条规则更适用。两个期限也不能取平均,因为平均数不对应任何一条制度。

证据支持到哪里,回答就写到哪里 ​

“证据充分”取决于用户想得到什么结论。E1 足以回答提交期限,但要判断“我的报销单是否逾期”,还需要出差结束日、实际提交日以及期限的起算规则。找到 30 天这个数字,并未完成日期判断。

不同缺口对应不同的回答方式:

当前情况回答方式
材料适用,所问事实均有支持完整回答,并为事实附引用
多个子问题中,只有一部分有证据回答有证据的部分,说明其余部分无法确认
缺少用户能够补充的日期、地区等必要条件说明已知规则,再请求这些条件
合理检索后仍缺少关键依据,或存在无法裁决的冲突暂不作确定结论,说明缺口或冲突

例如用户问“境内、境外各多久提交”,当前只有 E1、E2,可以回答:

2026 年境内出差结束后,应在 30 个自然日内提交报销申请。[E1] 当前检索到的资料没有给出境外出差的提交期限,暂时无法确认境外规则。

这样保留了已经能够确认的部分。不能因为一个子问题缺材料,就把整个问题都拒绝;也不能把“本次没检索到境外规则”改写成“公司没有境外规则”。前者描述检索结果,后者需要额外证据。

若问题是“我是否逾期”,可以先给出 E1 的规则,再询问出差结束日与提交日。用户补充信息能够解决的问题,适合澄清。已有文件本身互相矛盾,则需要核实制度依据,继续追问用户日期无法解决。

生成后检查引用与语义 ​

应用可以让模型按断言输出文本及证据编号,再由渲染层插入引用:

json
{
  "decision": "answer",
  "claims": [
    {
      "text": "2026 年境内出差应在结束后 30 个自然日内提交报销申请。",
      "evidence_ids": ["E1"]
    },
    {
      "text": "审批通过后,财务应在 5 个工作日内完成支付。",
      "evidence_ids": ["E2"]
    }
  ]
}

这样的结构方便逐条检查,但它只规定了输出形式,不能保证内容正确。检查分成两层:

  • 引用检查:需要引用的断言是否带有证据编号,编号是否属于本次实际提供的材料,能否跳转到对应原文。
  • 语义检查:原文是否支持这个断言,数字和单位是否一致,条件有无遗漏,是否把“可以”改成“必须”,或把局部范围扩大为全部范围。

例如“提交后 5 个工作日到账”引用 E2,编号完全合法,却无法通过语义检查。对这种错误,应根据 E2 修正起算条件;原文没有对应依据的断言,则应删除、继续检索或改为无法确认,不能只换一个引用编号。

语义检查可以结合领域规则、自然语言推断模型或 LLM。期限和金额可以增加针对性的规则,复杂的跨段支持关系需要联合查看原文。辅助模型同样可能误判,应用需要用人工核验样本检查其表现。ALCE 对带引用生成的研究区分了引用支持与引用完整性:既要关心已经给出的引用是否支持事实,也要检查需要支持的事实是否遗漏了引用。

应用中的 E1、E2 应映射到固定版本的文档及原文区间,不能把“检索排名第二”当作永久来源 ID。若生成使用了压缩摘要,引用仍需回到摘要对应的原文;来源保留见上下文选择与压缩。

上述检查将检索正文作为证据材料处理。正文中夹带的命令不应成为模型的操作指令;这类外部资料注入的防护见提示注入与工具安全。

持续学习,持续实践。