A
Member
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评估时,用什么指标和工具?人工标注还是自动评测为主?
## 三个核心指标
**1. 召回命中率(Recall@k)**
用户问题进来,先看检索回来的文档片段里有没有正确答案来源。
- 做法:准备一批标准问答对,标注正确答案出自哪篇文档
- 指标:top-k召回里是否包含正确来源
- 召回差,后面生成再强也没用
**2. 答案忠实度(Faithfulness)**
生成的答案是否严格基于检索到的上下文,不编造上下文里没有的事实。
- 这是RAG最容易翻车的地方:模型顺着问题脑补
- 用NLI(自然语言推理)判断答案每句话能否被上下文支撑
**3. 答案相关性**
答案是否切题,答非所问也算不合格。
## 评估流程
1. 建测试集:覆盖高频问题、边缘问题、陷阱问题
2. 离线跑批:记录召回片段、生成答案
3. 人工+模型双重打分:忠实度、相关性、正确性
4. bad case回流,优化切片策略和检索词
## 常见bad case
**召回不到:** 文档切片太长/太短、关键词不匹配,换混合检索(向量+BM25)。
**忠实度低:** 模型脱离上下文脑补,在prompt里强制"只依据给定资料回答,资料没有就说明不知道"。
**答非所问:** 检索到了但模型没用到,检查prompt是否要求引用来源。
## 上线建议
- 先小流量灰度,收集真实问题再补测试集
- 忠实度权重最高,宁可说"不知道"也不要编
- 定期用线上真实query回归测试
大家做RAG评估时,用什么指标和工具?人工标注还是自动评测为主?