什么是 文档分块(Chunking)?
文档分块(Chunking)是把长文档或数据源切分为较小可检索单元的过程,这些单元需要保留足够语义上下文,以支持向量嵌入、索引、检索和有依据生成。
工作原理
文档分块是 RAG 中杠杆最高的设计选择之一。它决定检索器能返回给模型的单位:段落、标题章节、页面、表格、代码块,或滑动文本窗口。好的分块保留语义和来源可追溯性;糟糕分块会产生过小而无法回答问题的碎片,或过大而无法精确检索的文本块。生产级分块应考虑文档结构、语言、表格、代码、权限、引用、token 预算和评估结果,而不是只依赖固定字符数。
主要特点
- 检索单元设计:定义检索器可以返回的最小索引单位
- 尽可能结构感知:尊重标题、段落、表格、列表、代码块和页码边界
- 上下文保留:在精确检索和足够上下文之间取得平衡
- 引用影响:影响生成答案能否指向可靠来源片段
- 依赖评估:最优策略取决于查询模式、语料类型、模型上下文窗口和延迟预算
常见用途
- 把产品文档按标题结构拆分,用于 RAG 检索
- 为政策问答创建段落级分块
- 在开发者文档中保留代码块及其周围解释
- 把表格或表单拆成带元数据的可检索记录
- 测试不同分块策略以提升检索精确率和召回率
示例
loading...
Loading code...常见问题
为什么文档分块对 RAG 很重要?
分块定义了检索器可以返回什么。如果分块形状不好,系统可能检索到不完整证据、混合无关主题、丢失引用边界,或浪费上下文窗口预算。
固定大小分块够用吗?
它可以作为基线,但生产环境通常不是最优。对于有标题、表格、列表、代码或政策章节的文档,结构感知分块通常效果更好。
应该如何评估分块?
应评估预期证据是否出现在 top-k 检索结果中,分块是否包含足够回答上下文,以及引用是否仍然具体且可审计。
分块会泄露受限数据吗?
会。如果分块跨越权限边界合并内容,检索可能暴露用户不应看到的文本。分块和元数据分配都应遵守访问控制边界。