Appearance
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 监控必须分层:检索、选择、生成、端到端,再加稳定性与成本。只有这样,你才能知道系统到底是在哪一层开始退化。