知识库切块怎么切:检索不准往往出在这一步

RAG 答不准,多数人先去换模型,但问题常常在切块。本文说明按固定长度切为什么会切断语义、表格与长文档该怎么处理、以及重叠该留多少。

要点速览
  • RAG 答不准时,瓶颈常在切块与检索,而不是模型能力。
  • 按固定长度切会把条件与结论、表头与数据切开,应按文档结构切分。
  • 重叠通常取单块长度的一到两成,具体值要用实际问题集测,不要照搬默认。
  • 图片里的信息不会被检索到,关键内容必须补文字说明。
  • 每块保留来源与版本元数据,否则模型会在多版本之间给出混合答案。

企业知识库答得不准时,常见的第一反应是换一个更强的模型。但在多数项目里,真正的瓶颈在更前面一步:如果检索出来的片段本身就不完整、或者根本没检索到对的内容,模型再强也只能在错误的材料上作答。

按固定长度切的问题

最简单的做法是每若干字符切一刀。它的问题是刀口落在哪里完全看字数:一条规定的条件部分在上一块、结论部分在下一块;一个表格的表头和数据行被分开;一句话从中间断掉。检索到其中一块时,关键信息恰好不在里面。

更合理的做法是按文档结构切:以标题层级为边界,一个小节一块;小节过长时再在段落边界细分。这样每一块本身是一个完整的意思单元,单独读也成立。

重叠窗口留多少

相邻块之间重叠一小段,可以缓解边界切断的问题。重叠过少起不到作用,过多则同一内容被反复检索出来,占满了上下文却没有新信息。常见的做法是重叠占单块长度的一成到两成,具体值应当用实际问题集测出来,而不是照搬默认配置。

表格和图片

  • 表格尽量整块保留,并在块的开头附上表格标题与所属章节,否则检索到的是一堆没有上下文的数字;
  • 大表格确实需要拆分时,每一块都要带上表头,不能只有数据行;
  • 图片里的信息不会被检索到。关键信息如果只存在于流程图或截图里,需要补一段文字说明,否则这部分知识在库里等于不存在;
  • 扫描件要先做文字识别,并抽查识别质量 —— 识别错误会直接变成错误答案的来源。

元数据不能丢

每一块都应当保留它的来源:文档名、章节、版本、生效日期。这有两个作用:回答时可以给出出处让人核对,以及可以按条件过滤 —— 比如只检索当前有效版本,而不是把三个版本的制度一起召回。

文档有多个版本却没有版本标记,是企业知识库最常见的错误来源。模型会在新旧两版之间给出一个看起来合理、实际是混合的答案,而这种错误很难被发现。

怎么验证切得好不好

准备二三十个真实问题,只看检索结果而不看最终答案:正确的片段有没有被召回、召回的片段是不是完整。这一步能把「检索问题」和「生成问题」分开,而分不开这两者,调优就只能靠换模型碰运气。相关的整体做法见企业知识库解决方案,实施节奏参考合作流程。

常见问题

RAG 知识库文档应该怎么切块?

优先按文档结构切:以标题层级为边界,一个小节一块,过长时再在段落边界细分,保证每块单独读也是完整的意思单元。按固定字符数切会把条件与结论、表头与数据分开,导致检索到的片段缺少关键信息。

切块重叠设置多少合适?

通常取单块长度的一到两成。过少无法缓解边界切断,过多会让同一内容被反复召回、占满上下文却没有新信息。具体数值应当用二三十个真实问题实测后确定,不要直接使用工具默认值。

知识库里的表格和图片怎么处理?

表格尽量整块保留并附上标题与章节,必须拆分时每块都要带表头。图片中的信息不会被检索到,关键内容需要补充文字说明;扫描件要先做文字识别并抽查质量,识别错误会直接成为错误答案的来源。

参考资料

  1. Embeddings · OpenAI Platform Docs
  2. 大模型服务平台百炼文档 · 阿里云
# RAG# 知识库# 文档处理# 检索
免费咨询

聊聊你的项目

留下联系方式,我们一个工作日内联系你。先沟通需求和现状,再给方案;报价当面沟通。

  • 一个工作日内回复
  • 需求沟通免费,不强推方案
  • 交付管理后台与文档,可自行维护
仅用于本次咨询联系,不会用于其他用途。