1.6 评估方法
BLEU、ROUGE、METEOR、chrF、BERTScore、COMET、Perplexity——为什么字面指标衡量不到意义,以及通往人工评估与 LLM-as-Judge 的必然路径
评估比你想象的更难
很多研究生的直觉是:"评估不就是算个准确率吗?" 对分类任务确实如此——上一节给的 Accuracy / F1 公式就够了。但对生成任务,评估的难度本身就是一个未解的研究问题:
给一段原文,翻译成英文。"The cat sat on the mat." 和 "A cat was on the mat." 哪个更好?两句几乎同义,但字面重合度不到一半。
经典自动评估指标的核心限制——它们本质上衡量的是字面重合度(n-gram overlap),而不是语义一致性。理解这些指标的"衡量什么"和"衡量不到什么",是一切 LLM 评估工作的第一堂课。
生成指标:从字面到语义的三代演化
第一代:基于 n-gram 的字面指标
BLEU(Bilingual Evaluation Understudy)
机器翻译的奠基指标(Papineni et al., 2002)。核心:候选译文与参考译文的 n-gram 精确率。
其中:
- :n-gram 精确率(候选中的 n-gram 有多少在参考中出现过)
- :通常 N=4,均匀加权
- (Brevity Penalty):长度惩罚,防止模型通过输出短句作弊
致命缺陷:
- 只看精确率不看召回率(靠 BP 部分弥补)
- 对同义词无能为力:"happy" vs "joyful" 算完全不匹配
- 在单句级别和人工评估相关性低,适合语料级评估
ROUGE(Recall-Oriented Understudy for Gisting Evaluation)
摘要的标准指标。BLEU 看精确率,ROUGE 反过来看召回率。
- ROUGE-1:unigram 召回率
- ROUGE-2:bigram 召回率
- ROUGE-L:最长公共子序列(LCS)长度的 F1
ROUGE 同样只看字面。对抽取式摘要比较合理,对生成式摘要经常低估好的改写。
METEOR
引入同义词匹配(基于 WordNet)和词干还原(stemming),在 unigram 匹配基础上考虑同义。
chrF(character-F-score)
在字符 n-gram而非词 n-gram 上算 F-score。对形态丰富语言(德语、俄语、中文)更鲁棒,现代 MT 评估常和 BLEU 一起报。
第二代:基于 embedding 的语义指标
BERTScore
用 BERT 对候选和参考的每个 token 算上下文化向量,然后做token 级的余弦相似度匹配:
能捕捉同义词、改写、不同语序。是 2020 年以来 NLG 论文的标配副指标。
第三代:学习的评估器
COMET、BLEURT
把评估本身建模为回归任务:在大量人工标注的"候选、参考、人工评分"数据上训练一个神经网络,输入候选+参考(+ 源文本),输出一个分数。
- COMET 在 WMT 机器翻译评估任务上与人工评分的相关性显著超过 BLEU、ROUGE、BERTScore
- 代价:需要大规模人工标注数据才能训练
LLM-as-Judge
直接让 GPT-4 / Claude 当评委打分。第 8 讲专门讲。
经典指标对比表
| 指标 | 关注点 | 粒度 | 是否捕捉语义 | 典型任务 |
|---|---|---|---|---|
| BLEU | n-gram 精确率 | 词 | 否 | 机器翻译 |
| ROUGE-1/2/L | n-gram 召回率 / LCS | 词 | 否 | 摘要 |
| METEOR | 含同义词的 F1 | 词 | 弱 | 翻译、摘要 |
| chrF | 字符 n-gram F1 | 字符 | 否 | 多语言 MT |
| BERTScore | 上下文 embedding 匹配 | token | 强 | 生成任务通用副指标 |
| COMET | 监督学习的打分器 | 句 | 最强 | WMT 翻译评估标准 |
语言模型评估:Perplexity
对语言模型本身(不是下游任务)的内在评估用 Perplexity(困惑度,PPL):
直观: 意味着模型在每一步平均要在 个 token 中"犹豫"。越小越好。
Perplexity 的能与不能:
- 能:衡量"语言模型在该语料上有多流畅",比较同架构不同参数的模型
- 不能:比较不同 tokenizer 的模型(tokenizer 不同 PPL 不可比)、衡量下游任务能力
- 陷阱:低 PPL 不等于回答正确,甚至不等于有用——早期 GPT-3 在 Common Crawl 上 PPL 很低,但在指令跟随、事实问答上仍然很差
为什么字面指标"不衡量意义"
考虑一个场景:一个优秀的翻译模型输出:"这只猫坐在垫子上";参考译文是:"那只猫坐在毯子上"。
- 从语义上看:几乎正确,只是指代和名词的细微差异
- 从 BLEU 看:unigram 匹配 3/6,bigram 匹配 1/5,分数会相当难看
- 从 BERTScore 看:会给一个相对高的分数,因为 embedding 捕捉到了近义
三个指标会给三个差距不小的分数,但谁最接近人类判断?
答案是:没有一个能完全替代人类。BLEU / ROUGE 会惩罚正确的改写;BERTScore / COMET 会掩盖事实性错误(模型输出语义相近但事实错误,embedding 仍然高)。任何一个严肃的评估报告都应该同时报告多个指标 + 关键样本的人工评估。
人工评估与 LLM-as-Judge 的铺垫
人工评估的黄金标准
真实场景的人工评估通常用成对比较(pairwise comparison):
- 给标注员展示两个模型的输出 A 和 B(不告诉哪个是哪个)
- 标注员选择哪个更好,或标注为"同样好"
- 多个标注员交叉核对,用 Cohen's Kappa 或 Fleiss' Kappa 衡量一致性
成对比较比"给每个输出打 1-5 分"更稳定——人类对"谁更好"比对"绝对分数"的判断准得多。
LLM-as-Judge:把 GPT-4 当标注员
2023 年以来的新范式:直接让 GPT-4 / Claude 来扮演标注员,做成对比较或打分。
优势:
- 成本远低于人工(约 1/100 的价格)
- 可扩展性远高(一夜评估 10 万条)
- 在很多维度上与人工评分相关性 > 0.8
挑战:
- 位置偏差:LLM 倾向于偏好先给的那个
- 长度偏差:LLM 倾向于偏好更长的回复
- 风格偏差:LLM 倾向于偏好与自己风格一致的回复
LLM-as-Judge 是第 8 讲的核心主题。这里你需要理解的是:BLEU / ROUGE 再精巧,也无法替代"两个更懂语言的智能体在对比"这件事。从 2002 年 BLEU 诞生到 2023 年 LLM-as-Judge 崛起,NLP 评估走过了整整 20 年。
评估设计的实用建议
多指标 + 不同家族
永远不要只报一个指标。典型组合:BLEU + chrF + COMET(翻译),ROUGE + BERTScore(摘要)。多指标能揭露单指标的偏好。
报告置信区间
自动指标看似精确,但小数据上抖动很大。bootstrap 1000 次计算 95% 置信区间——差距 0.3 BLEU 在 200 样本测试集上往往统计上不显著。
保留人工评估小样本
哪怕只有 50 条由人工标注的成对比较,也能帮你识别自动指标的系统性偏差。
定性分析
看 20-30 个 bad case,归类模型失误的类型(重复、幻觉、指代错误、长尾词漏翻)。这比任何一个数字都更能指导改进方向。
本节小结
| 指标家族 | 代表 | 核心思想 | 局限 |
|---|---|---|---|
| 第一代 n-gram | BLEU、ROUGE、chrF | 字面重合度 | 不懂同义、改写 |
| 第二代 embedding | BERTScore | 上下文向量匹配 | 可能掩盖事实错误 |
| 第三代 learned | COMET、BLEURT | 从人工标注学评估 | 需大规模标注数据 |
| 语言模型内在 | Perplexity | 平均预测难度 | 不等于下游任务能力 |
| 成对比较 | 人工 A/B、LLM-as-Judge | 人类判断或 LLM 判断 | 人力成本、LLM 偏差 |
核心原则:字面指标"精确但失真",语义指标"更准但昂贵",人工/LLM-as-Judge"最准但成本高"——根据任务和预算组合使用,永远不要信一个数字。