首页/实战案例/生产环境的监控与回归
实战案例 已验证可复现

生产环境的监控与回归

RAG 系统上线后会安静地退化,而且没有报错。这节是我们摸索出来的监控方案。

可复现前提: 依赖 Prometheus + Grafana,面板 JSON 在 ops/dashboards。没有这套栈的话,指标定义部分仍然通用。

一、退化从哪来

三个真实发生过的:

  1. 文档更新后索引没跟上。 有个文档同步任务挂了 9 天,没人发现,因为服务照常返回结果——只是返回的是旧内容。
  2. 用户问法漂移。 新功能上线后,用户开始问一批我们标注集里完全没有的问题。
  3. 上游模型变更。 嵌入服务升级了小版本,向量分布轻微变化,召回慢慢变差。

二、四个必须监控的指标

告警规则text
1. 索引新鲜度:最新文档写入时间 > 2 小时 → 告警
2. 空召回率:检索返回 0 条的比例 > 3% → 告警
3. 低分召回率:top-1 相似度 < 阈值的比例 > 15% → 观察
4. 人工反馈踩率:连续 1 小时 > 8% → 告警

第 3 条最有价值:它是唯一能在用户投诉之前发现质量退化的指标。相似度分数整体下移,意味着用户开始问库里没有的东西,或者索引出问题了。

三、影子评测:每天自动跑一遍标注集

ops/nightly-eval.shbash
#!/usr/bin/env bash
set -euo pipefail
python bench/eval.py --set golden-150 --endpoint "$PROD_ENDPOINT" --out "results/$(date +%F).json"
python bench/compare.py --base "results/$(date -v-7d +%F).json" \
                       --head "results/$(date +%F).json" --alert-on -0.03

每天凌晨对生产环境跑一次标注集,和一周前对比。这个任务发现过两次退化,都在用户投诉之前。

四、把用户反馈接回标注集

答案下面放一个"有帮助 / 没帮助"。每周把"没帮助"的 query 捞出来人工看一遍,补进标注集。半年下来标注集从 150 条长到了 410 条,而且全是真实痛点。

这是整套方案里长期收益最高的一件事。

5.0/ 5
2 位同事评分
这篇实践你能照着复现吗?给它打个分:
每人一次,可随时修改

评论与复现反馈 1

登录 后可以评论、评分,并把复现结果反馈给作者。
已复现22 小时前

「低分召回率」这个指标我们加上了,第二周就抓到一次索引同步延迟。之前完全是靠用户投诉才知道。

相关实践

全部 →
已验证实战案例

检索质量的离线评测

把「感觉变好了」变成 recall@k 和 MRR:标注集怎么建、指标怎么选、回归怎么跑。

·
5.0(3)1 讨论2 分钟