在RAG系统中,文档切分是决定检索效果的关键步骤。一个高质量的切分方案能确保每个文本块都语义集中且信息完整,直接关系到问答的准确性和稳定性。本文深入探讨了切分的核心原理与四种主流策略,为优化RAG系统提供了清晰的思路和实用参数。
智能速览
Chunking的目标是获取回答子问题的最小语义单元。
Chunk大小本质是偏差与方差的平衡,Overlap有助于降低偏差。
固定长度切分简单,但容易切断语义结构。
句子感知和结构化切分能更好地保持语义完整性。
语义切分效果最自然,但计算成本高且受模型影响。
常见工程参数推荐chunk_size为200-500 tokens,Overlap为10%-30%。
精华内容
如何找到偏差与方差的最佳平衡点?理解四种切分策略的优劣,是构建高效RAG系统的第一步。
固定长度切分
这是一种最基础直接的切分策略,严格按照预设的token数量(例如200-500)对文档进行分割。
其优点在于实现简单,计算开销小,处理速度快。
但主要问题是它完全无视文本的自然结构,可能会在句子中间甚至单词中间进行切断,导致单个chunk的语义不完整,从而影响检索的精准度。
句子感知切分
该策略以句子为基本单位,通过识别句号、问号等标点符号来确保切分不会破坏句子的完整性。
它会将连续的句子组合成一个接近目标chunk_size的块。
这种方法避免了前者的硬伤,但可能导致chunk的长度不均匀。同时,由于单个语义主题可能跨越多个句子,这种切分方式仍可能将关联紧密的语义分割开来。
结构化切分
这种方法充分利用了文档的元数据结构,例如Markdown的标题层级(#、##)或HTML的标签(