Skip to content

8.4.2 为什么很多 RAG 系统要求模型“只基于提供材料作答”? ​

先给结论:因为 RAG 的目标通常不是测试模型自己知道多少,而是让模型按照当前检索到的证据回答。要求“只基于提供材料作答”,本质上是在控制事实来源、降低幻觉、统一口径,并让回答更容易被追溯和审查。

这句要求之所以这么常见,不是因为它听起来严谨,而是因为它在系统层面解决了几个非常现实的问题。

一、先把回答依据固定下来 ​

如果不加这条约束,模型会自然倾向于同时使用:

  • 当前检索到的材料
  • 自己已有的预训练知识
  • 基于语言模式做的补全和推测

这会让系统变得很难控制。因为你很难判断:

  • 这句话到底来自检索材料
  • 还是来自模型自己记住的旧知识

而一旦要求“只基于提供材料作答”,系统就在明确告诉模型:

  • 当前任务的事实依据应当优先落在这批材料上

二、降低“证据外回答”的幻觉风险 ​

很多 RAG 系统最怕的,不是模型一句都答不出来,而是:

  • 看起来答得很完整,但其实有一部分超出了当前证据

这类问题尤其危险,因为它会让用户误以为:

  • 这些说法都已经被知识库支持了

“只基于提供材料作答”这条要求,本质上是在缩小模型自由发挥的空间。它不是保证完全不出错,但通常能显著减少:

  • 无证据细节补全
  • 基于常识的过度推断
  • 把旧知识当成当前事实

三、统一系统口径 ​

在很多业务里,最重要的不是“模型能不能回答得更丰富”,而是:

  • 回答口径要和当前材料一致

比如:

  • 公司制度问答
  • 产品帮助中心
  • 医疗、金融、法务类知识问答
  • 新旧版本经常变动的规则解释

这类场景里,如果模型一边引用当前材料,一边混入自己记住的别处知识,就很容易出现:

  • 口径不统一
  • 新旧混用
  • 回答与当前文档冲突

四、提升可追溯和可审查性 ​

RAG 的一个核心价值,就是让回答能回到证据。

如果模型大量使用“材料外知识”,那系统就会失去一部分 RAG 本来很重要的特性:

  • 你不知道它依据了什么
  • 你也很难审查它为什么这么说

而“只基于提供材料作答”会让回答更接近:

  • 一个可以回查的证据型输出

这对线上系统特别重要。

这条要求是不是越强越好 ​

也不是。

这里也要看到边界。

如果你的任务本身就允许:

  • 基于材料做适度归纳
  • 在证据基础上做摘要整合
  • 用常识补足表达流畅度

那么“只基于提供材料作答”就不该被理解成:

  • 只能逐句复述材料

更准确的理解通常是:

  • 事实判断和结论边界应当受材料约束
  • 但表达层面可以适度整理和重写

一个更稳的写法思路 ​

比起简单写:

  • 只基于材料作答

更稳的 Prompt 常常会写成:

text
请优先依据提供的材料回答问题。
不要把材料中没有明确支持的信息说成确定事实。
如果需要归纳,请确保归纳结果能够被材料支撑。
如果材料不足,请直接说明资料不足。

这样的表达比一句抽象口号更可执行,因为它把边界讲得更清楚了。

一个常见误区 ​

很多人会把这条要求理解成:

  • 这样模型就会完全不出幻觉

这不现实。它只是一个重要约束,不是绝对保证。

真正更稳的做法通常还需要结合:

  • 更好的上下文构造
  • 明确的资料不足处理
  • 必要时的来源引用
  • 后处理校验

一句话总结 ​

很多 RAG 系统要求模型“只基于提供材料作答”,是因为它能帮助系统固定事实来源、降低证据外回答、统一业务口径,并提升回答的可追溯性。它不是让模型机械复述材料,而是在约束结论必须被当前证据支持。