Skip to content

RAG 偶发检索为空如何排查?

3 分钟速学卡

30 秒口述: 我会先用 request_id 还原原始与改写 Query,再依次检查租户/ACL、元数据过滤、索引与 Embedding 版本、各通道候选数、分数分布与阈值、超时和降级,定位结果在哪一步从非零变成零。偶发问题优先怀疑条件分支、版本混用、撤权传播、索引新鲜度或超时,而不是直接调大 Top-k。先用关键词单路、旧索引或澄清提示止损,修复后用固定问题集和失败样本重放,并新增分阶段 Trace 与空召回分桶告警。

  • 本质: 排查空召回的关键是沿 Trace 找到候选第一次从非零变成零的闸门。
  • 核心机制: 先还原 Query、身份、过滤和版本;再看通道候选、阈值、超时和降级。
  • 关键判断: 权限过滤不能为了有结果而放宽;修复需用失败样本和固定集共同回归。
  • 项目落地: 故障演练:灰度节点使用新 Embedding 查询旧索引,只有命中该节点的请求空召回。先将流量切回同版本节点,随后增加索引与查询版本握手、灰度回放和版本混用告警。
  • 边界与坑: “先把 Top-k 调大。” 候选为零时,扩大返回数没有意义;“降低阈值就行。” 可能掩盖版本、ACL 或索引问题,并引入低质证据。

目录

面试官为什么问

这道题考察生产排障顺序、证据意识、降级设计和防复发,而不是参数调优清单。

小白先看懂

仓库管理员偶尔说“没货”,可能是顾客报错商品名、门店权限不对、筛选了错误颜色、库存系统没同步、最低库存门槛过高,或查询超时。必须查看每一道闸门,而不是把仓库再扩大。

仓库闸门RAG 检查项
顾客报的名称原始/改写 Query
门店通行证租户与 ACL
颜色、日期筛选元数据过滤
库存批次索引/Embedding 版本
最低库存线相似度阈值
查询未返回超时与降级

专业机制是寻找“候选数首次归零”的阶段。类比边界是向量检索还有近似索引、分数漂移和多通道融合等复杂性。

主题教学图片

图:教学图片|RAG 偶发检索为空如何排查?

替代文本: 围绕“RAG 偶发检索为空如何排查?”组织的中文教学图,通过分区、箭头和标签解释核心机制。

RAG 偶发检索为空如何排查?教学图片

读图结论: 用图中关系理解“RAG 偶发检索为空如何排查?”的机制与边界。

这张图片用于建立主题机制的直觉。精确公式、参数、失败分支和事实边界仍以正文与 Mermaid 为准。

图片生成记录: model=gpt-image-2generated=2026-07-15prompt_version=v1reviewed=2026-07-16review_basis=user-confirmed查看生成 Prompt

图:技术调用流程|空召回逐层定位决策树

替代文本: 从 Query 开始依次检查权限、过滤、版本、通道候选、阈值与超时,并在具体失败点执行对应止损和回归。

图表加载中…

读图结论: 空召回要寻找候选首次归零的闸门,每个闸门都应留下可解释 Trace。

安全过滤不可因空召回而随意放宽;只有业务非安全过滤可在明确策略下回退。一路超时应记录并走单路降级。

核心原理

最小 Trace 字段包括 request_id、原始/改写 Query、tenant_id、ACL 决策、filter、index_version、embedding_version、每路候选数、分数摘要、阈值前后数量、超时与降级原因。

“偶发”需要按时间、租户、Query 类型、版本和节点分桶,判断是数据条件还是服务不稳定。零结果与接口错误要分开统计。

项目和生产视角

故障演练: 灰度节点使用新 Embedding 查询旧索引,只有命中该节点的请求空召回。先将流量切回同版本节点,随后增加索引与查询版本握手、灰度回放和版本混用告警;这是演练场景。

修复验收要重放原失败样本与固定问题集,同时比较空召回率、Recall@K、P95 延迟和降级率,防止简单降阈值造成噪声激增。

常见错误回答

  • “先把 Top-k 调大。” 候选为零时,扩大返回数没有意义。
  • “降低阈值就行。” 可能掩盖版本、ACL 或索引问题,并引入低质证据。
  • “权限过滤失败就临时关闭。” 会造成越权,安全过滤不得作为普通降级项。

递进追问

  1. 如何区分空召回与检索接口失败?
  2. 哪些过滤可以降级,哪些绝不能放宽?
  3. 如何发现 Embedding 与索引版本混用?
  4. 混合检索一路超时怎样保留服务?
  5. 修复后为什么不能只看空召回率下降?

关联阅读

总结

一句话记忆: 排查空召回的关键是沿 Trace 找到候选第一次从非零变成零的闸门。

  • 先还原 Query、身份、过滤和版本;
  • 再看通道候选、阈值、超时和降级;
  • 权限过滤不能为了有结果而放宽;
  • 修复需用失败样本和固定集共同回归。