跳到正文

AI Know · 技术研究笔记

切分粒度决定召回上限

排序错位比模型弱更致命;引用不可核对等于没有引用;评测要盯整条链路而非答案

听书 00:00 / --:--
00

三分钟读懂

先看结论,再决定是否深读

  1. 切分粒度决定召回上限
  2. 排序错位比模型弱更致命
  3. 引用不可核对等于没有引用
  4. 评测要盯整条链路而非答案
  5. 长尾输入是失效集中爆发区
01 / DEEP DIVE

核心原理

过去两年,团队把大量精力花在换模型、调提示词上,但线上的 RAG 事故复盘往往指向同一个结论:生成模型只是最后一公里的执行者,真正出问题的是它拿到的上下文。切分把连续语义切碎,召回把无关段落顶到前面,引用又无法回溯到原文位置,三者叠加后,模型只能在错误的材料上做正确的推理。

更麻烦的是,这类失效具有隐蔽性。答案读起来通顺、术语准确、格式规范,评审者很难一眼判断它是否有依据。等到业务方发现数字对不上、条款引用错位时,问题已经被复制进缓存、日志和下游流程。因此,RAG 的质量治理不是提示词工程,而是数据链路工程。

02 / DETAILS

技术细节

输入侧:切分粒度与元数据。 常见错误是按固定字符数硬切,导致一句话被截成两半、表格跨块、标题与正文分离。切分的目标不是等长,而是语义自足:每个块应能被单独读懂,并能回答一个完整的问题。实践中可先按标题层、段落、列表项做结构化切分,再对超长块做带重叠的二次切分。同时必须保留可回溯的定位信息,例如文档 ID、版本号、章节路径、字符偏移、表格行列号。没有这些元数据,后续的引用核对就无从谈起。还要注意权限标签,若权限信息缺失,召回阶段会把不该出现的段落送进上下文。

推理与执行侧:召回排序与上下文组装。 召回失效通常有两种表现:漏召和错序。漏召多来自查询与文档的词汇鸿沟,解法是混合检索,把稀疏检索用于精确术语和编号,把向量检索用于语义近似,再用重排模型做一次精排。错序则更常见,粗排把语义相似但事实无关的段落排在前面,模型容易先入为主。上下文组装也需要克制,不是塞得越多越好,无关段落会稀释注意力,还会增加冲突概率。理想做法是给每个进入上下文的块标注来源和置信度,并限制总长度,优先保留与问题实体、时间、条件匹配的段落。

输出与评测侧:引用核对与拒答。 生成阶段的关键约束是“可核对”:答案中每个事实性断言都应指向具体块和具体位置,而不是整篇文档。核对可以是自动的,先用规则或小模型判断断言是否被引用块支持,再抽样人工复核。评测指标要分层,既看答案正确率,也看召回命中率、引用准确率和无依据断言的占比。拒答同样是能力,当召回置信度低于阈值时,应明确说“未找到依据”,而不是用常识补全。缺少拒答机制的 RAG,会在低召回时稳定地产生幻觉。

03 / IMPLEMENTATION

工程实践

第一,建立可回溯的块标识体系。每个块都要有稳定 ID 和字符偏移,写入向量库与日志,使任何一条引用都能一键跳回原文位置,这是核对与追责的前提。

第二,召回做成两段式。先用混合检索拿到较宽的候选集,再用交叉编码器或轻量重排模型精排,控制进入上下文的块数量,并对来源做权限与时效过滤。

第三,把引用校验放进回归测试。每次索引或模型变更后,跑一批带标注的问题,统计召回命中、引用准确与拒答表现,指标下降即阻断发布,而不是等线上反馈。

环节 典型失效 观测指标
切分 语义截断、表格断裂 块自足率、重叠率
召回 漏召、错序 命中率、排序质量
生成 引用错位、无据断言 引用准确率、幻觉率
05 / FAILURE MODES

风险边界

成本上,混合检索加重排会显著抬高单次查询开销,需要在候选规模和延迟之间做权衡,热点问题可用缓存,冷门问题再走全链路。幻觉上,即使召回正确,模型仍可能拼接不同段落得出错误结论,因此引用核对必须覆盖跨段落推断。越权调用上,权限过滤要在召回之前完成,放在生成之后做过滤等于把敏感内容送进了模型上下文,风险已经发生。长尾输入上,缩写、方言、口语化查询和扫描件 OCR 噪声会同时降低检索与切分质量,需要单独采样监控。延迟上,上下文越长推理越慢,用户可感知的等待通常在两秒以内,超长文档场景应做流式输出和分段引用。把这些边界写进设计文档,比事后修补提示词更有效。

完整信源

事实从哪里来