分块在整条链路里的位置

Chunk 太碎,召回碎片化,答案拼不起来;Chunk 太大,向量被噪声稀释,Rerank 也救不回来。生产里几乎不用「纯固定长度」:至少加 overlap,避免句子在窗口边缘被切断。

常用策略怎么选

  • 递归字符 / 按句:通用底线,适合说明书和制度文档。
  • 结构化:按标题、列表、代码函数切;表格转 HTML 或 JSON,不要压成纯文本。
  • 语义 / 主题 / 命题化:适合叙事长文,代价是多一次模型调用。
  • 父子块:检索打子块,返回父块,兼顾精度和完整上下文。
  • Late Chunking、句子窗口、Contextual Retrieval:先编码长文再切,或给每块补文档标题上下文,缓解「块内看不见全文」。

落地时只盯三件事

  • overlap 先从 10%–20% 试,用 Hit@K 看边界问题有没有下降。
  • 代码按函数切,表格单独通道,不要和正文共用同一套 splitter。
  • 用 Prompt Caching 摊薄 Contextual Retrieval 的费用,否则语义分块会把账单打爆。