核心要点

  • 块大小决定召回粒度:太大噪声多、太小丢上下文

  • 重叠(overlap)防止语义在边界被切断

  • 语义切分 / 父子块优于固定长度切分

标准回答

Chunking 直接决定向量召回的质量,因为每个块是检索与嵌入的最小单位。

块大小的权衡

  • 块太大:一个块包含多个主题,嵌入向量被「平均」稀释,相关信息被无关内容淹没,检索精度下降,也浪费上下文窗口
  • 块太小:语义被割裂,单块缺乏足够上下文,LLM 难以据此作答。

常见策略

  1. 固定长度 + 重叠:按 token 切分,相邻块保留 10–20% 重叠,避免关键句被边界切断。
  2. 语义切分:按句子/段落/标题等自然边界切,保持语义完整。
  3. 父子块(Parent-Child)/ 小块检索大块返回:用小块做精确召回,命中后返回其所属的大块给 LLM,兼顾召回精度与上下文完整。
  4. 结构感知:对 Markdown、表格、代码保留结构,避免破坏格式。

切分粒度要结合嵌入模型的最佳输入长度与下游任务调优。参考 向量数据库原理

常见误区

⚠️ 常见踩坑

认为存在「最优固定块大小」。实际块大小高度依赖文档类型、嵌入模型和问题粒度,必须通过检索指标实测调优。

追问

追问 1重叠(overlap)设多大合适?

通常取块大小的 10–20%。重叠太小仍可能在边界丢失上下文,太大则增加冗余存储与召回重复。需结合文档连贯性实测。

追问 2父子块(small-to-big)如何解决「精度 vs 上下文」矛盾?

用细粒度小块做向量匹配以提高召回精度,命中后不直接返回小块,而是返回其所属的父块(更大段落)供 LLM 阅读,从而同时获得精确定位和完整上下文。

追问 3如何评估某种切分策略是否更好?

用固定测试集测检索指标:Context Recall、Context Precision、命中率与 MRR;再看端到端答案的 Faithfulness。对比不同块大小/策略下的指标变化来选型。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • LangChain

    最流行的 LLM 应用开发框架,137K+ stars。提供链式编排、RAG 检索增强生成、Agent 构建等核心能力,覆盖 Python 和 JavaScript 双语言生态,是构建 LLM 应用的基础设施

  • LlamaIndex

    文档 Agent 和 OCR 平台,48,716+ stars。领先的 RAG 框架,提供文档索引、数据检索、Agent 编排等完整能力,支持多模态文档理解和智能问答