Chunking 有哪些常用策略

一句话速记

切块决定「被检索的语义单元」;策略要在主题完整性**、单块 token 上限与 embedding 最大长度 之间折中;重叠(overlap) 缓解边界切断,结构感知 对 Markdown/代码/表格 更稳。**

按粒度

策略做法适合风险
固定 token/字符 窗每 N token 或 N 字一截,滑窗+overlap实现简单、吞吐句中切断、语义碎
按句/段以标点、段落为界叙述文、新闻长段仍超模型
按结构Markdown 标题、章节HTML 块AST技术文档、手册解析
语义切块向量化句子,相似度低于阈值时切开平白切断算力、、阈值难
特殊内容表格整行/整表、代码以函数/文件 边界表格问答、代码块大小离群、需后处理

Overlap:相邻块共享末/首 50~200 token,降低「答案跨两边界」的漏检;代价存储膨胀去重要考虑。

与 embedding 的约束

  • 不宜长过所用 embedding 的最大序列(按 tokenizer 计)。
  • 过短块:语境不足,噪声大;过长:向量平均指代糊。

多语言

  • 中日韩:按子词 的 tokenizer 与英文「按词」的等长不直接可比;以 token 计 更稳。
  • 混合语料时块大小与 overlap 要单测

延伸追问

  • Q:块越大越好吗?
    答:否。检索是找小命中;块大则一命中带大量无关挤占上下文。
  • Q:需要人工规则吗?
    答:高价值产品常 规则+统计 混合,尤其法条/条款 边界。

我的记法

TODO

状态

  • 已背速记
  • 能讲通俗版
  • 能答追问

参考资料

  • LangChain / LlamaIndex 等中 TextSplitter 的说明作实现参考即可。