分块Chunking
你可能会说
我把整本手册都喂给它了,它怎么还是答非所问?
把长文档切成一段段能被单独检索的小块;资料库里存的是块,检索命中的也是块,不是整本文件。例如 24 页的售后手册要切成几十块,每块带上「第几节、第几页、哪个版本」。切得太粗,一块里混了三件事,搜出来的段落一半是噪声;切得太碎,「7 天内可退」被单独切走,模型看不出它适用于哪类商品。
也常被叫作Chunk文本切片分块策略
运行流程 · 一本手册怎么变成块
一份 24 页的售后手册
切点按标题和段落切,别把表格拦腰截断
块 1P1–P4块 2P4–P7重叠 1 页块 3P7–P10
一块装多少内容:一块只讲一件事最好检索,几百字是常见量级,具体看内容结构
相邻块之间重复一小段,防止关键句子正好落在切点上被拆散
按标题、段落还是固定字数切——表格、代码和最怕被拦腰切断
每块带上来源、章节、版本和页码,检索后才能按条件过滤,回答时才能给出处
容易混淆?这样区分
分块≠文档自己的自然段
分块是为检索重新切的:可能把两段并成一块,也可能把一段切成两半。自然段是排版单位,跟能不能搜到没关系。
块越大越好≠块越小越好
两头都会出问题:块太大,一段里混主题,命中了也带进噪声;块太小,句子被切断,模型缺上下文。按「一块讲一件事」来定。
常见做法 · Variants
按标题切By Heading
## 退款政策↓整节成一块
手册、制度、文档站这类章节边界清楚的资料
固定字数切Fixed Size
每 500 字一刀
聊天记录、无结构长文;简单但容易切断句子
递归 / 语义切Recursive / Semantic
先按段→太大再按句
希望一块读起来是完整的话;多花点预处理时间,换检索质量
典型使用场景
把 PDF 传进知识库时,产品其实替你切了块
售后手册.pdf24 页
块 1块 2块 3块 4
默认切分常常是固定字数;答不全时先怀疑切分,而不是模型
同一段话被切歪以后,检索就找不到它
块 A:「……数码类商品的退换说明见下(表格断了)」
块 B:「7 天内可退,运费由商家承担」
问「数码产品退货谁付运费」时,A 没答案、B 没说清是谁——两段都不够格
延伸阅读 · 权威出处