RAG 自动与人工评估
RAG 自动评估与人工评估的指标、成本和场景
原题:在检索增强生成(RAG)系统中,常用的评估指标有哪些?请分别说明自动评估指标和人工评估指标的类型及其适用场景。
评估与监控 · 字节真题
回答与解析
RAG评估的三层架构
1. 检索评估(Retrieval Evaluation)
- MRR/Hit@K:衡量排序质量,适合粗排阶段快速验证
- Recall@K:关注相关性召回,K通常取5或10
- NDCG:考虑位置权重,适用于需要精细排序的场景
2. 生成评估(Generation Evaluation)
- BLEU/ROUGE:n-gram匹配,适合有标准答案的FAQ场景
- BERTScore:语义相似度,对同义改写更鲁棒
3. 端到端评估(End-to-End)
- RAGAS(主流框架):
- Faithfulness:答案是否忠实于检索上下文
- Answer Relevance:答案与问题的相关程度
- Context Relevance:检索上下文与问题的相关程度
- Context Recall:上下文包含答案所需信息的比例
人工评估维度
| 维度 | 说明 | 适用场景 |
|---|---|---|
| 相关性 | 检索片段是否回答用户问题 | 检索质量调优 |
| 忠实性 | 生成内容是否 hallucination | 医疗、法律等高风险场景 |
| 有用性 | 是否满足用户真实意图 | 对话类产品 |
| 连贯性 | 多轮场景下的上下文一致性 | 复杂多轮问答 |
选型建议
- 迭代开发期:RAGAS + 少量人工抽检,快速迭代
- 上线前:完整人工评估,建立bad case库
- 线上监控:埋点收集用户反馈(点赞/点踩),形成闭环
学习建议
建议系统学习该知识点
口语版讲法(约4分钟)
- RAG评估的本质是拆成检索、生成、端到端三层
- 自动评估:检索用Recall@K,生成用BERTScore,端到端用RAGAS
- 人工评估:重点看忠实性和有用性
- 落地建议:迭代期自动+抽检,上线前人工过一遍
- 风险:自动指标和用户满意度可能脱钩
这道题其实是在问,怎么衡量RAG系统到底好不好。我的理解是把评估拆成三个层面来思考:检索评估、生成评估和端到端评估。我先说自动评估,再说人工评估,最后聊一下落地怎么取舍。
先说检索评估。这一步主要是看检索回来的片段质量怎么样。我最常用的指标是Recall@K,K一般取5或者10,它关心的是正确答案有没有被召回。如果业务场景对排序有要求,比如搜索结果要展示前几条,我会加上MRR来评估第一条正确结果的位置。不过说实话,检索评估只是中间环节,最终还是要看生成效果。
生成评估这边,如果任务有标准答案,比如FAQ场景,可以用BLEU或ROUGE做n-gram匹配。但我更推荐BERTScore,因为它基于语义相似度,对同义改写更鲁棒。举个例子,用户问“退款流程是什么”,标准答案是“在订单详情页点击申请退款”,如果模型回答“进入订单页面选择退款”,BLEU分数会很低,但BERTScore能判断出语义一致。
端到端评估我主要用RAGAS框架,它包含四个维度:Faithfulness、Answer Relevance、Context Relevance和Context Recall。其中Faithfulness是最关键的,它看模型有没有捏造内容。比如在客服退款场景,如果检索到的政策是“7天无理由退款”,但模型说“15天包退”,这就是不忠实。
人工评估方面,我关注四个维度:相关性、忠实性、有用性和连贯性。相关性和忠实性在自动评估里也能覆盖,但有用性必须靠人工判断。比如用户问“我的订单怎么还没到”,模型回答“您的订单预计明天到达”,虽然相关且忠实,但用户真正想要的是物流跟踪链接,这就是有用性不足。人工评估的适用场景很明确:高风险领域比如医疗、法律,忠实性必须人工把关;对话类产品则要重点看有用性和连贯性。
落地选型上,我的经验是迭代开发期用RAGAS跑自动评估,配合少量人工抽检,这样效率高。但上线前一定要做完整的人工评估,建立bad case库。线上监控则要埋点收集用户反馈,比如点赞点踩,形成闭环。
这里有个坑:自动指标和用户满意度可能脱钩。比如RAGAS的Faithfulness很高,但用户觉得答案没用,因为检索回来的上下文本身就不对。所以我会把自动评估看成筛选器,人工评估才是最终标准。
另外,我最近在关注如何用Self-RAG让模型自己评估自己的生成,通过反思和纠错来提升Faithfulness。
所以我的整体看法是:没有一套指标能通吃所有场景,关键是理解每个指标背后的含义,然后根据业务需求做组合。我更倾向于把评估做成一个持续迭代的过程,而不是一次性打分。
关键一句:通过Self-RAG让模型自我评估生成内容的忠实性,减少人工介入。
面试官还可能这样问
- 问法 1 · 场景切入
假设你在做电商客服的RAG系统,用户问“退货运费谁出”,系统检索出一段规则,然后生成回答。你怎么知道这次检索和生成效果好不好?一般会看哪些指标?
- 问法 2 · 层层追问
RAG系统上线前怎么评估?……如果只看生成结果,怎么判断它是不是乱编?……那检索部分又怎么评价,比如召回的内容够不够准?
- 问法 3 · 直球架构
RAG系统评估一般分检索、生成和端到端三个层面,你分别说说常用的自动评估指标和人工评估指标,以及各自适用什么场景?