← 返回概念辨析

Concept Contrast Fable

分块和父子分块:一个是切豆腐,一个是切完豆腐还留着原来的那盘菜

做 RAG 系统时,分块和父子分块被写在同一行配置里,很多人以为父子分块只是分块的一种参数设置。分块是决定把文档切成多大、怎么切;父子分块是在切割的同时保留原块和子块之间的对应关系,让检索时能用大块定位、小块精答。少了一层对应,召回准确率差一个量级。

寓言

档案馆的两种编号方式

档案馆要让学徒快速查旧案。最初整卷卷宗太厚,找一句证词要翻半日。馆长便让人把卷宗切成小片,每片贴上编号,查起来快了许多。学徒像从一大盘菜里夹出小块,入口容易了。

麻烦也随之出现。学徒找到一句“河堤已修”,却不知道它属于哪年、哪段河、谁验收。小片像切下来的豆腐,容易入口,却失了原盘菜的味道。一个片段看着准确,放回原案才知道意思变了。

有人提议把片切大。大了上下文够,查找又慢;切小了查得准,读起来断。两边争了几天,都没解决。第一次修补只是在刀口粗细上打转,没有处理小片和原卷之间的关系。

老馆员改用父子册。小片仍用来找线索,像在目录里摸到一句关键证词;一旦命中,便把它所属的大页或整段父卷一并取出,让学徒在原来的上下文里判断。

第一版父子册也有问题。父卷取太大,桌上又堆满纸;父卷取太小,仍看不清前因后果。老馆员按案情重新定范围:证词带审问页,工程记录带前后验收段,账目则带同一批收支。

后来馆里有两把尺:小片多细,决定找得准不准;父卷多大,决定拿回来读时够不够完整。学徒先用小片定位,再靠父卷理解,不再把孤零零一句话当成整案结论。

只切碎,是找针;连父卷一起带回,才知道针插在什么衣裳上。档案馆真正学会的,不是切得更细,而是查找和理解分两步走。

后来新案入馆,馆员先决定两件事:用多小的片做索引,用多大的父卷供阅读。前者影响能不能找到,后者影响能不能判断。两把尺分清后,卷宗不再被切成失忆的碎纸。后来馆员查到短句时,都会先问它属于哪卷,再决定能不能引用。

分块

把长文档按一定策略切成更小的段落或文本块,决定块的大小、重叠方式和分隔规则,是 RAG 系统的基础预处理步骤。

父子分块

分块的一种特定实现方式:保留较大的父块用于语义匹配和定位,同时维护较小的子块用于返回精确内容,两者之间通过索引关联。

故事对应

  • 每五页切一个独立包:单纯的分块策略,碎片化检索
  • 额外保留全量版作为定位锚:引入父块概念
  • 先找纪要编号再调切片:父子分块的检索流程——父块定位,子块精答
  • 散装豆腐 vs 每块豆腐带菜盘标签:分块和父子分块的核心区别在于有无层级归属

落到 RAG 系统设计里

配置分块参数时,把 chunk_size 和 parent_chunk_size 当成两个独立决策。chunk_size 决定返回给 LLM 的段落精度,parent_chunk_size 决定语义匹配的范围。先把父块设得足够大以捕获完整语义,再把子块设得足够小以保证答案不冗余。仅调 chunk_size 等于放弃了父块这一层检索精度杠杆。