张大妈

RAG的文档切分Chunking

源自小红薯:说话的方式简单点

01-31 20:47

在RAG系统中,文档切分是决定检索效果的关键步骤。一个高质量的切分方案能确保每个文本块都语义集中且信息完整,直接关系到问答的准确性和稳定性。本文深入探讨了切分的核心原理与四种主流策略,为优化RAG系统提供了清晰的思路和实用参数。

RAG的文档切分Chunking智能速览

  • Chunking的目标是获取回答子问题的最小语义单元。

  • Chunk大小本质是偏差与方差的平衡,Overlap有助于降低偏差。

  • 固定长度切分简单,但容易切断语义结构。

  • 句子感知和结构化切分能更好地保持语义完整性。

  • 语义切分效果最自然,但计算成本高且受模型影响。

  • 常见工程参数推荐chunk_size为200-500 tokens,Overlap为10%-30%。

RAG的文档切分Chunking精华内容

如何找到偏差与方差的最佳平衡点?理解四种切分策略的优劣,是构建高效RAG系统的第一步。

固定长度切分

这是一种最基础直接的切分策略,严格按照预设的token数量(例如200-500)对文档进行分割。

其优点在于实现简单,计算开销小,处理速度快。

但主要问题是它完全无视文本的自然结构,可能会在句子中间甚至单词中间进行切断,导致单个chunk的语义不完整,从而影响检索的精准度。

句子感知切分

该策略以句子为基本单位,通过识别句号、问号等标点符号来确保切分不会破坏句子的完整性。

它会将连续的句子组合成一个接近目标chunk_size的块。

这种方法避免了前者的硬伤,但可能导致chunk的长度不均匀。同时,由于单个语义主题可能跨越多个句子,这种切分方式仍可能将关联紧密的语义分割开来。

结构化切分

这种方法充分利用了文档的元数据结构,例如Markdown的标题层级(#、##)或HTML的标签(

,

)。它会在这些自然的结构边界处进行切分,确保每个chunk都是一个或多个结构上完整的段落。这样做的好处是语义完整性很高,但缺点是只适用于结构化文档,且切分出的块大小可能差异巨大,对非结构化纯文本无效。语义切分这是目前最先进的切分方法,它不依赖固定长度或表面结构,而是通过计算文本片段之间的语义相似度来决定切分点。当相邻句子的语义相似度低于某个阈值时,就在此处进行分割。这种方法能够找到最自然的语义边界,适用于各类文档。但其缺点是计算成本高昂,效果严重依赖所选的embedding模型,并且参数调优较为复杂敏感。选择合适的切分策略是RAG系统成功的关键,没有万能方案,需根据文档特性和业务需求在效率与效果之间做权衡。对于追求极致效果的场景,语义切分是未来方向;而对于成本敏感且文档规整的场景,结构化切分则是性价比之选。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章