知识库分块策略:全面对比与选型指南
问:做RAG知识库,分块大小设多少、overlap用多少、按什么规则切——网上的说法五花八门,到底有没有一个通用的标准?
答:没有通用标准,但有几条经过反复验证的经验规则。分块策略的选择取决于文档类型和用户提问方式两个因素。下面把三种主流文档类型的推荐配置和决策逻辑讲清楚。
一、先理解分块到底在解决什么问题
分块的本质是把长文档切成可独立检索的信息单元。切大了,一个块里包含太多信息,检索时“命中但不精准”——用户问“付款条款”,结果把整章合同都召回,大模型填进上下文后反而被无关信息干扰。切小了,关键信息被拆散——“违约金超过5%要总经理审批”这个完整规则被切成两块,用户只检索到前半段,回答就是错的。
分块的目标不是“切得均匀”,是“切得完整”——每个块本身要是一个可独立理解的信息单元。
二、三类文档的推荐配置
类型一:规章制度/条款类文档
这类文档的特点是:每个条款本身就是独立的信息单元,条款之间逻辑关系较弱。
推荐配置:按条款号切分,每个条款单独成块,不设overlap。
为什么这样切?用户问“采购金额超过多少需要总经理审批”,最精准的命中方式是直接命中《采购管理制度》第三章第五条这个条款块。如果把多个条款切在一起,用户可能拿到一堆不相关的条款信息。
实践数据:某制造企业将1200份制度文档按条款切分成约3.2万个块,Top-5召回率从固定512字切分的78%提升至91%。
类型二:技术手册/操作规程类文档
这类文档的特点是:章节之间有较强的逻辑依赖关系,一个操作步骤的上下文可能跨越多个段落。
推荐配置:按章节标题切分,每个章节内的段落保持连续,overlap设100-200字。
为什么加overlap?技术手册里“拧紧力矩为50N·m”这个信息可能出现在章节末尾,而章节标题“第3章·螺栓紧固工艺”在章节开头。不加overlap的话,检索时可能只命中“50N·m”这个块,但不知道这个数值是用于哪个工艺的。overlap确保章节标题和正文内容有重叠,检索时两者同时被命中。
类型三:FAQ/问答类文档
这类文档的特点是:每个问答对本身就是独立的、完整的知识单元。
推荐配置:一个Q&A作为一个块,不切分、不设overlap。
FAQ是最适合RAG的文档类型——问题本身就是最优的检索匹配对象。如果把一个问题切碎了,用户提问时反而匹配不到完整的问答对。一个Q&A作为一个块是唯一正确的做法。
三、三个常见误区
误区一:所有文档用同一个分块策略
这是最常见的问题。把规章制度、技术手册、FAQ、会议纪要全部按512字一刀切——效果一定差。不同文档类型必须用不同的分块策略。
误区二:overlap越大越好
有人觉得overlap设大一点能保证信息不丢失,设到300字甚至500字。但overlap太大会导致同一个信息被多个块重复包含,检索时召回大量冗余内容,浪费上下文窗口。overlap的作用只是“保证边界信息不丢失”,100-200字足够了。
误区三:分块策略一次定死就不动了
文档类型会变、用户提问方式会变、业务需求会变。分块策略应该是一个可迭代的东西——上线后每两周抽样检查一次召回质量,发现某类文档召回率下降就针对性调整其分块策略。
FAQ
Q:表格和图片怎么处理?
A:表格不要切分,整表保留为一个块。图片需要先做OCR或图片描述生成,把文字内容提取出来后和图片一起作为块的内容。
Q:分块策略会影响向量检索的速度吗?
A:影响很小。块的数量增加会略微增加检索耗时,但现代向量数据库(Milvus、Qdrant)对百万级向量的检索耗时通常在毫秒级。分块策略主要影响的是“召回质量”而非“检索速度”。
Q:有没有一种分块策略能覆盖所有场景?
A:没有。也不需要。按照文档类型做分类分块——制度类按条款、手册类按章节+overlap、FAQ按问答对——做到这三类就已经覆盖大部分企业文档了。
一句话总结:分块策略没有万能公式,但有成熟的经验规则——条款类按条款、手册类按章节加overlap、FAQ按问答对。三种策略覆盖大部分企业文档,别对所有文档用同一套参数。
