资讯详情

分块切得对不对,决定检索灵不灵:从 all-in-rag 的数据准备章节到知乎四阶段拆解,把‘文本分割的两个约束‘落成分块策略清单

📅 2026/11/6 5:21:55 | 华诺云谱 👁 阅读
分块切得对不对,决定检索灵不灵:从 all-in-rag 的数据准备章节到知乎四阶段拆解,把‘文本分割的两个约束‘落成分块策略清单
分块切得对不对决定检索灵不灵把“文本分割的两个约束”落成分块策略清单很多刚接触 RAG 的朋友兴奋点往往在向量数据库选型、检索算法、Prompt 调优这些“高级环节”而最容易跳过的恰恰是看起来最朴素的数据准备阶段。但事实是如果文档在入库前被切得稀碎或粘连后面再强的检索模型也救不回来。这篇文章结合 Datawhale 的开源教程《all-in-rag》的章节体系以及知乎文章《一文读懂大模型RAG检索增强生成含高级方法》中对文本分割的拆解把分块这件“脏活”整理成一份可操作的策略清单。一、为什么数据准备阶段值得单独花时间在《all-in-rag》的内容大纲中数据准备被单独列为第二章紧随 RAG 基础入门之后包含“数据加载”与“文本分块”两节之后才进入索引构建、检索优化、生成与评估。这个章节安排本身就在传递一个信号分块是承上启下的枢纽——上游接多格式文档的加载与清洗下游接向量嵌入和向量数据库。知乎那篇文章对数据准备阶段的定位也很明确它“一般是一个离线的过程”主要包括数据提取、文本分割、向量化、数据入库等环节。其中数据提取又细分为数据加载多格式数据加载、不同数据源获取、数据处理过滤、压缩、格式化和元数据获取提取文件名、Title、时间等关键信息。换句话说分块不是孤立的一步它前面有清洗和元数据提取做铺垫后面有 embedding 和索引等着消费它的产出。跳过这一步的思考等于让下游所有环节都在“垃圾进、垃圾出”。二、文本分割的两个约束token 限制 vs 语义完整性知乎文章把文本分割需要考虑的因素总结为两条embedding 模型的 Tokens 限制超长的文本块无法被 embedding 模型完整编码必须切到模型能接受的长度以内。语义完整性对检索效果的影响一个块如果把一句话、一个论点拦腰斩断向量表达就会失真检索时命中的可能是“半句话”。这两个约束在方向上是冲突的块越小越容易满足 token 限制但语义越碎块越大语义越完整但容易撞上 token 上限还会稀释向量中的核心语义。好的分块策略本质上就是在这两个约束之间找平衡点。三、两种基础切分方式的取舍知乎文章列举了两种常见的文本分割方式各自的优劣很典型句分割以“句”为粒度切分保留一个句子的完整语义常见切分符包括句号、感叹号、问号、换行符等。优点语义天然完整每个块都是一个自洽的语义单元检索命中的内容可直接读懂。局限句子长短不一可能过短导致上下文不足对没有清晰句读的文本如代码、表格效果差。固定长度分割根据 embedding 模型的 token 长度限制将文本切为固定长度如 1024 或 512 个 tokens。知乎文章明确指出这种切分方式“会损失很多语义信息一般通过在头尾增加一定冗余量overlap来缓解”。优点块长可控、处理统一工程上最简单适合快速搭建原型。局限切分点完全无视语义边界容易把一句话切成两半overlap 只是缓解手段不是解决方案——冗余量设大了浪费存储和检索精度设小了照样丢上下文。两者的取舍可以概括为句分割牺牲了长度均匀性换取语义质量固定长度分割牺牲了语义质量换取工程简单。实际系统中往往不是二选一而是组合使用。四、可操作的分块策略清单把上面的约束和取舍落成清单你可以按顺序过一遍先做加载与清洗再谈分块。按《all-in-rag》第二章的结构多格式文档加载、数据过滤与格式化要先行。PDF 里残留的页眉页脚、乱码字符如果不清掉会把切分符搞乱块质量自然差。元数据先行。按知乎文章的建议在数据提取阶段提取文件名、Title、时间等关键信息。这样即使块被切小标题、章节等元信息仍可附着在块上检索命中后还能拼回完整语境。确认你的 embedding 模型 token 上限。这是硬约束分块长度必须留出余量不要贴着上限切。优先按语义边界切再按长度兜底。先以段落、标题、句读符做天然切分点得到语义完整的候选块对于仍然超长的块再降级用固定长度切分并在头尾加冗余量缓解语义损失。控制块长均匀性。避免出现大量“一个词的块”和“顶格的超长块”混杂极端块长会让向量检索的召回分布失衡。分块策略要配合下游评估来调。分块没有“一步到位”的参数切多细、冗余多少最终要看检索和生成环节的效果反馈来迭代。五、适用范围与局限这份清单主要适用于纯文本 RAG 的数据准备阶段即知乎文章描述的“私域数据向量化后构建索引并存入数据库”的离线流程。它有几点明确的局限不覆盖多模态场景。《all-in-rag》大纲中有多模态嵌入、图文检索等内容图片、表格的分块处理逻辑与纯文本不同本文不展开。不覆盖高级检索。混合检索、查询构建、Text2SQL、查询重构等进阶技术在《all-in-rag》第三、四章有专门讨论分块只是它们的地基。句分割对无句读文本失效。代码、日志、表格类内容需要专门的切分器不能套用句号、问号这类切分符的思路。参数没有万能默认值。块长、overlap 的最优值依赖具体语料、embedding 模型和业务问题清单给的是方法框架不是可以直接照抄的配置。六、写在最后RAG 系统的检索质量很大一部分在数据入库那一刻就已被决定。与其在检索失败后反复调 Prompt不如回到数据准备阶段认真回答两个问题我的块有没有超出 embedding 模型的 token 限制我的块还保留着完整的语义吗想清楚这两个约束再按上面的清单逐条落地分块这件“脏活”就会从 RAG 管道里最容易被忽略的环节变成你最放心的环节。参考资料《all-in-rag》DatawhaleGitHubdatawhalechina/all-in-rag第二章“数据准备”数据加载与文本分块知乎文章《一文读懂大模型RAG检索增强生成含高级方法》数据准备阶段对文本分割两个约束及句分割、固定长度分割的说明参考资料以下链接为本文使用的公开资料。事实依据与检索摘录保存在本地记录中资料内容与适用范围以原始页面为准。GitHub - datawhalechina/all-in-rag: 大模型应用开发实战一RAG 技术全栈指南在线阅读地址https://datawhalechina.github.io/all-in-rag/ · GitHub一文读懂大模型RAG检索增强生成含高级方法
📝

华诺云谱内容团队

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

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

你可能需要的服务

订阅华诺云谱资讯周报

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

↑