文档切片:RAG 召回质量的第一道关

RAG 问答的质量,一半取决于检索召回,而召回质量从「怎么切文档」就开始了。切片太粗,语义混杂;切片太细,上下文被切断。切片策略是 RAG 工程里最容易被忽视又最影响效果的一环。

为什么切片重要

  • 大模型一次只能看有限上下文,文档要先切成可检索的片段。
  • 检索按片段召回,片段的「纯净度」决定召回是否准确。
  • 片段切得不好,再好的向量模型也救不回来。

常见策略

  • 固定长度:按 token 数硬切,简单但容易切断语义。
  • 结构切片:按标题、段落、表格、列表边界切,语义最完整。
  • 语义切片:用 embedding 相似度找语义边界再切,效果最好、成本更高。
  • 重叠窗口:相邻片段保留部分重叠,避免关键句被切断。

权衡与调参

  • 片段大小:太短缺上下文,太长稀释主题;常见几百到上千 token,需按场景试。
  • 召回个数:返回片段数多召回高但噪音大,数少精度高但可能漏。
  • 混合策略:结构切片为主,长段落再按语义细分。
  • 建评估集:用真实问题集测「召回是否命中正确片段」,再调切片参数。

进阶

  • 标题拼接:给片段带上所在章节标题,提升检索相关性。
  • 多级检索:先检索到文档,再在文档内定位片段。
  • 重新排序:切片后接 Rerank,进一步精修召回结果。

小结

切片是 RAG 的地基:按结构切保语义、按语义切保精度,配合重叠窗口与重排。别迷信某个固定参数,用业务问题集实测对比,才是调切片的正道。

参考与延伸阅读

  • 本站「RAG 实战」「向量数据库」「RAG 系统评测」教程
  • LangChain/LlamaIndex 官方文档中的切片章节(待核实最新版)
本文累计阅读