Skip to content

2.1.2 为什么知识质量往往比模型参数更影响 RAG 效果? ​

先给结论:在 RAG 里,模型是在“已有材料”上作答的,所以材料质量经常比模型能力更先决定结果。

模型再强,也无法凭空把错误、过期、缺失或混乱的知识变成稳定正确的答案。

RAG 和纯模型问答最大的不同 ​

在纯模型问答里,你主要依赖模型参数里已经学到的知识和能力。

但在 RAG 里,系统会先检索外部资料,再让模型基于资料回答。也就是说,模型不是独立作答,而是在“读材料后作答”。

这意味着答案质量至少受两层因素影响:

  • 检索到的材料是不是对的
  • 模型有没有把材料用对

很多时候,第一层比第二层更先出问题。

为什么知识质量影响更直接 ​

1. 知识错了,模型通常也很难答对 ​

如果知识库里的内容本身就是旧版本、错误版本或相互矛盾的版本,模型再强也很难稳定纠正。

有时模型甚至会把这些冲突内容“组织得很流畅”,让错误显得更像正确答案。

2. 知识缺了,模型就只能猜 ​

RAG 的意义之一,是让系统依赖外部证据。

但如果关键知识压根不在知识库里,或者没有被接入、没有被拆开、没有被召回,模型最后还是会退回到“凭通用知识猜测”的状态。

3. 知识乱了,检索和生成都会被拖累 ​

如果同一主题出现大量重复片段、噪声片段、模板片段和无关片段,检索结果就更容易混杂。模型拿到这样的上下文后,也更容易答偏、答散,或者把次要信息当成重点。

更现实一点说,知识质量差带来的问题,往往会在模型真正开始回答之前就已经发生了:

  • 正确资料可能没入库
  • 入库了但元数据不对
  • 元数据对了但切块不好
  • 切块好了但召回时被噪声压住

所以很多“模型答得不稳”的表象,根因其实在更前面的数据链路。

为什么“换更强模型”往往不能从根上解决问题 ​

升级模型当然有价值,但它更擅长解决的是:

  • 表达更自然
  • 理解更强
  • 推理更稳
  • 指令遵循更好

它不擅长解决的是:

  • 知识库里没有的内容
  • 知识库里错误的内容
  • 知识库里权限错配的内容
  • 知识库里召回不到的内容

所以在 RAG 场景里,一个常见误区是:

系统答不好,就先怀疑模型不够强。

但真实情况经常是:

系统根本没有把正确知识稳定送到模型面前。

更强模型通常会改善这些事情:

  • 把已有资料总结得更清楚
  • 在多个证据之间做更好的整合
  • 对模糊提问做更强的语义理解

但它通常不会自动解决这些事情:

  • 哪份资料应该进知识库
  • 哪个版本才是当前有效版本
  • 哪些候选其实是模板噪声
  • 哪些内容当前用户根本没权限使用

这也是为什么很多团队换完模型以后,会觉得“回答更像样了,但一些关键错误还在”。因为它改善了表达层,却没有修掉证据层。

知识质量具体包含什么 ​

这里说的“知识质量”,不只是文本写得好不好,而是至少包括下面几件事:

  • 内容准确
  • 版本最新
  • 覆盖完整
  • 结构清楚
  • 来源可追溯
  • 权限边界明确
  • 适合切块和检索

这些属性一旦缺失,RAG 后面每一环都会变得脆弱。

如果你想把它说得更工程化一点,可以把知识质量理解成 4 层:

1. 内容质量 ​

也就是内容本身对不对、全不全、是不是当前有效版本。

2. 结构质量 ​

也就是标题、段落、表格、字段、来源、时间、权限这些结构有没有保留下来。

3. 检索质量 ​

也就是正确内容能不能被稳定召回,是否总被重复项和噪声干扰。

4. 治理质量 ​

也就是更新、权限、版本、租户、审计这些边界有没有做进去。

很多时候,团队嘴里说的“知识质量不够”,其实是这四层里有一层没做好,而不是单纯正文写得不好。

一个更实用的诊断顺序 ​

当你怀疑系统效果不好时,先不要急着换模型,可以先按下面顺序排:

  1. 正确资料是否真的存在? 如果知识库里根本没有这份资料,那后面所有优化都没有意义。

  2. 正确资料是否当前有效? 如果进来的是旧版、草稿版、冲突版,模型很难替你自动选对。

  3. 正确资料是否可被稳定召回? 如果总是召回不到,问题通常在数据组织、切块、索引或过滤,不在模型。

  4. 召回结果里噪声和重复多不多? 如果正确答案经常被一堆模板页、重复片段包围,模型也很难稳定聚焦。

  5. 即使召回正确,模型是否仍然不会用? 到这一步,才更像是模型、Prompt 或上下文构造的问题。

这个顺序的价值是:它能帮你先分清楚问题到底出在“证据层”还是“表达层”。

一个常见现象:Demo 能答,线上不稳 ​

这是因为 Demo 往往有几个天然优势:

  • 数据量小
  • 数据源单一
  • 版本冲突少
  • 权限边界简单
  • 噪声比例低

这时模型看起来就会显得“很聪明”。

但一旦上线后接入更多真实资料,问题往往马上暴露:

  • 新旧版本混进来了
  • 模板噪声变多了
  • 权限和租户边界开始出现
  • 用户问法也不再像测试样例那样标准

所以很多时候,不是线上模型突然变差了,而是知识质量和数据治理开始真正成为瓶颈。

怎么判断当前更该投在数据,还是更该投在模型 ​

可以先看下面几个信号:

如果你经常看到这些现象,通常更应该先投数据:

  • 同一问题的高分候选经常重复
  • 召回里经常混入模板页、旧版本、无关页面
  • 用户追问“依据是什么”时,来源经常不完整
  • 文档刚更新,系统还在答旧规则

如果前面的证据已经比较稳定,但仍然有这些现象,才更像该继续投模型:

  • 已经召回了正确证据,但模型总是总结错重点
  • 多份证据需要综合推理时,模型明显整合不好
  • 用户问法稍微绕一点,模型就理解偏了

这不是说模型不重要,而是说先后顺序很重要。RAG 里很多收益更大的优化,往往先发生在数据和检索层。

一种很实用的判断方式 ​

如果一个 RAG 系统效果不好,可以先反过来问:

  1. 正确答案对应的资料真的在知识库里吗?
  2. 这份资料是最新、可信、完整的吗?
  3. 它能被检索到吗?
  4. 检索到后,系统能识别它比其他噪声更重要吗?

如果前面几步都没站稳,换更强模型通常只能带来局部改善,不能从根上解决问题。

很多团队真正缺的,不是再换一个模型,而是把这几个问题做成常规检查项。因为只要这些问题长期没人看,系统效果就会不断波动,你也会反复误判问题来源。

你可以这样记 ​

在 RAG 里:

  • 模型决定“如何回答”
  • 知识决定“回答有没有依据”

而对很多真实业务系统来说,后者往往更先决定结果是否可用。