Skip to content

7.3 检索结果的组织与精选 ​

先给结论:检索结束并不意味着材料已经可以直接送进模型。真正影响回答质量的,常常不是“有没有找到”,而是“找到之后怎么组织、保留哪些、丢掉哪些、按什么顺序送进去”。

很多 RAG 系统在这一步会出问题,不是因为召回太差,也不是因为没有 Rerank,而是因为:

  • 送给模型的块太多,噪声压过证据
  • 送给模型的块太少,关键上下文不够
  • 前几条结果高度重复,白白占掉上下文预算
  • 该合并的没有合并,导致模型只看到碎片
  • 该截断的没有截断,导致真正关键的信息被挤到后面

所以这一节要解决的,不是“怎么再找更多结果”,而是:

  • 检索完成后,怎样把候选整理成更适合生成的最终上下文

你可以把它理解成检索链路里的最后一道整理工序。前面的召回和重排是在回答:

  • 哪些内容值得进入候选池

而这一节关注的是:

  • 候选已经拿到了,最终怎样组合,才更适合模型使用

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

  • Top K 不是越大越好,最终给模型的结果数必须和问题复杂度、块大小、上下文预算一起看
  • 高分结果之间也可能高度重复,不做去重和聚合,模型看到的只是同一证据的不同切片
  • 有些场景更适合 chunk 级精选,有些更适合文档级合并,还有些必须把相邻块一起带上
  • 最终排序不是展示层细节,而是生成质量的一部分

这一节会回答什么问题 ​

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

  • 当前系统该调的是召回规模,还是最终送入模型的结果数
  • 候选池里的重复问题有没有已经开始浪费上下文预算
  • 面对长文档、FAQ、手册、流程文档时,最终结果该按哪种方式组织
  • 模型回答不稳时,问题到底出在“没找到”,还是出在“送进去的顺序和结构不对”