Appearance
3.4 检索用块与生成用块
前面几节主要讨论的是 chunk 本身、切块策略和 metadata 设计。这一节要继续往前走一步:检索阶段和生成阶段,到底是不是应该使用完全同一种块?
很多早期 RAG 系统默认答案是“是”。因为看起来最简单:
- 切一次
- 存一次
- 检索到了就直接送给模型
但生产系统里,越来越常见的做法其实是把这两件事拆开看。
这一节真正想帮你建立的,是一个很重要的认识:
“最适合召回的块”不一定就是“最适合直接喂给模型生成答案的块”。
如果你把这两件事完全绑定,系统往往会在召回粒度和生成完整性之间互相拉扯。
学这一节时,最值得先建立的判断
- 检索阶段更关心“能不能精准命中相关局部”
- 生成阶段更关心“模型看到的上下文是不是足够完整、自然、可解释”
- 小块和大块往往分别更偏向解决这两类不同问题
- 文档级检索和 chunk 级检索也不是二选一,而是要看问题粒度和后续组织方式
这一节会回答什么问题
读完这一节后,你最好能更稳地判断:
- 当前系统的问题更像是召回粒度不对,还是生成上下文组织不对
- 是否应该继续坚持“一套块走到底”,还是已经值得做分离设计
- 文档级和 chunk 级检索分别更适合什么问题