跳到正文
docai.cc

DOCAI · 概念 · L2

文档分块怎么做

一句话定义

把长文档切成可检索、可送进模型的文本单元;切法直接决定检索能否命中。

开发者更新 2026-11-13核验 2026-11-13 · docai 编辑部

它是什么

分块(chunking)是把长文档切成一段段可独立检索、可独立送进模型的文本单元。它不是预处理里的小动作:检索能不能命中、模型拿到的材料是否完整,多半在切分时就已经决定。做 RAG、长文档问答、代码库索引,都绕不开这一步。

怎么工作

先按文档自身的结构切。标题层级是最可靠的边界:一个二级标题下的小节通常就是一个语义单元;段落、列表项、表格也各有边界。表格不要按行切散,把表头和说明一起保留;代码块不要从中间截断。

结构不够用时再按长度兜底:定一个目标长度,在句号、问号、分号、换行这些自然边界附近落刀,不要硬切在句子中间。

相邻块之间保留一小段重叠,避免答案刚好跨在边界上。重叠能缓解截断,但重叠太多会带来重复召回,也会浪费存储和上下文预算。

块大小要和上下文预算一起考虑。块越大,单块信息越完整,但召回精度下降,送进模型的 token 更多;块越小,召回更准,但容易丢前提。没有通用最优值,要拿自己的文档和问题去测。

中文要特别处理:中文没有空格,按固定字符数切容易切坏词。优先按标点(句号、问号、分号、逗号、顿号)和换行切,英文数字串、错误码、版本号不要拆开。

最后,给每个块保留标题路径,例如「部署 > 回滚 > 常见错误」。块被单独取出来时仍有坐标,模型和重排模型都更容易判断相关性。

常见误解

  • 块越小检索越准:小到一句话时,召回准了,但模型没有足够上下文回答,答案和前提被拆散。
  • 按固定字数切就够了:固定长度会切碎表格、代码和标题层级,语义边界全丢。
  • 重叠越多越安全:重复结果会挤占上下文预算,也可能让模型重复回答。
  • 切完就不用管:切分策略要跟着评测调,答案总被切断时先调边界与重叠。

怎么判断切得好不好

拿一批真实问题跑检索:看正确片段是否被召回、片段是否完整、模型能否只靠这段材料答对。如果答案经常缺半句,先调切分边界和重叠,再考虑换检索方式。

延伸阅读

什么时候用得上

当你为 RAG、长文档问答或代码库索引准备语料时,先定切分策略:它决定了后续召回能拿到什么,也决定了模型看到的片段是否完整。

常见误解

很多人以为块切得越小检索越准。块太小会把答案和前提拆散,模型拿到片段也回答不了;真正要调的是切分边界、重叠和块大小,而不是一味变小。

来源

定义与事实以以下来源为准;表述与取舍是本站整理的。
  1. [1]OpenAI · Embeddings
  2. [2]Anthropic · Context windows
查看 Markdown

所属专题

相邻概念