什么是 分块重叠(Chunk Overlap)?
分块重叠(Chunk Overlap)是在相邻文档分块之间保留的重复文本,使切分边界附近的信息仍然可以被检索到。
工作原理
分块重叠是可选的边界恢复机制,而不是 Chunk Size 的必设百分比。重复源文本可能找回被人工窗口切断的证据,也会扩大索引、产生近重复候选,并在固定上下文预算下减少唯一证据。应从零重叠基线开始,在边界敏感查询上测试多个绝对 Token 数,同时固定唯一检索 Token 预算。还要保留权威 Offset,让重复文本映射到同一来源 Span,并把证据增益与重复上下文比率分开报告。
主要特点
- 保留分块边界附近的局部上下文
- 可选而非必需:零重叠是对照条件
- 使用绝对重复 Token 数,以便消融实验可比较、可审计
- 按唯一证据增益、重复上下文比率、索引增长与延迟评估
- 保留权威 Offset:多个重复副本都解析到同一原始证据 Span
- 依赖策略:结构边界、句子窗口或 Parent 扩展可能消除重叠需求
常见用途
- 把定义和紧随其后的解释保留在跨边界上下文中
- 在段落长于目标分块大小时减少回答失败
- 保留分块边界附近的代码注释和代码行
- 在边界敏感查询上测试零重叠与多个绝对 Token 候选值
- 当重叠只增加重复上下文而没有找回唯一证据时拒绝该策略
示例
loading...
Loading code...常见问题
RAG 系统应该设置多少分块重叠?
不要继承百分比。先建立零重叠基线,检查已标注的边界失败,再测试少量绝对 Token 候选值。固定唯一检索 Token 预算,只有唯一证据恢复收益超过重复上下文、索引增长与延迟成本时才采用重叠。
分块重叠会伤害检索效果吗?
会。即使不大的重叠也可能生成重复向量和结果。应衡量重复上下文比率与唯一证据密度,不能假设 Reranker 会移除全部重复项。
结构化数据需要分块重叠吗?
通常不需要。记录、行和边界清晰的字段更需要保留 Schema、血缘与鉴权,而不是滑动重叠。只有证据确实跨越结构边界的查询才值得测试例外。
分块重叠会影响引用吗?
重复副本必须保留权威来源 Offset,并在引用前去重。即使多个召回 Chunk 都包含同一文本,引用评分也只能把原始证据 Span 计算一次。