首页/新闻资讯/正文详情

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

发布时间:2026/11/6 5:21:58 来源:云帆数科 栏目:资讯中心
分块切得对不对,决定检索灵不灵:从 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检索增强生成含高级方法

相关推荐

base_url 不用换、model 名一改就切:从 DeepSeek 同时兼容 OpenAI 与 Anthropic 两套接口,看‘接口层迁移成本‘该怎么算
base_url 不用换、model 名一改就切:从 DeepSeek 同时兼容 OpenAI 与 Anthropic 两套接口,看‘接口层迁移成本‘该怎么算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 5:21:58

Agent上线后账单暴涨?我用三层熔断,把无限循环调用这个炸弹拦在了门外|可写简历
Agent上线后账单暴涨?我用三层熔断,把无限循环调用这个炸弹拦在了门外|可写简历

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 5:21:58

Python 自动化运维实战:Zabbix 巡检小工具(配置文件驱动,Linux 一键出报告)
Python 自动化运维实战:Zabbix 巡检小工具(配置文件驱动,Linux 一键出报告)

每天登录 Zabbix 一台台点开主机看 CPU、内存、磁盘,再手动复制到 Excel 里拼巡检报告,是很多运维同学的日常。主机一多,这件事既枯燥又容易漏看。本文分享一个已经打包成小工具的 Python 脚本 方案:在 Linux 上直接运行&#xff… · 2026/11/6 5:21:58

实战分享:Docker镜像构建优化技巧(进阶篇)全流程解析
实战分享:Docker镜像构建优化技巧(进阶篇)全流程解析

本文深入探讨Docker镜像构建优化技巧(进阶篇),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。随着业务规模增长,Docker镜像构建优化技巧(进阶篇)的重要性日益凸显。无论你是刚入门还是… · 2026/11/6 9:55:23

GitOps工作流实践指南(进阶篇)——工程师必备知识
GitOps工作流实践指南(进阶篇)——工程师必备知识

本文深入探讨GitOps工作流实践指南(进阶篇),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。作为DevOps与运维从业者,掌握GitOps工作流实践指南(进阶篇)不仅能提升系统稳定性&#xff0… · 2026/11/6 9:55:23

Kubernetes HPA自动扩缩容(进阶篇)最佳实践与踩坑记录
Kubernetes HPA自动扩缩容(进阶篇)最佳实践与踩坑记录

本文深入探讨Kubernetes HPA自动扩缩容(进阶篇),涵盖背景分析、原理剖析、实战步骤、配置示例、优化建议和避坑指南。作为DevOps与运维从业者,掌握Kubernetes HPA自动扩缩容(进阶篇)不仅能提升系统稳定性&a… · 2026/11/6 9:55:23

Cline CLI完全指南:在终端运行AI编程代理,实现CI/CD自动化代码审查
Cline CLI完全指南:在终端运行AI编程代理,实现CI/CD自动化代码审查

人工智能大模型AI Agent代码智能体AI 应用开发工具 【免费下载链接】cline-chinese Cline中文汉化版,Cline是一款在您的 IDE 中运行的自主编程助手,经您许可后可以创建/编辑文件、运行命令、使用浏览器等功能。 项目地址: https://gitcode.co… · 2026/11/6 9:41:56

Java 面试
Java 面试

Java 面试宝典 不定时更新 Java的面试题, 有什么好的 感谢评论告知! 小提示 可以看旁边的文章目录, 自问自带看看自己会不会! 奉上本人Java学习笔记! Java 线程 泛型 集合 SSM Mybatis mybatis中namespace的作用 Namespace是命名空间… · 2026/11/6 9:36:45

PowerShell监控——监控共享打印机 获取打印记录、打印人员、打印文件等详细信息
PowerShell监控——监控共享打印机 获取打印记录、打印人员、打印文件等详细信息

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 9:36:45

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码