```html
做RAG的工程师大概都经历过这种时刻:检索结果明明召回了相关文档,模型答出来的东西却驴唇不对马嘴。问题往往不在模型,而在切分。同一份文档,切法不同,检索质量能差出一截。
![]()
有人把常见的分块策略整理成了8条,从最省事的固定切分,到最烧钱的LLM改写,逐条过一遍。
1. 固定大小切分
每隔固定数量的token切一刀,块与块之间留一点重叠。实现最简单,也最不挑文档类型。代价是它完全不看内容结构,一句话可能被拦腰截断,语义边界形同虚设。
2. 递归切分
先按段落切,某一段还是太大就退到按行切,再不行退到按词、按字符。层层降级,直到每块都落在阈值以内。比固定切分多了一点结构意识,但本质仍是按长度办事。
3. 基于文档结构切分
文档本身已经标好了断点——标题、章节、HTML标签,就顺着这些标记切。一份markdown文件,每个小节自然成为一块。这种切法尊重作者原本的组织方式,前提是文档得有结构。
4. 语义切分
把每个句子做embedding,算它和上一句的相似度,相似度一掉就开新块。它找的是真实的话题转折,而不是靠长度猜。
5. 基于LLM切分
让大模型把文本改写成一条条独立的命题,一行一个想法,每行成为一块。质量确实高,但整个语料库跑一遍,账单也很可观。
6. 智能体切分
让一个AI agent先读文档,判断它是代码、合同还是表格,再为这个文件挑合适的切分方法。不再是一套规则套所有文件,而是按文件类型分别决策。
7. 后置分块
先把整篇文档过一遍embedding模型,再套用常规的切分边界,在每个边界内做均值池化,生成块的向量表示。切分动作发生在向量化之后,而不是之前。
8. 层级切分
把文档拆成层:章节、段落、句子,一层套一层。检索时可以在不同粒度上做文章,粗层看全局,细层抠细节。
这8种策略摆在一起,其实是一条成本与质量的连续光谱。固定切分几乎零成本,语义切分要为每句话付一次embedding,LLM切分则直接把大模型请进了预处理流水线。选哪个,取决于语料规模、文档结构和预算三者的平衡。
真正落地时,多数团队不会只押一种。代码库可能走结构切分,合同走语义切分,杂乱的网页正文退回固定切分加重叠。分块从来不是一劳永逸的配置项,而是跟着数据形态走的工程决策。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.