```html

做RAG的工程师大概都经历过这种时刻:检索结果明明召回了相关文档,模型答出来的东西却驴唇不对马嘴。问题往往不在模型,而在切分。同一份文档,切法不同,检索质量能差出一截。

打开网易新闻 查看精彩图片

有人把常见的分块策略整理成了8条,从最省事的固定切分,到最烧钱的LLM改写,逐条过一遍。

1. 固定大小切分

每隔固定数量的token切一刀,块与块之间留一点重叠。实现最简单,也最不挑文档类型。代价是它完全不看内容结构,一句话可能被拦腰截断,语义边界形同虚设。

2. 递归切分

先按段落切,某一段还是太大就退到按行切,再不行退到按词、按字符。层层降级,直到每块都落在阈值以内。比固定切分多了一点结构意识,但本质仍是按长度办事。

3. 基于文档结构切分

文档本身已经标好了断点——标题、章节、HTML标签,就顺着这些标记切。一份markdown文件,每个小节自然成为一块。这种切法尊重作者原本的组织方式,前提是文档得有结构。

4. 语义切分

把每个句子做embedding,算它和上一句的相似度,相似度一掉就开新块。它找的是真实的话题转折,而不是靠长度猜。

5. 基于LLM切分

让大模型把文本改写成一条条独立的命题,一行一个想法,每行成为一块。质量确实高,但整个语料库跑一遍,账单也很可观。

6. 智能体切分

让一个AI agent先读文档,判断它是代码、合同还是表格,再为这个文件挑合适的切分方法。不再是一套规则套所有文件,而是按文件类型分别决策。

7. 后置分块

先把整篇文档过一遍embedding模型,再套用常规的切分边界,在每个边界内做均值池化,生成块的向量表示。切分动作发生在向量化之后,而不是之前。

8. 层级切分

把文档拆成层:章节、段落、句子,一层套一层。检索时可以在不同粒度上做文章,粗层看全局,细层抠细节。

这8种策略摆在一起,其实是一条成本与质量的连续光谱。固定切分几乎零成本,语义切分要为每句话付一次embedding,LLM切分则直接把大模型请进了预处理流水线。选哪个,取决于语料规模、文档结构和预算三者的平衡。

真正落地时,多数团队不会只押一种。代码库可能走结构切分,合同走语义切分,杂乱的网页正文退回固定切分加重叠。分块从来不是一劳永逸的配置项,而是跟着数据形态走的工程决策。