RAG(检索增强生成)做完demo容易,真正上线前必须过评估这一关。很多团队只看"能不能答",不量化"答得对不对、有没有瞎编",结果上线后幻觉频发。分享我们的评估框架。

## 三个核心指标

**1. 召回命中率(Recall@k)**
用户问题进来,先看检索回来的文档片段里有没有正确答案来源。
- 做法:准备一批标准问答对,标注正确答案出自哪篇文档
- 指标:top-k召回里是否包含正确来源
- 召回差,后面生成再强也没用

**2. 答案忠实度(Faithfulness)**
生成的答案是否严格基于检索到的上下文,不编造上下文里没有的事实。
- 这是RAG最容易翻车的地方:模型顺着问题脑补
- 用NLI(自然语言推理)判断答案每句话能否被上下文支撑

**3. 答案相关性**
答案是否切题,答非所问也算不合格。

## 评估流程

1. 建测试集:覆盖高频问题、边缘问题、陷阱问题
2. 离线跑批:记录召回片段、生成答案
3. 人工+模型双重打分:忠实度、相关性、正确性
4. bad case回流,优化切片策略和检索词

## 常见bad case

**召回不到:** 文档切片太长/太短、关键词不匹配,换混合检索(向量+BM25)。

**忠实度低:** 模型脱离上下文脑补,在prompt里强制"只依据给定资料回答,资料没有就说明不知道"。

**答非所问:** 检索到了但模型没用到,检查prompt是否要求引用来源。

## 上线建议

- 先小流量灰度,收集真实问题再补测试集
- 忠实度权重最高,宁可说"不知道"也不要编
- 定期用线上真实query回归测试

大家做RAG评估时,用什么指标和工具?人工标注还是自动评测为主?