03. 自动评测、人工评测、模型评测各有什么优缺点?如何组合使用?

整理自动评测、人工评测、模型评测的优缺点与组合使用方式。

简单回答

三种评测方式解决不同问题,没有哪种能单独胜任所有场景。自动评测(规则/代码执行)速度快、成本低、可重复,适合有明确答案的任务;人工评测质量最高、最能反映真实满意度,但成本高、速度慢、标注者存在主观差异;模型评测(LLM-as-Judge)覆盖了自动评测做不到的开放性任务,成本适中,但有系统性偏差。实践中通常是三者分层使用:自动评测快速迭代,模型评测中期过滤,人工评测作为最终校验和偏差基准。

详细解答

自动评测

自动评测是指用确定性规则或程序来判断模型输出的正确性,不需要人工参与。

最可靠的形式是可执行验证:代码生成任务执行测试用例、数学题对比最终答案、SQL 查询执行结果比较。这类评测没有歧义,是黄金标准。

基于字符串匹配或规则的自动评测(精确匹配、F1、BLEU、ROUGE 等)适用于结构相对固定的任务。BLEU 和 ROUGE 原本是机器翻译和摘要的评测指标,用 n-gram 重叠率来近似翻译质量。但这类指标的问题是"正确的回答不唯一"——"The dog is big" 和 "A large dog" 语义一样,但 BLEU 分很低。所以纯 BLEU/ROUGE 分数在大模型时代越来越被质疑,只能作为参考而不是绝对依据。

Exact Match(精确匹配) 在选择题、实体识别等任务上很可靠,但稍微改变措辞就可能从满分变零分,对模型能力的区分不够细腻。

优点:速度极快(毫秒级)、成本几乎为零、结果完全可重复、不受评测者主观影响、容易自动化集成到 CI/CD 流水线。

局限:只能评测有客观答案的任务,对开放性任务无能为力;n-gram 类指标和人类感知的相关性越来越弱;无法捕捉"回答是否有帮助"、"语气是否合适"这类主观维度。

人工评测

人工评测是让真人(内部标注者或目标用户)来判断模型输出的质量。

内部专家评测适合需要专业判断的任务(医疗诊断建议的专业性、代码架构设计的合理性、法律建议的准确性),普通标注者做不了,需要领域专家。

众包标注适合大量简单或中等难度的任务,借助平台(Amazon MTurk、Scale AI)快速获取大量标注,成本比专家低,但标注质量参差不齐,需要质控。

真实用户反馈是价值最高的人工评测形式——真实用户用真实场景提问,对回答点赞/踩或做评分,反映最真实的满意度。但这类信号嘈杂(用户不一定理解问题的正确答案)、覆盖不均衡(简单问题得到的反馈多,边缘 case 反馈少)。

优点:质量最高,最能反映真实用户满意度;能捕捉细粒度的质量维度(有帮助程度、语气、安全性等);是校准其他评测方式偏差的金标准。

局限:成本高(一条人工评测可能几分钱到几元)、速度慢(几天到几周才能出结果)、标注者之间存在主观差异(同一个回答不同人打分可能不同)、难以扩展到大规模迭代评测。

模型评测(LLM-as-Judge)

LLM-as-Judge 的定位是在自动评测和人工评测之间找到一个平衡点,详细内容在上一题已经讲过。

优点:能处理开放性任务(自动评测做不到);成本比人工低 12 个数量级;速度快(秒级),可以支持大规模迭代;在很多开放性任务上,和人类判断的一致性相当不错(Cohen's Kappa 通常在 0.70.8)。

局限:有系统性偏差(位置、长度、自我偏好);不适合专业领域判断(医学、法律等 Judge 模型可能没能力判断);依赖外部 API 有成本和合规问题;结果可重复性不如规则评测(同样的 prompt 多次运行可能有细微差异)。

三者如何组合使用

在实际项目中,三种评测方式应该分层使用,各司其职。

快速迭代层(每次代码提交/模型更新):跑自动评测和 LLM-as-Judge,几分钟内出结果,用于快速判断新版本有没有明显退步(Regression Testing)。这一层评测的目标不是精确衡量绝对能力,而是快速发现明显问题。

中期评估层(每周/每次重要版本):更大规模的 LLM-as-Judge 评测,覆盖更多任务类型和边缘 case,结合 benchmark 测试,得到更全面的能力快照。

人工评测校准层(每月或重要节点):抽样人工评测,覆盖三类样本:前两层评测中模型表现很好的、表现很差的、以及表现不稳定(两次跑结果不同)的。人工评测结果用来校准 LLM-as-Judge 的偏差(衡量 Judge 和人类判断的一致性),也是最终上线决策的依据。

线上评测(上线后持续):收集真实用户的显式和隐式反馈,构成数据飞轮的输入,也是最终效果的真实验证。

面试时可以这样答

三种评测方式定位不同,实际项目里应该分层使用。

自动评测(规则/执行验证)是速度最快、成本最低、结果最可靠的方式,但只能用在有客观答案的任务上——代码执行测试、数学答案对比、精确匹配这些。开放性任务它处理不了。

人工评测质量最高,是校准其他方法的金标准,但成本高、速度慢,支撑不了高频迭代。主要用于重要节点的最终判断,以及校准 LLM Judge 有没有偏差。

LLM-as-Judge 填补了中间地带,处理自动评测做不了的开放性任务,成本比人工低很多,支持大规模迭代。缺点是有系统性偏差,结果不能完全信任。

实际做法是三层叠加:日常快速迭代用自动评测 + LLM Judge,几分钟出结果,主要用于发现明显回退;重要版本做完整 benchmark 评测;定期抽样做人工评测,和 LLM Judge 的结论比对,验证 Judge 有没有跑偏。

常见追问

  1. 怎么量化 LLM-as-Judge 和人类判断的一致性?达到什么阈值可以信任?
  2. 对于医疗、法律这类专业领域,评测体系有什么特殊要求?
  3. 线上 A/B Test 和离线评测的结论不一致时,怎么判断哪个更可信?