Faithfulness 抽检
Faithfulness 抽检就是定期自动抽取一批线上真实回答,用 LLM 来判断这些回答里有没有编造内容。
为什么要”抽检”而不是”全检”
线上每天可能有几千甚至几万条对话,全部跑 Faithfulness 评估:
- 成本高(每条都要调用 LLM 打分)
- 没必要(大多数回答是正常的)
所以做法是随机抽取一小部分(比如每天 200 条),作为样本来估计整体质量。只要样本够随机,抽检结果就能代表全量。
Faithfulness 抽检具体怎么做
本质是让一个 LLM 来”当裁判”,判断另一个 LLM 的回答有没有超出检索内容的范围:
输入给裁判 LLM 的内容:
① 检索到的原始文档块(参考资料)
② RAG 系统生成的回答
裁判 LLM 的任务:
把回答拆成一句一句,逐句判断:
"这句话能在参考资料里找到依据吗?"
"退款需在7天内申请" → 资料里有 ✅
"处理时间为3个工作日" → 资料里有 ✅
"支持支付宝退款" → 资料里没有 ❌ 疑似幻觉
最终输出:
Faithfulness = 2/3 = 0.67
+ 标记出哪句话是可疑的幻觉内容
抽检的目的是监控,不是评估
上线前的 RAGAS 评估是在标注好的数据集上跑,有 ground truth 对照。
线上抽检没有 ground truth,只有检索块和回答,是一种无监督的质量监控:
上线前评估:已知正确答案是什么 → 判断系统对不对
线上抽检: 不知道正确答案 → 只判断"回答有没有超出检索内容"
所以抽检的结论是”这条回答可能有幻觉,需要人工复核”,而不是”这条回答一定是错的”。
实际工程中怎么用
每天定时任务:
随机抽取当天 200 条对话
↓
批量调用 LLM 打 Faithfulness 分
↓
Faithfulness < 0.7 的回答 → 推送给人工审核队列
↓
统计今日平均 Faithfulness,画趋势图
↓
如果连续 3 天平均值下降超过 5% → 触发告警,排查原因
这样每天只需要人工审核少量可疑回答,而不是看所有对话,大幅降低了质量把控的人力成本。