← 关联知识节点:RAG:检索增强生成
交互工具 · 对比

文档切块实验室

RAG 的检索质量,一半在切块就定了:块太大,一小块混几件事,检索被稀释;块太小,一句话被斩成两截,哪一块都不完整。同一篇政策切三遍,看切口怎么决定召回命运——关键条款在默认参数下恰好被拦腰斩断。

纯前端确定性模拟:固定长档窗口步进 step = size − overlap,与知识库《RAG:检索增强生成》动手节 split 同构;三档谱系对齐《RAG 进阶:混合检索、重排与评估》——固定长是起点档、段落标题尊重作者边界、语义档按话题转折下刀(预置句级主题标签示意语义边界,页面明示)。注意与「分词」工具分工:那是 BPE 子词层,这是检索库文档层。零 API、零随机。

这是检索库的文档层:入库前长文档要先切成块(chunk),切块的两个旋钮是块大小 size与相邻重合 overlap。 同一篇报销政策三种切法随便试,看关键句被斩断、一块混多主题,再联动检索看哪种切法静默召回失败。 注意区分:分词工具切的是模型输入的 BPE 子词层,这里切的是入库文档层——两把不同的刀。

三档切块 · 谱系从糙到准

文档:差旅报销政策 · 185 字

每 48 字切一刀——起点档,便宜但不懂内容

块大小 size48 字
相邻重合 overlap0 字

4 块 · 平均 46 字/块 · 斩断 4 处 · 混主题 4 块

切块全景 · 一色一块

一个块被斩断的句子(红色段 = 它横跨块边界的部分)
块 1第 0–48 字 · 48 字召回 top-2
混 2 个主题出差申请发票要求斩断 1 句词面 0.09

出差前须在 OA 系统提交出差申请,写明事由、城市与天数。没有申请单的差旅,费用一律不批。报销凭

被斩断:「报销凭证一律用增值税发票,抬头须为公司全称。」
块 2第 48–96 字 · 48 字召回 top-1
混 2 个主题发票要求报销时限斩断 2 句词面 0.18

证一律用增值税发票,抬头须为公司全称。电子发票需打印一份附在报销单后。报销须在 30 天内提交,

被斩断:「报销凭证一律用增值税发票,抬头须为公司全称。」「报销须在 30 天内提交,时限从发票开具日起算。」
块 3第 96–144 字 · 48 字
混 2 个主题报销时限住宿标准斩断 1 句词面 0.09

时限从发票开具日起算。超期未报的,要附部门负责人签的情况说明。一线城市住宿上限每晚 600 元。

被斩断:「报销须在 30 天内提交,时限从发票开具日起算。」
块 4第 144–185 字 · 41 字
混 3 个主题住宿标准审批打款词面 0.09

超标准的部分由个人自理。报销单走部门与财务两级审批。审批通过后,打款固定在每周五。

检索联动 · 词面计分取 top-2

这个查询在考:报销须在 30 天内提交,时限从发票开具日起算。(考一句横跨报销 / 发票两主题的关键句:30 天时限从发票开具日起算)。块级得分 = 查询词面 token(中文字面 2-gram + 英数串)被块覆盖的比例,真实计分。

  1. 1块 2 · 证一律用增值税发票,抬头须为公司全称。电子发票需打印一份附在报销单后。报销须在 30 天内提交,0.18
  2. 2块 1 · 出差前须在 OA 系统提交出差申请,写明事由、城市与天数。没有申请单的差旅,费用一律不批。报销凭0.09

静默召回失败 · 召回的块缺了另一半

召回了「报销须在 30 天内提交,」,缺了「时限从发票开具日起算。」——另一半躺在块 3 里没被召回。检索不报错、模型不知情,只能编或者说不知道:这就是静默召回失败,发票超过一个月还能报销吗问的就是它。

旋钮一 · size块大到装下一个完整的意思单元,小到一段只说一件事;500 字是常见起点,答案的粒度才是真正的标尺。
旋钮二 · overlap相邻块重合几十字,是防「一句话被拦腰斩断」的保险;但重合越多块越多,top-k 越挤——保险不免费,本页把 overlap 拧到 32 就能看见完整块被挤出 top-2。
切块谱系固定长 → 段落/标题 → 语义,一档比一档尊重「一块 = 一个完整的意思单元」;五、审批与打款一段混两个主题,段落档分不开的,语义档分得开——作者边界不等于语义边界。
别混淆分词(tokenizer)切的是模型输入的 BPE 子词层,这里切的是检索库的文档层——两把不同的刀,各管一层。