资讯详情

【RAG】RAG 文档切割

📅 2026/10/22 2:08:07 | 华诺云谱 👁 阅读
【RAG】RAG 文档切割
做 RAG 的人都知道一个残酷的事实检索效果的天花板往往在文档切割那一步就已经定死了。Embedding 再强、Rerank 再准如果切出来的块本身语义破碎、上下文缺失后面全是白费功夫。这篇文章把主流的六种文档切割Chunking方案捋一遍从最简单的重叠切割到 Anthropic 提出的 Contextual Retrieval讲清楚每种方案的做法、优缺点和适用场景最后给出选型建议。一、为什么切割这么重要RAG 的链路是文档 → 切块 → 向量化 → 检索 → 喂给 LLM。切割决定了两件事检索粒度块太大一个块里混了好几个话题检索时噪声大块太小语义不完整检索到了也没用。上下文完整性如果把一句话、一个表格、一段逻辑从中间劈开模型拿到的就是残缺信息。所以切割的核心矛盾就一句话块要小到足够精准又要大到保留完整语义。下面六种方案本质都是在这个矛盾里找不同的平衡点。二、六种主流切割方案方案一重叠切割Overlap最基础的做法按固定长度切但让相邻块之间共享一段内容。参数overlap 一般设为 chunk_size 的 10%-20%比如 500 字的块重叠 50-100 字。优点成本几乎为零改个参数就行能防止关键信息刚好卡在切点上被切断。缺点只能救单句级别的切断救不了跨段落的语义断裂。适用作为所有切割方案的基础配置几乎都会叠加使用。方案二语义边界切割不按字数硬切而是找语义的自然断点。有两种做法规则版按 Markdown 标题、段落、句号等分隔符切。工程上最常用LangChain 的 RecursiveCharacterTextSplitter 就是按优先级依次尝试分隔符。模型版计算相邻句子的 embedding 相似度相似度骤降的地方说明话题变了在那里切。优点切点符合人类阅读逻辑不会把完整意思劈开。缺点模型版需要额外的 embedding 计算慢且贵块大小不可控。方案二补充结构感知切割表格与代码块生产环境里最常见的翻车点不是正文而是表格和代码块被从中间劈开表格按字数切成两半后两半都失去了表头和列对应关系检索到了也没法用代码块被截断后语法和逻辑都不完整。处理原则就三条表格整体保留一个表格无论多大都不要从中间切超大表格可以按行分组切块但每块都要重复带上表头。代码围栏不切以 围栏为硬边界一个代码块至少作为一个整体超长代码按函数/类边界二次切分。图片与题注绑定图片描述文字和图片引用放在同一个块里避免「图在这儿、解释在上一块」。这套原则本质上是语义边界切割的加强版先识别结构元素表格/代码/图片把它们当作不可分割的原子再对剩余正文走常规切分流程。零成本增强chunk 元数据标题路径组合拳里提到的「标题路径前缀」值得单独强调因为它是投入产出比最高的一步不改变切割逻辑只给每个 chunk 拼一段元数据前缀再做 embedding。元数据前缀 文档名 章节路径 小节标题 [ 页码/来源 URL] 示例 《RedTao 使用指南》 第二章 查询语法 2.3 图遍历 第三步是调用 executeGremlin 方法……作用有两层一是消歧——「配置方法」这种小节标题出现在十篇文档里拼上文档名后向量立刻可区分二是让短 chunk 带上全局语境效果接近轻量版的 Contextual Retrieval但完全不需要调 LLM。很多团队只加了这一步检索质量就有明显提升。元数据建议至少包含文档名、完整章节路径、小节标题有条件再加上页码、来源 URL、更新时间。方案三句子窗口检索Sentence Window核心思想是检索粒度要小返回粒度要大。用单句做向量匹配精准度高但返回给模型时带上周围几句保证上下文不丢。优点命中率高上下文完整。缺点向量库条目数量暴增存储成本高。方案四父子切割Parent-Child句子窗口的进化版分成固定的两层结构。和句子窗口的关键区别父块的边界是固定的按章节、段落划分不是动态取前后 N 句逻辑更完整。优点性价比最高是工程上最推荐的方案。方案五命题化切割Proposition用 LLM 把文档拆成一个个独立完备的原子事实。每条陈述都还原了指代词可以脱离原文独立理解。优点检索极准几乎没有歧义。缺点贵每篇文档都要过一遍 LLM丢失叙述连贯性可能丢失细节。方案六Contextual RetrievalAnthropic 方案保留原始块但给每个块加一段 LLM 生成的上下文说明。做法把整篇文档 当前 chunk 一起喂给 LLM让它生成 50-100 字的上下文描述拼在 chunk 前面再做 embedding。效果Anthropic 实测配合 BM25 混合检索检索失败率降低49%。成本靠 Prompt Caching 把成本压到百万 token 约 1 美元。代价索引阶段慢每个 chunk 都要调一次 LLM。三、选型建议方案成本语义完整性推荐度重叠切割极低⭐基础配置语义边界低-中⭐⭐⭐⭐⭐⭐⭐句子窗口中⭐⭐⭐⭐⭐⭐⭐父子切割低⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐命题化高⭐⭐⭐⭐⭐⭐⭐Contextual Retrieval中-高⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐实战中最有效的其实是组合拳先按结构切Markdown 标题→ 大块内部递归切小块 → 每块加标题路径前缀 → 用父子块策略检索。最后提醒一句切割效果不要凭感觉一定要用 RecallK 和 MRR 实测。同一批 query换不同切割策略跑一遍数据会告诉你答案。感兴趣的宝子可以关注一波后续会更新更多有用的知识
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑