结论先行:父子 Chunk(Small-to-Big)用“子块精准检索、父块完整上下文”解决一个老矛盾——小块召回准但喂模型时缺上下文,大块上下文全但难被精准命中。检索用子块,生成用父块。
一、大小块的矛盾
块切得小,向量更聚焦,检索时更容易命中相关片段;但喂给大模型时,孤立的小块缺少前后文,模型要么答偏,要么只能靠猜补全背景。更麻烦的是,同一个概念如果分散在相邻几段里,任何一块单独拿出来都可能不足以回答问题。线上表现是:检索明明命中了,答案却答非所问,排查半天发现不是检索的错,而是喂给模型的块太瘦。
把块切大,上下文是全了,新的问题又来了:一个块里混进多个主题,向量被“平均化”,对其中任何一个主题都不再尖锐,精准召回反而下降。同时大块占用更多上下文窗口,一次能塞进生成的证据数量也变少。这个取舍难以两全,根源在于检索和生成对块的要求本来就不一样。很多团队在这里来回调 chunk_size,调小了答案变差,调大了召回变差,其实是把两个环节的需求压在了同一个参数上。
二、父子结构怎么工作
父子 Chunk 的解法是把两个需求拆开,同一段内容存成两块:子块是原子化的小片段,负责被检索命中;父块是包含子块的更大段落,负责在命中后整体喂给生成模型。检索阶段用子块算相似度,确定相关后,把对应的父块送去生成。这一步对上层透明:检索服务的调用方式不变,只是送进生成环节的上下文从单块换成了父块。
| 块 | 用途 | 特点 |
|---|---|---|
| 子块 | 检索命中 | 向量聚焦、易命中 |
| 父块 | 喂给生成模型 | 上下文完整 |
两个细节决定这套机制的效果。一是父子映射要稳定,命中子块后能唯一定位父块,不会产生歧义;二是去重要到位,多个相邻子块同时命中时,应归并到同一个父块再送生成,避免同一段内容重复占用上下文窗口。还要看到,父子结构意味着同样的内容存两份向量与元数据,这是用存储换效果的典型交易;对绝大多数知识库来说,这笔账是划算的。
三、和切片流程的关系
父子 Chunk 不是独立步骤,而是“章节树 → 原子化 → 装箱切片”的下游产物,配合切片策略的四档预设(通用 1000/200 等)一起使用。装箱切片先产生子块,再把若干相邻子块归并成父块,归并沿章节边界走,父块才不会横跨两个不相关的小节。
这样既保证了子块的语义聚焦,又保留了父块的连续上下文。父块也不必无限大——覆盖一个完整小节、让模型不用猜就能读懂即可,再大就回到大块的老问题。如果想低成本试点,可以先在问答对、制度文件这类边界清晰的内容上启用父子结构,收益立竿见影。
四、什么时候最有用
当文档里一个概念分散在多段、或一段同时承载多个主题时,父子结构收益最大。前者如制度文件里同一流程拆在好几节,后者如研报正文里一段同时讲业绩与风险:子块各自命中,父块把完整段落交给模型。判断自己是否需要它,最简单的信号是看 badcase:如果命中的块确实是相关内容、但模型答案总是缺半截,父子结构就是对症的药。
它也是后续做 Chunk 四级增强(面包屑、关键词、摘要、HyDE)的载体:子块带关键词与假设问题参与精准检索,父块带面包屑与摘要呈现语境,两级信号互相配合。
父子块承接在切片之后。切法本身见 RAG 切片策略;增强方法见 Chunk 四级增强;切完要打权限见 权限打标。
真实场景:36,395 个 chunk 的父子实践
父子 Chunk 不是论文概念,而是大规模语料上的刚需。两家上市发行人(含一家全国性商业银行)的 859 份文档切出 36,395 个 chunk、约 3519 万字符:如果只有子块,模型回答「某年度营收同比变化」时只能看到孤立的一段指标文字,缺前因后果;如果只有父块,检索粒度太粗,命中一批不相关章节。父子结构让检索用聚焦的子块命中、生成用完整的父块回答,两层各司其职。
还有一个常被忽略的细节:研究显示长上下文中间部分的信息利用率会下降(Lost in the Middle,Liu et al., 2023,arXiv:2307.03172),所以父块也不宜无限大——按章节树归并出的父块天然有边界,比拍一个固定大数字更可靠。子块上再做语义增强的手段,见Chunk 四级增强:面包屑与 HyDE;切片参数的档位选择,见RAG 切片策略:固定长度与语义切分。
常见问题 FAQ
Q1:父子 Chunk 解决什么问题?
解决小块召回准但缺上下文、大块有上下文却难命中的矛盾:检索阶段用聚焦的子块算相似度,命中后把完整父块送给生成模型,两个需求各用各的块,互不迁就。
Q2:子块和父块分别干什么?
子块是原子化小片段,负责被检索命中,向量聚焦;父块是包含子块的更大段落,命中后整体喂给生成模型,保证上下文完整。多个相邻子块同时命中时会归并到同一父块去重。
Q3:父子块是怎么生成的?
来源于章节树 → 原子化 → 装箱切片:装箱先产生子块,再沿章节边界把相邻子块归并成父块,兼顾聚焦与连续上下文,父块不会横跨两个不相关的小节。
Q4:什么场景最适合父子结构?
当一个概念分散在多段、或一段承载多个主题时收益最大。它也是 Chunk 四级增强的载体:子块带关键词与假设问题,父块带面包屑与摘要,两级信号互相配合。
需要搭建企业级 RAG 知识库?了解丑梨AI
私有化部署的 RAG 数据工程基座:解析、清洗、脱敏、压缩、切片、治理、评测一站式流水线,全本地推理,数据不出域,单机可部署。