跳到正文

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. 问法 1 · 场景切入

    假设你在做电商客服的RAG系统,用户问“退货运费谁出”,系统检索出一段规则,然后生成回答。你怎么知道这次检索和生成效果好不好?一般会看哪些指标?

  2. 问法 2 · 层层追问

    RAG系统上线前怎么评估?……如果只看生成结果,怎么判断它是不是乱编?……那检索部分又怎么评价,比如召回的内容够不够准?

  3. 问法 3 · 直球架构

    RAG系统评估一般分检索、生成和端到端三个层面,你分别说说常用的自动评估指标和人工评估指标,以及各自适用什么场景?

同模块相关题目