AI Know · 技术研究笔记
RAG 失效多发生在检索链路,而非生成模型本身
切分粒度错位,会让语义在入口处就被破坏;召回排序决定模型看到的证据质量与顺序;引用不可核对,等于把幻觉风险留给用户
三分钟读懂
先看结论,再决定是否深读
- RAG 失效多发生在检索链路,而非生成模型本身
- 切分粒度错位,会让语义在入口处就被破坏
- 召回排序决定模型看到的证据质量与顺序
- 引用不可核对,等于把幻觉风险留给用户
- 排障顺序应是切分、召回、引用,最后才看模型
核心原理
RAG 的工程直觉常被简化为“把文档切片、向量化、召回、拼接进提示词”。这个流程看似完整,但每一段都存在隐性失效模式。切分粒度太粗,一个片段混入多个主题,向量表示被平均化,召回时既可能命中也可能误伤;切分太细,指代和上下文被切断,模型拿到的是失去主语的碎片。召回阶段,相似度分数并不等于证据价值,高相似但低信息量的段落会挤占上下文预算。引用阶段,如果系统只输出答案而不标注来源位置,用户和评测都无法判断答案是否有据可依。
这三类问题有一个共同特征:它们在模型介入之前或之外就已经发生,模型只是在错误的证据上做“合理发挥”。因此,RAG 的质量治理不能只做端到端评测,而要按链路分层定位。
技术细节
输入侧:切分决定证据的最小单元。 切分不是按固定字符数截断,而是要让每个片段具备可独立理解的语义完整性。常见失效包括:按固定长度硬切导致句子和表格被拦腰截断;标题与正文分离,片段失去主题约束;跨页、跨段落的指代未被补全。更隐蔽的问题是粒度与问题类型不匹配:事实型问题需要短而准的片段,流程型问题需要保留步骤顺序,对比型问题需要同时召回多个对象的描述。单一粒度无法同时满足,工程上需要按文档结构做层级切分,并保留父块与子块的关联,召回子块、回填父块上下文。
推理/执行侧:召回排序决定模型看到什么。 向量召回擅长语义相近,但对精确术语、数字、否定表述不敏感。混合检索把稀疏检索与稠密检索结合,能缓解一部分漏召回,但排序融合权重需要按业务调。更关键的是重排环节:初次召回可以放宽到几十条,再用交叉编码器或轻量重排模型按“是否直接回答问题”排序。若跳过重排,高相似但泛泛而谈的段落会占据上下文前排,模型容易被带偏。另一个执行侧问题是上下文预算分配:召回条数不是越多越好,噪声段落会稀释关键证据,甚至引入相互矛盾的信息。
输出/评测侧:引用必须可核对。 可核对的引用至少包含三要素:答案中的断言、对应的原文片段、可定位的来源标识。只给文档名不给段落,用户无法验证;只给相似度分数不给原文,评测无法归因。评测集应区分“召回是否命中”“答案是否被证据支持”“引用是否指向正确片段”三个指标,而不是只看最终答案的流畅度或人工好感度。否则,一个引用全错的流畅答案会被误判为成功。
工程实践
- 建立分层的切分策略并保留父子关系。 按标题、段落、表格结构切分,子块用于召回,父块用于回填上下文;对指代密集的文档,在片段头部补充主题与实体信息,避免碎片失去语义锚点。
- 召回阶段采用“宽召回 + 重排 + 预算控制”。 初次召回放宽条数,重排按问题相关性排序,再按上下文预算截断;对数字、专有名词、否定句增加稀疏检索通道,减少语义相似但事实不符的误召回。
- 把引用核对纳入上线门禁。 要求每条关键断言绑定原文片段与定位标识,评测时分别统计召回命中率、证据支持率和引用准确率;引用无法定位的答案一律视为不可信输出,进入人工复核队列。
风险边界
成本。 宽召回、重排模型和父块回填都会增加 token 与算力开销,需要在召回条数、重排深度和上下文长度之间做预算平衡,避免为了召回率无限堆叠。
幻觉。 引用可核对能降低但不能消除幻觉。当召回证据本身矛盾或缺失时,模型仍可能补全不存在的信息,系统应允许“证据不足”作为合法输出。
越权调用。 检索层若未做权限过滤,召回可能把用户无权访问的片段带入上下文,形成隐式越权;权限校验必须发生在召回之前,而不是生成之后。
长尾输入与延迟。 表格、扫描件、多语言混排和超长文档会显著拉高切分与重排耗时;同步链路对延迟敏感时,应把重排和引用核对做成可降级的异步环节,并明确降级后的答案置信度。