Skip to content

8.1 为什么检索结果不能原样全塞给模型 ​

先给结论:RAG 的问题从来不只是“有没有找到资料”,还包括“找到之后怎样把资料组织成模型能稳定使用的上下文”。如果把检索结果原样全塞给模型,系统往往不会更准,只会更乱。

很多人第一次做 RAG 时,容易自然地觉得:

  • 检索已经找回来了
  • 那就把这些结果全部拼进 Prompt
  • 给模型看得越多,回答应该越完整

这条直觉只在很理想、很小规模的场景里偶尔成立。到了真实系统里,原样拼接通常会带来一连串问题:

  • 重复结果占满上下文
  • 边缘相关内容压过关键证据
  • 新旧版本混在一起
  • 说明性材料和直接证据混在一起
  • 长文档中真正关键的几句被埋在一大段背景里

所以这一节要建立的第一个判断是:

  • 上下文构造不是机械拼接材料,而是在做证据组织

它的目标不是“尽量多给”,而是:

  • 尽量让模型先看到真正关键、足够完整、彼此不冲突的内容

学这一节时,最值得先建立的判断 ​

  • 检索结果不等于最终上下文,中间还需要筛选和组织
  • 给模型的材料越多,不一定越好,很多时候反而会降低答案稳定性
  • 去重、排序、压缩和结构化,不是附属优化,而是上下文构造本身的一部分
  • 有些问题该多给,有些问题反而应该少给

这一节会回答什么问题 ​

读完这一节后,你最好能更稳地判断:

  • 当前系统的问题更像出在检索阶段,还是出在上下文构造阶段
  • 给模型的材料是“更多更好”,还是“更准更好”
  • 去重、排序、压缩哪些应该发生在进入 Prompt 之前
  • 为什么很多回答不稳的问题,本质上是上下文组织失败,而不是模型能力不足