一句话总结:RAG 文档分块是将长文档切分为可检索片段的过程。语义分块 + 父子索引是目前企业知识库的最优策略,可将检索准确率提升 20~35%。
常见分块策略对比
| 策略 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 固定长度 | 每 512 token 切一刀 | 简单 | 语义断裂 |
| 按段落/标题 | 以 \n\n 或 H1/H2 为界 | 保留结构 | 段落过长/过短 |
| 语义分块 | Embedding 相似度突变处切分 | 语义完整 | 计算开销略高 |
| 父子索引 | 小块检索、大块生成 | 精度+上下文兼顾 | 架构复杂 |
推荐参数(中文企业文档)
语义分块:
- 目标块大小:300~500 中文字
- 重叠(Overlap):50~80 字
- 最小块:100 字(过短则合并)
父子索引:
- 子块(检索用):256 token
- 父块(生成用):1024 token
- 检索命中子块 → 返回对应父块给 LLM
不同文档类型的策略
- PDF 制度文件:按章节标题分块 + 表格单独提取
- 产品手册:按产品型号/功能模块分块
- FAQ 文档:一问一块,不做二次切分
- 技术 Wiki:语义分块 + 保留 Markdown 结构
- Excel 报表:按行/Sheet 结构化存储,不走向量检索
分块质量检查清单
- 随机抽查 20 块,人工判断语义是否完整
- 块内是否包含完整的主谓宾
- 表格/列表是否被截断
- 页眉页脚/水印是否被误收录
常见问题
512 token 还是 1024 token?
检索阶段用小块(256512),生成阶段用大块(10242048)。父子索引是最佳实践。
中文和英文分块参数一样吗? 中文信息密度更高,等效 token 数约为英文的 1.5~2 倍。512 token 中文约 300~400 字。
分块后需要人工审核吗? 首次上线建议抽查 5% 的块。后续文档增量更新可自动化,异常块触发告警。