Skip to content

14.1.6 RAG 效果差时,为什么不能第一反应就怪模型? ​

先给结论:RAG 的质量瓶颈,很多时候不在模型,而在“数据质量 + 检索链路 + 评估与观测”。

一旦系统回答不好,最容易被怀疑的就是模型。
原因也很简单:模型输出是用户直接看到的最后结果。
但这恰恰也是最容易造成误判的地方。

因为在 RAG 里,模型是链路最后一环。
前面任何一步出问题,最后都会集中体现在答案上。

为什么模型最容易“背锅” ​

1. 它是最后一环 ​

用户看到的是答案,不是检索日志,不是上下文快照,也不是切块结果。
所以所有前序错误,最后都会表现成“模型回答不对”。

2. 很多系统没有可观测性 ​

如果你没有下面这些能力:

  • 检索结果日志
  • 重排结果记录
  • 生成前上下文快照
  • 评测集与回归对比

那你几乎不可能准确判断问题到底在哪一层。
在这种情况下,模型自然就成了最容易被怀疑的对象。

3. 模型问题最显眼,链路问题最隐蔽 ​

“答案不准”很容易感知,
但“文档过旧”“切块破坏语义”“metadata 不完整”“检索范围错了”这些问题,如果没有专门观察,很容易被忽略。

真实项目里,更常见的根因是什么 ​

很多所谓“模型不行”的案例,最后查出来其实是下面这些问题:

  • 文档噪声太多,清洗没做好
  • 新旧版本文档混在一起
  • chunk 切得太碎或太厚
  • metadata 缺失,导致范围过滤做不了
  • 召回不稳定,换个问法就漂
  • 没有评测,导致问题只能靠印象判断

这些问题如果不先解决,换更强模型通常也只是“更流畅地说错话”。

一个更可靠的排查顺序 ​

当 RAG 效果不好时,更稳妥的顺序通常是:

第一步:查数据 ​

  • 文档内容本身是否正确
  • 是否混入旧版本、重复内容、目录噪声、OCR 错误
  • 文档更新时间和生效范围是否清楚

第二步:查索引前处理 ​

  • 切块是否把关键条件切断
  • 标题、章节、版本、时间等 metadata 是否保留
  • 是否对不同类型文档采用了合理的切分策略

第三步:查检索 ​

  • 候选里有没有真正正确的证据
  • 同一个问题重复查询时结果是否稳定
  • 是否需要加过滤、重排或混合检索

第四步:查生成 ​

  • 提示词是否要求基于证据回答
  • 上下文是否太长、太乱、冲突过多
  • 证据不足时是否允许模型直接说明不足

只有前面这些都基本正常,才值得认真考虑是不是模型本身限制了效果上限。

一个非常常见的错误动作 ​

很多人看到答案不准,马上就做下面这些事:

  • 换更大的模型
  • 改提示词
  • 多写几句“请准确回答”

这些动作不是一定没用,但如果问题根本出在检索和证据上,它们往往只是治标不治本。

你需要警惕一种错觉:
模型越强,系统就越好。
现实里,模型越强,只能让它在已有证据条件下表现得更好;
如果证据本身错了、旧了、碎了,模型再强也不会自动把链路修好。

真正该优先补的是什么 ​

成熟系统真正优先补的,通常不是模型能力,而是下面这些基础设施:

  • 问题复现能力
  • 检索与生成日志
  • 最小评测集
  • 改动前后对比能力
  • 失败案例归档

有了这些,你才知道自己到底是在优化系统,还是在凭感觉碰运气。

一句话总结 ​

RAG 效果差时,先查数据和检索链路,再查模型。没有观测与评估,模型只会成为最容易被误判的那一层。