Skip to content

11.3.2 线上 RAG 系统应该监控哪些指标? ​

先给结论:线上 RAG 监控不能只看“最终满意度”。更稳的做法是按链路分层:检索层、生成层、端到端层,再加上稳定性和成本指标。

如果你只监控一个总分或总满意度,很容易出现:

  • 某一层在退化,但整体分数没变

所以监控必须分层、分桶。

一、检索层指标 ​

检索层指标回答的问题是:

  • 证据有没有回来
  • 召回质量有没有退化

常见指标包括:

  • Recall@K(关键证据命中率)
  • Hit rate(候选集中是否命中目标文档)
  • 候选集噪声比例
  • 检索延迟与 P95/P99

这些指标能帮助你判断:

  • 是不是检索层开始掉线

二、重排与选择层指标 ​

这一层回答的是:

  • 候选有没有被正确排序
  • 最终保留是否合理

常见指标包括:

  • 关键证据进入最终上下文的比例
  • 重排后排名变化分布
  • 最终上下文的重复率

这些指标能帮助你判断:

  • 是不是排序或选择逻辑出了问题

三、生成层指标 ​

生成层指标回答的是:

  • 模型有没有忠实使用证据
  • 是否存在幻觉或外推

常见指标包括:

  • groundedness / faithfulness
  • 资料不足时拒答率
  • 生成耗时与 token 消耗

这些指标能帮助你判断:

  • 是不是生成策略或 prompt 出了问题

四、端到端指标 ​

端到端指标回答的是:

  • 用户体验是否变好
  • 任务是否完成

常见指标包括:

  • 用户满意度
  • 任务完成率
  • 人工复核通过率

端到端指标很重要,但不要单独依赖它们做归因。

五、稳定性与成本指标 ​

生产系统不能只看质量,还要看:

  • 延迟稳定性
  • 成本可控性

常见指标包括:

  • P95 / P99 延迟
  • 单次请求成本
  • 重排调用率
  • 生成调用率

这些指标能帮助你判断:

  • 系统是否还能持续运行

一份更实用的“监控分层清单” ​

你可以先用下面的分层去搭监控:

  • 检索层:命中、召回、噪声、延迟
  • 选择层:重排效果、最终证据覆盖
  • 生成层:忠实性、拒答率、生成成本
  • 端到端:满意度、任务完成率
  • 稳定性:P95/P99、调用失败率

一个最小指标结构示意 ​

python
metrics = {
    "retrieval": ["recall_at_k", "hit_rate", "retrieval_latency_p95"],
    "selection": ["final_evidence_hit_rate", "dedup_ratio"],
    "generation": ["groundedness", "abstain_rate", "gen_tokens"],
    "end_to_end": ["task_success_rate", "user_satisfaction"],
    "stability": ["p95_latency", "error_rate", "cost_per_req"]
}

一句话总结 ​

线上 RAG 监控必须分层:检索、选择、生成、端到端,再加稳定性与成本。只有这样,你才能知道系统到底是在哪一层开始退化。