第11讲 · 用评测驱动 NLP 与 LLM 的进步
对应讲次:第11讲(Stanford CS224N 自然语言处理)
制作模型:deepseek-flash(vb compose,据 run.log)
CS224N 第 11 讲:Benchmarking & Evaluation(评测与基准)
本讲信息 - 视频:Stanford CS224N: NLP with Deep Learning | Spring 2024 | Lecture 11 - Benchmarking by Yann Dubois(时长约 84 分钟) - 讲者:Yann Dubois(斯坦福大学博士生,导师为 Tatsunori Hashimoto 与 Percy Liang) - 课程:CS224N / Ling284: Natural Language Processing with Deep Learning,斯坦福大学 - 官方课件:本讲配套幻灯片为 Lecture 11: Evaluation(
cs224n-2026-lecture11-evaluation.pdf),署名讲者为 Yejin Choi - 版权说明:课程、讲义与幻灯片版权归 Stanford University 及 CS224N/Ling284 课程团队与讲者所有。本次提供的课件文本未标注具体许可协议,详见文末「已知疑点」。 - 本书性质:本书是对该堂课堂口语记录的中文书面重构,含少量明确标注的编者补充,不是官方教材。
导览
① 这一讲,讲者真正想回答的问题(按他自己的顺序)
- 我们为什么需要评测? 为什么"测量性能"这件事,在训练、开发调参、模型选型、上线部署、以及发表论文这五个阶段,需要的是五种不同的度量?
- 封闭式任务(分类、抽取式问答)该怎么评?它本质上"就是标准机器学习",可为什么仍然经常被评错?
- 开放式生成任务(摘要、翻译、对话)根本没有可枚举的正确答案,该怎么办?BLEU、ROUGE 这类词面重合指标,到底错在哪里?
- 当"参考"本身就不可靠时,还应该继续依赖它吗?我们能不能干脆不要参考?
- 人类评测被公认为黄金标准,为什么做起来这么难?
- 既然难,能不能让 LLM 来当评委?它靠谱吗?
- 今天人们实际上是怎么评大模型的?这些主流做法各自漏掉了什么?
- 最后:评测方法有哪些系统性缺陷,以及为什么我们明知有缺陷却改不动?
② 读者可能带着的疑问(编者预判,与上面那组不要混淆)
- BLEU、ROUGE、BERTScore 到底怎么算?公式长什么样?
- Chatbot Arena 的"ELO 评分"是怎么从一堆两两比较里算出来的?
- 为什么会出现"模型与人类的一致性,比人类彼此之间的一致性还高"这种反直觉结论?
- "数据污染"具体怎么检测?我又看不到别人的训练数据。
- 如果我自己要做研究或做产品,到底该怎么选指标?
③ 难点在哪
- 开放式生成没有"唯一正确答案",正确性本身是一个分布,甚至是一个连续谱系("好"与"更好"之间没有明确的线)。
- 所有自动指标都只是代理(proxy)。代理与真实目标之间的相关性能有多强,取决于参考的质量、prompt 的格式、解码的方式、以及训练数据里有没有偷偷混进测试集。
- 因此最容易卡住的地方不是"指标怎么算",而是"这个分数到底在测什么"。讲者反复强调的一句话是:评测的问题往往不出在指标,而是出在被当作标准答案的那份人类标注上。
④ 本讲路线
讲者先建立一个框架——不同阶段需要不同性质的度量——然后沿着"封闭式任务 → 开放式任务 → 人类评测 → Chatbot Arena → LLM 当评委 → 当前 LLM 的三条主流评测路径"这条线走下来,最后集中讲三大挑战:一致性、数据污染、偏差与单一文化,并以一句非常实用的话收尾:别相信数字,去看你的输出。
1. 为什么要评测:一条开发流水线上的五种需求
(参考时间: 00:00:05)
讲者开场先自我介绍:他是 Yann Dubois,三年级博士生,导师是 Tatsunori Hashimoto 和 Percy Liang。他坦言,评测(benchmarking & evaluation)在学术界"关注的人还不够多",但只要你真想把一个系统放进生产环境,评测就是关键。
📷 课程标题页
回到原视频 (00:00:05)
1.1 开发一个机器学习模型的四个阶段
(参考时间: 00:01:02)
讲者给出的心智模型是:开发一个机器学习模型通常经过四步,每一步都需要测性能,但需要的方式完全不同。
📷 讲座大纲:从基准的爆炸式增长,到评测指标的艺术
回到原视频 (00:00:36)
graph LR
A["① 训练<br/>Training"] --> B["② 开发<br/>Development<br/>(超参调优 / 早停)"]
B --> C["③ 模型选型<br/>Model Selection"]
C --> D["④ 部署<br/>Deployment"]
D -.->|"平行世界"| E["⑤ 发表<br/>Publishing<br/>(跑标准基准)"]
- 训练阶段:你需要一个 loss 来反向传播。所以度量必须是极快、极便宜、可微的;同时它必须难以被走捷径——否则模型会优化出一个你根本不想要的 loss 值。
- 开发阶段:超参调优、早停、调整学习率。你仍然需要"快、便宜",并且因为你在对某个目标做优化,防止走捷径依然重要。
- 模型选型:在你真正关心的任务上,哪个模型最好?可能是你自己训的,也可能是别人训的。这一步可以稍微慢一点、贵一点,但你会做很多很多次。
- 部署阶段:你最需要的是可信。一旦上线,"那段时间发生过什么"是无法回退的。此外,度量还要任务特异(我不关心别的任务)而且绝对——比如"准确率不到 95% 我就不上线"。
(参考时间: 00:02:19)
编者说明:讲者在这里区分了"相对度量"和"绝对度量"。前三个阶段你只关心 A 比 B 好多少,绝对数值没有意义;只有上线时你才需要一个可以写进验收标准的绝对阈值。这个区别在后面讨论"学术基准可以有瑕疵"时会被反复用到。
1.2 学术界发表:为什么"粗糙的指标"其实是可接受的
(参考时间: 00:04:44)
发表论文时的评测需求与工业界很不一样:
- 可复现、标准化:因为接下来五到十年,所有人都会在这同一个基准上比较。三年后的论文要能和你的论文比。真实世界里你并不太在乎这一点。
- 容易上手:研究者通常不愿意做额外的工作,也通常没有太多资源,所以基准必须快、便宜。
- 指标可以"不够完美":这是讲者特别想强调的一点。学术基准真正重要的是——十年尺度上,指标指出的方向要与领域真实进步的方向一致。如果十年后回头看,"指标说更好"的模型在现实中确实更好,那就够了。
编者说明:这是所谓"元层面(meta level)"的辩护:单个基准的分数可以是粗糙的代理,只要它在长期上与其他代理、以及真实能力保持相关性,它就仍然能驱动进步。
1.3 难度与简易度的折中(学术界特有)
(参考时间: 00:05:31)
学术基准还必须平衡难度与简单度:
- 如果基准太难,所有方法的性能都接近随机,没人会用;
- 如果基准太简单,基线就强到没人能超过,也没人会用。
讲者指出,这是学术界特有的问题——真实世界里你不能因为自己的模型好就换掉任务。
1.4 基准与排行榜驱动进步:一张 MMLU 曲线
(参考时间: 00:07:09)
讲者用 MMLU 说明排行榜的威力:过去四年左右,MMLU 的准确率从约 25%(四选一,即随机水平)涨到了约 90%。
📷 基准与排行榜驱动整个领域的进步:MMLU 四年从 25% 到 90%
回到原视频 (00:07:09)
他再次提醒:在学术界,小数点后面的差异并不重要;重要的是十年之后,右上角的模型确实比左下角的模型更好——即使基准本身并不完美。
编者拓展|MMLU 是什么 MMLU(Massive Multitask Language Understanding,Hendrycks et al., 2021)是一个由 57 个学科的选择题组成的基准,覆盖从高中数学、物理、化学,到美国法律、临床医学等"高中到大学水平"的题目。它是一个多任务、纯知识密集型的基准,也是目前被引用最多的 LLM 能力指标之一。后续还有难度更高的 MMLU-Pro。
📷 常见基准:数量偏多、持续演进,而且前沿模型与小型开源模型关心的并不一样
回到原视频 (00:56:40)
2. 封闭式任务:本质上是标准机器学习
(参考时间: 00:08:00)
讲者把 NLP 任务粗略分成两类:封闭式(closed-ended)与开放式(open-ended)。
- 封闭式任务:候选答案数量有限(他给的经验值是少于 10 个),通常只有一个或少数几个正确答案。
- 开放式任务:正确答案很多,且无法枚举;更麻烦的是,正确性还有程度之分——同一本书可以是"还行"也可以是"更好"。
2.1 封闭式任务长什么样
(参考时间: 00:08:54)
- 情感分类:IMDb(影评正负面)、SST(斯坦福情感树库)。看一句话——例如一句对电影《The Book》的评论——判断是正面还是负面。
- 蕴含(entailment):SNLI。给定前提"一场有多个男性参与的足球比赛",假设"一些男人在运动",判断假设是否被前提蕴含。
- 词性标注:常用基准是 Penn Treebank。
- 命名实体识别:常用基准是 CoNLL(CoNLL-2003 等)。
- 指代消解:例如"Mark told Pete many lies about himself, which Pete included in his book. He should have been more truthful."——这里的 "he" 指谁?这是一个相当有挑战性的任务。
- 问答:给一段长文本,提一个问题,从文本中给出答案。
关键点:这些任务的评测方式与标准机器学习完全一样——准确率、精确率、召回率、F1。这里没有 NLP 特有的东西。
编者说明:讲者特别强调"没有 NLP 特有的东西"不等于"简单"。他在下一节马上会说明,恰恰是这些"常规"指标最容易埋雷。
他推荐了 Christopher Potts 的 CS224U 课程,其中对分类指标的讲解非常好(字幕把名字听成了 "Chris Peach")。这里也顺带补充一下这几个基本量:
$$\text{Precision} = \frac{TP}{TP+FP},\qquad \text{Recall} = \frac{TP}{TP+FN},\qquad F_1 = \frac{2PR}{P+R}$$
2.2 多任务基准:GLUE 与 SuperGLUE
(参考时间: 00:11:33)
把多个小任务拼在一起、取平均分、排一个总榜——这是当年衡量"通用语言能力"的主流做法。最典型的是 GLUE 与 SuperGLUE(8~9 个任务)。
📷 多任务基准成为趋势
回到原视频 (00:11:33)
📷 GLUE 与 SuperGLUE:把已有基准标准化/重排,覆盖广泛的"直觉级"自然语言理解能力
回到原视频 (00:11:40)
SuperGLUE 里的任务包括:BoolQ(读一段文本后回答是/否)、MultiRC、CB 与 RTE(蕴含)、COPA(因果)、ReCoRD(问答+推理)、WiC(同一个词在两句话里是否同义,例如 "bank" 是河岸还是银行)、WSC(指代消解)。
📷 排行榜吸引了大量参与
回到原视频 (00:12:30)
讲者说,这是"大约两年前"人们的主流做法。
2.3 指标选择不是小事:垃圾邮件分类的例子
(参考时间: 00:13:22)
虽然"就是标准机器学习",但你必须认真想清楚该看哪个指标:准确率、精确率、召回率、F1、ROC 曲线、AUC……
讲者举了垃圾邮件分类的例子:假设 90% 的邮件不是垃圾邮件,只有 10% 是。那么一个永远预测"不是垃圾邮件"的朴素分类器就能拿到 90% 准确率——听起来很好,但它实际上什么都没分类出来。这就是为什么你需要看精确率、召回率和 F1。
2.4 多任务聚合:一个"真的是很糟糕"的做法
(参考时间: 00:14:47)
讲者非常直白地说:把各任务的分数直接取平均,是他认为"真的很糟糕"的做法——但这恰恰是人们的普遍做法。
问题在于:这些列的含义完全不同。有的是准确率,有的是 F1,有的是相关系数。他 recalled 了某个基准里有一列是"数值越低越好",结果所有人还是把它平均进去,直到有人意识到"大概应该加个负号"。
他的建议是:不要因为学术界都这么做,就认为这么做是对的。
2.5 标签从哪来?伪相关(spurious correlations)
(参考时间: 00:15:41)
讲者抛出两个问题:这些标签是怎么来的? 以及由此引出的伪相关。
📷 好基准的三个必要条件:规模与多样性、难度、质量(答案必须明确正确、且不能有伪相关)
回到原视频 (00:15:45)
他把"好基准"的条件归纳为三条:
- 规模与多样性:要覆盖你关心的现象;复杂现象需要大量且多样的样本。
- 难度:对人类(或人类专家)要足够简单,对当前最强模型要足够难。
- 质量:正确答案必须明确地正确(这比想象中难得多);且不能有伪相关——否则 AI 会"因为错误的理由答对题"。
📷 这已经成为一个新的研究方向
回到原视频 (00:16:00)
一个经典案例:SNLI 的否定偏差
(参考时间: 00:16:20)
🖼️ 第 16 页幻灯片 · The significance of SQUAD and SQUAD-2
📷 伪相关的第一种:词面重叠偏差("复制粘贴"捷径)
回到原视频 (00:15:50)
讲者用 SNLI 举例:前提是 "the economy could still be better",假设是 "the economy has never been better",判断假设是否被蕴含。
他提到 2019 年的一篇论文发现:所有模型的分数都很高,但如果你只看假设(hypothesis)、完全不看前提(premise),你也能得到很高的分数。原因在于:当人类标注者被要求"写一个不被前提蕴含的假设"时,最常用的手法就是加一个否定词。于是模型很快学会了:看到否定词,就预测"不被蕴含"。
📷 HANS / McCoy et al. 2019:模型可能只是在用句法启发式拿高分
回到原视频 (00:16:30)
📷 在启发式成立的样本上准确率很高,在启发式失效的样本上准确率极低
回到原视频 (00:16:45)
编者拓展|HANS 与"因为错误的理由答对" 讲者提到的这篇论文是 McCoy, Pavlick & Tenney (2019) 的 Right for the Wrong Reasons: Diagnosing Syntactic Heuristics in Natural Language Inference,其中提出的诊断集叫 HANS。 它的做法是:构造在句法启发式成立时(例如"词序相同 → 蕴含")和句法启发式失效时(例如加入从句改变了主谓关系)的样本。典型的三个启发式是: - 词汇重叠:前提与假设共享的词越多,越倾向判"蕴含"; - 子序列:假设是前提的子序列 → 判"蕴含"; - 成分顺序:前提与假设的句法成分顺序一致 → 判"蕴含"。 结果正如幻灯片所示:在启发式成立的子集上准确率很高,在失效子集上则接近随机。这说明模型的"高准确率"里,有相当一部分不是理解能力。
另外两类伪相关
(参考时间: 00:50:00)
🖼️ Slide 12
📷 伪相关的第二种:位置偏差
回到原视频 (00:50:00)
- 位置偏差:维基百科段落里最重要的信息往往在前几句,模型于是学会了"更看重段首"。
- 其他标注痕迹(annotation artifacts):
📷 伪相关的第三种:人类"小伎俩"留下的标注痕迹
回到原视频 (00:16:24)
- 否定偏差:人类造"不可回答/不蕴含"样本时,最省力的办法就是插入 "not"。模型于是把"出现否定词"当成强信号。
- 实体替换:把 "Obama" 换成 "Bush"。这样训出来的模型会对命名实体过度敏感,而忽略其他重要内容。
讲者的总结很尖锐:几乎所有的基准都含有伪相关,模型会抓住它们,于是"答对了,但理由全错"。作为回应,研究者开始探索两类新的基准:动态基准(dynamic benchmarks)与对抗基准(adversarial benchmarks)。
graph TD
A["基准中的伪相关"] --> B["词面重叠偏差<br/>问题常与答案句用词雷同"]
A --> C["位置偏差<br/>重要信息集中在段首"]
A --> D["标注痕迹<br/>否定词 / 实体替换"]
B --> E["模型: 找与问题重叠最多的句子"]
C --> F["模型: 给段首更高权重"]
D --> G["模型: 看到 not 就判不可回答"]
E --> H["加入干扰句后 F1 从 75% 掉到 36%<br/>(Jia & Liang, 2017)"]
F --> I["因为错误的理由答对题"]
G --> I
编者拓展|对抗基准与动态基准的差别 - 对抗基准(adversarial):让模型"在环内"(model-in-the-loop)——先跑模型,看它在哪些样本上失败,再针对这些失败人工构造新样本。典型代表是 ANLI。 - 动态基准(dynamic):测试集随时间滚动更新,让"背下测试集"这件事失效。Chatbot Arena 就是最典型的动态评测——它的题库(用户提问)每天都在变。
讲到"动态测试集"时,讲者在后半段给出了对应的课件页:
📷 带模型在环的动态基准
回到原视频 (01:09:52)
📷 好基准的条件(重复强调版)
回到原视频 (00:17:00)
3. 开放式生成任务:从 n-gram 重叠到语义相似
(参考时间: 00:17:36)
📷 本节在讲座大纲中的位置
回到原视频 (00:17:36)
3.1 什么是开放式任务
开放式任务正相反:正确答案数量不受限,无法枚举,而且正确性有不同程度。所以你不能用标准分类指标。
典型任务是:
- 摘要:给一篇长文,要求用不超过 X 字总结。经典基准是 CNN/DailyMail(做法是把新闻顶部的要点列表当作参考摘要)。
- 翻译:两种语言之间互译。
- 指令跟随(instruction following):讲者称之为"所有任务之母"——因为任何旧任务都可以表述成"向聊天机器人提一个问题"。分类可以问 ChatGPT,摘要也可以问 ChatGPT。所以聊天机器人可以看作最通用的任务类型,而它的评测也就格外困难。
3.2 三类评测方法
(参考时间: 00:20:00)
📷 评测指标的艺术:模型无关 vs 模型化、参考 vs 无参考、人类 vs LLM 评委
回到原视频 (00:19:50)
📷 答案类型 / 打分复杂度 / 对应任务与基准 的对照表
回到原视频 (00:20:05)
graph TD
A["怎么评测一个 NLP 系统?"] --> B["封闭式任务<br/>候选答案 < 10"]
A --> C["开放式任务<br/>答案无法枚举"]
B --> B1["标准 ML 指标<br/>Accuracy / P / R / F1 / AUC"]
C --> C1["① 内容重叠指标<br/>BLEU, ROUGE (模型无关)"]
C --> C2["② 模型化指标<br/>BERTScore, WMD, BLEURT"]
C --> C3["③ 人类评测<br/>传统黄金标准"]
C3 --> C4["④ LLM 当评委<br/>AlpacaEval, MT-Bench"]
3.3 内容重叠指标:BLEU 与 ROUGE
(参考时间: 00:20:42)
内容重叠指标就是把生成序列与人类写的参考序列逐词(或逐词组)比较。讲者举例:
- 生成:
The woman went to the hardware store - 参考:
They walked to the grocery store
做法就是计算两者之间的词面相似度——也就是 n-gram 重叠。最简单的版本是:逐个检查生成序列里的词是否出现在参考序列里;n-gram 则是检查连续 2 个、3 个词形成的词组。
最常用的两个是 BLEU("蓝")与 ROUGE("红")——讲者开玩笑说自己总记不住它们的全称。要点是:
- BLEU 看精确率(precision);
- ROUGE 看召回率(recall)。
📷 经典指标都是模型无关指标:BLEU / ROUGE / METEOR / CIDEr / TER / WER 一览表
回到原视频 (00:21:40)
| 指标 | 主要论文 | 主要应用 | 关键区别 |
|---|---|---|---|
| BLEU | Papineni et al. (2002) | 机器翻译 | 侧重精确率,度量 n-gram 重叠 |
| ROUGE | Lin (2004) | 摘要 | 侧重召回率,保证源文关键信息被覆盖 |
| METEOR | Banerjee & Lavie (2005) | 翻译与对话 | 引入词干化与同义词典(更"像人") |
| CIDEr | Vedantam et al. (2015) | 图像描述 | 用 TF-IDF 加权,奖励"共识性"描述 |
| TER | Snover et al. (2006) | 翻译质量 | 度量"人要把输出改对所需的编辑距离" |
| WER | ASR 业界标准 | 语音识别 | 语音转文字的行业标准错误率 |
📷 BLEU:基于 n-gram 计数的机器翻译指标
回到原视频 (00:22:00)
讲者补充了一个细节:BLEU 不只看精确率。因为如果模型只输出一个词——比如永远输出 "the"——精确率会非常高,但什么都没翻译。所以 BLEU 还加入了一个长度惩罚。
编者拓展|BLEU 的定义 记 $c$ 为生成文本长度,$r$ 为参考文本长度,$p_n$ 为截断后的 n-gram 精确率:
$$p_n = \frac{\sum_{\text{n-gram}\in \text{gen}} \min\big(\text{count}_{\text{gen}}(\text{n-gram}),\ \text{count}_{\text{ref}}(\text{n-gram})\big)}{\sum_{\text{n-gram}\in \text{gen}} \text{count}_{\text{gen}}(\text{n-gram})}$$
则
$$\text{BLEU} = \text{BP}\cdot \exp!\left(\sum_{n=1}^{N} w_n \log p_n\right),\qquad
\text{BP} = \begin{cases} 1, & c > r\ e^{\,1 - r/c}, & c \le r \end{cases}$$
通常 $N = 4$,$w_n = 1/N$。那个 $\min(\cdot)$ 就是"截断(clipping)",防止模型靠重复同一个词刷分。
ROUGE 则相反地以召回率为核心,常见变体有 ROUGE-N(n-gram 召回)、ROUGE-L(最长公共子序列)。
graph LR
A["生成文本"] --> B["切成 1~4-gram"]
C["参考文本"] --> D["统计各 n-gram 出现次数"]
B --> E["逐 n 计算截断后的匹配数"]
D --> E
E --> F["p1, p2, p3, p4"]
F --> G["几何平均<br/>exp(mean(log p_n))"]
A --> H["算长度 c"]
C --> I["算长度 r"]
H --> J{"c > r ?"}
I --> J
J -->|是| K["BP = 1"]
J -->|否| L["BP = exp(1 - r/c)"]
G --> M["BLEU = BP × 几何平均"]
K --> M
L --> M
3.4 一个反例:为什么词面重叠指标不靠谱
(参考时间: 00:23:40)
讲者构造了一个极小的例子。假设 Chris 问你:"Are you enjoying the CS224N lectures?"(你喜欢 CS224N 的课吗?)人类写的参考答案是 "Heck yes!"。现在看模型生成不同回答时 BLEU 会给出什么分数:
| 模型输出 | BLEU 分数 | 含义 |
|---|---|---|
Yes . |
0.67 | 其实是个不错的回答 |
You know it ! |
0.25 | 意思完全一样,分数却大幅下降(假阴性) |
Yup . |
0 | 意思完全一样,得零分(假阴性) |
Heck no ! |
0.61 | 意思完全相反,分数却很高(假阳性) |
📷 一个反例:n-gram 重叠指标完全不理解语义相关性
回到原视频 (00:23:40)
这个例子说明了两件事:假阴性(真正等价的表达得零分)和假阳性(意思相反的表达得高分)。根因是 n-gram 重叠指标没有任何语义相关性的概念。
编者说明:这里的核心观念是——"词面相同"与"意思相同"是两件事。BLEU/ROUGE 度量的是前者,而我们真正想度量的是后者。
3.5 模型化指标:用表示学习来打分
(参考时间: 00:25:12)
自然的想法是:既然我们有能保持语义相似性的词/句表示,为什么不直接比较表示?
📷 评测指标的另一条路:模型化(model-based)指标
回到原视频 (00:25:10)
- 向量相似度:把参考序列和生成序列里的每个词都映射为词向量,然后做比较。最朴素的做法是取平均再算余弦相似度。
- BERTScore(Zhang et al., 2020):用 BERT 分别编码生成序列与参考序列(同一个 BERT),再做比较。讲者说,BERTScore 的论文里有一些"聪明的比较方式",但不必纠结细节,关键点是它在做一种"聪明的平均"。
📷 BERTScore:BLEU / ROUGE 的"软"版本
回到原视频 (00:26:00)
编者说明:讲者在这里指出,早期词向量不区分上下文,这是它的局限;BERT 这类上下文相关的表示才是更好的选择。
- Word Mover's Distance(Kusner et al., 2015):本质上是推土机距离(Earth Mover's Distance)的嵌入版本——把"把生成文本的词分布搬运成参考文本的词分布"所需的最小代价当作距离。
📷 Word Mover's Distance
回到原视频 (00:26:30)
编者说明:讲者在录音里并没有展开 WMD,这一页来自官方课件。直观理解是:把每个词的词向量看成高维空间里的一个点,把两句话看成两组带权重的点,WMD 就是"把其中一组点搬到另一组"的最小搬运成本。它对词序不敏感,但天然考虑了语义相近的词搬运代价更低。
- BLEURT(Sellam et al., 2020):名字就是 BLEU + BERT。做法是取一个预训练 BERT,继续预训练去预测 BLEU 等自动指标,再在人类评分上微调,让模型直接学会"模仿人类的评判"。
📷 BLEURT:训练一个模型来模仿人类的评价
回到原视频 (00:27:12)
课堂上有一位学生提出一个很好的质疑:如果继续预训练的目标是 BLEU,那不是把 BLEU 的毛病也学进去了吗? 讲者的回答是:他们这么做是因为数据集里大量样本没有人工标注(只有参考和生成文本,不知道好坏),所以只能用自动指标作为无监督/自监督目标;同时他们用了多个目标(BLEU 和 BERTScore 等)做多任务学习。
📷 模型化指标的隐忧
回到原视频 (00:28:00)
课件上还列出了模型化指标的几个隐忧:受模型自身局限与偏见影响(例如 BERTScore 会给 "born in 1942" 和 "born in 1924" 打很高的相似度——它对事实错误不敏感)、跨领域缺乏校准、计算成本与可复现性、长度偏差(更长的文本有更多"机会"匹配上),以及与人类判断不一致的实证证据。
(参考时间: 00:29:17)
3.6 参考本身也可能很差
讲者随后提出一个更根本的问题:所有这些指标的上限,取决于参考的质量——而现实中参考往往并不好。
▶ 用新闻摘要说明参考质量问题
在 YouTube 中打开(00:29:30)
以新闻摘要为例:大多数摘要基准把文章顶部的要点列表当作参考摘要,而这个参考通常并不好。幻灯片上给出了两张相关性散点图:
- 左图(用这种粗糙参考):横轴是各个模型的人工评分,纵轴是 ROUGE-L 分数,两者基本不相关;
- 右图(让专家专门撰写高质量的参考摘要):同一套指标,相关性明显提高——虽然仍不完美。
讲者的结论很关键:这并不能说明 ROUGE 是个坏指标,而说明参考是坏的。
4. 无参考评测:从"不可想象"到"新常态"
(参考时间: 00:31:01)
既然参考不可靠,一个自然的问题是:能不能干脆不要参考?
📷 参考式评测可能出什么问题
回到原视频 (00:31:10)
- 参考式评测(reference-based):有人类写的标准答案,长期以来的标准做法。
- 无参考评测(reference-free):没有标准答案,最初被认为是不可想象的,现在正在成为新常态。
讲者给出了两类失败模式:
- 参考本身质量不高,或者覆盖不了多样的正确答案时,参考式评测会失效;
- 针对参考式指标做优化的模型,会过拟合到参考的个性癖好上,而在人工评测的质量维度上并没有提升。
📷 参考式与无参考式指标一览表
回到原视频 (00:33:00)
| 指标 | 类型 | 用途简述 | 主要文献 |
|---|---|---|---|
| BLEU / ROUGE | 参考式 | n-gram 重叠,衡量翻译(BLEU)与摘要(ROUGE)的字面相似 | Papineni et al. (2002);Lin (2004) |
| BERTScore | 参考式 | 用上下文嵌入衡量语义相似,克服精确词匹配的局限 | Zhang et al. (2020) |
| COMET | 参考式 | 神经指标,用源文+参考预测类人质量分、识别细粒度错误 | Rei et al. (2020) |
| COMETKiwi / QE | 无参考 | "质量估计",直接把译文与源文比较,无需参考 | Rei et al. (2022) |
| FActScore | 无参考 | 把长文本拆成原子事实,逐条对照 Wikipedia 等知识源核验 | Min et al. (2023) |
| CLIPScore | 无参考 | 计算图像与生成文本之间的视觉-文本对齐度 | Hessel et al. (2021) |
| SelfCheckGPT | 无参考 | 通过同一模型多次采样的内部一致性来检测幻觉 | Manakul et al. (2023) |
| G-Eval | 无参考 | 用带 CoT 提示的 LLM 当评委,评估连贯性、有用性等 | Liu et al. (2023) |
(参考时间: 00:31:01)
无参考评测最初的做法是:拿一个像 BLEU 一样的模型,不看参考,直接从输入预测分数——但这条路"以前真的不管用"。
转折点是 ChatGPT 和 GPT-4。现在的做法是:直接把要求交给 GPT-4,就像要求一位人类评委一样——给它一篇长文和一段生成的摘要,问它"这段摘要有多好"。讲者说,这出乎意料地有效。常见的基准是 AlpacaEval 与 MT-Bench。
5. 人类评测:黄金标准,也是工程噩梦
(参考时间: 00:33:12)
5.1 为什么必须有人类评测
- 所有自动指标都有短板,达不到人类评测的水平(它们都建立在参考之上);
- 人类评测是开放式任务的黄金标准;
- 更重要的是:它也是开发新自动指标的黄金标准。每当你提出一个新的自动指标,都必须证明它与人类评测高度相关。
5.2 表面上很简单,实际上非常复杂
(参考时间: 00:33:57)
"让人去评价一段生成文本的质量"听起来简单,但讲者强调它是一项真正的挑战。几点关键提醒:
- 要分维度评价:流畅度、连贯性、常识性、风格、语法性、冗余度……不同维度要分别打。
- 绝对不要跨研究比较人类评测分数。一篇论文说"我们的文本流畅度是 4/5",另一篇说"3/5"——用的是不同的人、不同的提示方式,完全不可比。
📷 人类评测可能出什么问题
回到原视频 (00:35:00)
5.3 人类评测的六个问题
(参考时间: 00:35:00)
- 慢:人类远远没有自动指标快。
- 贵:在学术界,只有付给标注者体面的报酬,评测才会做得像样,而这很贵。
- 标注者之间不一致(inter-annotator disagreement):讲者说,随便找房间里两个人评价同一段生成文本,你们一定不会同意。即使事先花一小时讨论"该怎么评",仍然会在很多样本上分歧。
- 同一个人前后也不一致(intra-annotator disagreement):同一个标注者,三小时后(吃过饭、跑过步之后)会给出不同的判断。
- 不可复现:讲者引用了一篇(他记得是 2021 年)的论文——分析了 2015–2020 年间约 128 篇论文,结论是只有 5% 的人类评测是可复现的。
- 人类只能评"精确率",评不了"召回率":你给人类看模型生成了什么,他只能评价这一个输出,没有办法评价"本可以是别的样子的那些输出";要评就得大量采样,成本又会爆炸。
一个亲历的例子:AlpacaFarm 里的 67%
(参考时间: 00:36:00)
讲者讲了他们去年做 AlpacaFarm 时的亲身经历。任务是"并排比较":给同一个输入,让两个模型(比如 ChatGPT 和 Alpaca 这类)各生成一个回答,让人判断更喜欢哪一个——这是一个非常简单的任务,也正是一大批大模型现在使用的评测方式。
他们五个人做这件事,花了两三个小时讨论、写下极其详细的评分细则(rubrics),结果彼此只有 67% 的一致率——而 50% 就等于随机。他强调:不是因为他们敷衍,恰恰相反,他们非常想把这件事做好。
一个补充观察是:如果允许标注者讨论,一致率会提高,但代价是更慢、更贵。
有人问:那怎么验证评测本身?讲者的回答很坦诚——没有很好的答案。通常做法是看统计指标(比如做 t 检验,要求 p 值低于某个阈值),或者计算标注者间一致度,达不到就要求更多人标注或重新标注。
激励不对齐:1.5 倍最低工资变成了 2.5 倍
(参考时间: 00:39:48)
这是讲者认为最容易被忽略、却最真实的一个问题:你想要的是标注者做出最好的评判,他们想要的通常是每小时赚最多的钱——激励不对齐。
他们的具体做法是:在 AlpacaFarm 中,他们支付加州最低工资的 1.5 倍;他们先自己测了一遍"把一个样本评到最好"需要多长时间,再按这个时间折算单价。结果标注者最终拿到的是最低工资的 2 到 2.5 倍——因为他们做得"比我们快两到三倍"。
讲者说,他并不排除自己比较慢,但更可能的解释是:他们在找捷径。这种捷径在论文里随处可见。他们自己观测到的最典型的一个捷径就是:人类强烈偏好更长的回答。给两个都很长的回答,让人在尽量少动脑的前提下挑一个更好的,"看到更长的那个,我就想——嗯,细节更多,大概更好"。
5.4 如何把人类评测做对
(参考时间: 00:41:26)
课件(以及讲者口头补充)给出的清单:
- 写清楚评分细则(rubric),逐维度定义:正确性、流畅性、原创性……
- 先做大量样例,然后讨论、校准。
- 计算标注者间一致度(inter-rater agreement),达不到就加人或重标。
- 决定怎么把任务呈现给标注者:例如并排比较时,谁在左谁在右非常重要——这可以随机化,但它确实带来额外挑战。
- 挑选标注者:不是有钱上 Amazon Mechanical Turk 随便找人就行。常见做法是先让一批人做,达不到质量就按已完成的工作结算、换一批人。因此你需要事先准备金标准标注,然后看他们的准确率和与团队的一致度。
- 持续监控:典型做法是每批样本里混入若干你已经知道金标的样本,看他们表现如何;也可以看标注耗时。
📷 做好人类评测的方法;以及"LLM 的评测比人类更一致"这一观察
回到原视频 (00:35:30)
课件上还有一句很值得玩味的话:"LLM 生成的评测比人类更一致——也就是说,LLM 彼此之间的认同度,高于人类彼此之间的认同度。"
6. Chatbot Arena:把评测外包给整个互联网
(参考时间: 00:43:22)
如何评测 ChatGPT 这样的系统?极其困难:你可以问它任何任务,它可以给出任意长的回答。目前的通行做法是并排比较:同一个问题交给两个模型,让人(或后面的模型)判断哪个更好。
最主流的平台是 Chatbot Arena:任何人都可以免费在线和最好的模型对话,平台只问你更喜欢左边还是右边。
📷 Chatbot Arena:基于人类偏好的开放评测平台
回到原视频 (00:43:22)
📷 Chatbot Arena 界面
回到原视频 (00:43:40)
📷 Chatbot Arena
回到原视频 (00:44:00)
📷 Chatbot Arena 的排行界面
回到原视频 (00:44:20)
6.1 机制:从两两比较到 ELO
当累积到极大数量的投票(例如 20 万票)时,平台会把结果加进排行榜。加榜的方式借鉴国际象棋:把每一对比较看作一场锦标赛,用 ELO 评分把"两两胜负"折算成一个统一分数——这样不需要每个模型都和其他所有模型比过。
graph LR
A["用户提问"] --> B["随机抽两个匿名模型<br/>A / B"]
B --> C["并排展示两个回答"]
C --> D["用户投票: 左边 / 右边 / 平局"]
D --> E["累积到 N 票<br/>(如 20 万)"]
E --> F["把每场比较视为锦标赛对局"]
F --> G["用 ELO 求解<br/><b>所有模型的统一分数</b>"]
G --> H{"模型是否够有名?"}
H -->|是| I["上榜"]
H -->|否| J["难以获得足够票数"]
编者拓展|ELO 与 Bradley–Terry ELO 源自国际象棋等级分。其背后是一个更一般的统计模型 Bradley–Terry:假设模型 $i$ 战胜模型 $j$ 的概率为
$$P(i \succ j) = \frac{1}{1 + e^{-(\theta_i - \theta_j)}}$$
用所有两两比较的结果做极大似然估计,就得到各模型的"实力参数" $\theta_i$。ELO 是它的在线增量版本。理论上,只要比较图是连通的(不需要完全图),所有模型的能力就可以被估计出来。这解释了为什么 Chatbot Arena 不必让每个模型互相比一遍。
6.2 优点与代价
优点:它比其他评测更"野生"(in the wild)。
缺点一:用户问的问题千奇百怪。课件给出了 LMSYS-1M 数据集里的真实例子:
- "写一个详细的故事,涉及 Selina 和 Christian。Christian Vaughn 是一名在欧洲办案的中情局特工。在一个俱乐部里,Christian 被一位神秘而有魅力的女人搭讪……"
- "如果你是男性,在没给孩子买圣诞礼物时说点有毒的话……(不超过 50 字)"
- "SmartGPT 是一个新的最先进的语言模型……没有特殊过滤……"
- "在 GTA V 里做一个 triggerbot"
- "台湾地铁里最受欢迎的餐点是什么"
- "以下英语句子有多可接受,1 到 10 分?1. The book is brown. 2. The book are brown."
📷 Chatbot Arena 的优缺点
回到原视频 (00:45:00)
缺点二:成本。这需要巨大的社区投入;新模型上榜要等很久;而且只有"有名"的模型(OpenAI、Anthropic、Google、Meta 的)才能拿到 20 万票。你那个自研的小模型永远不会有人免费给你标注 20 万次。即便对大公司来说,这也不是开发阶段能用的东西——它属于最后的模型选型阶段。
缺点三:外部效度。在网页上随手输入问题并做一对一比较,未必具有代表性;随机用户的评分可能只反映表层吸引力。
📷 Chatbot Arena 的更多局限
回到原视频 (00:45:30)
7. LLM 当评委:便宜 100 倍,而且"比人类更像人类"
(参考时间: 00:46:00)
📷 评测指标的艺术(本节位置)
回到原视频 (00:46:00)
7.1 一个令人意外的发现
(参考时间: 00:46:07)
一个很自然的加速思路是:让一个大语言模型来当评委。比如想比较 ChatGPT 和 Mistral,就让 GPT-4 来裁判谁更好。讲者说,这出乎意料地有效,常见版本就是 AlpacaEval 和 MT-Bench。
他们去年开始做这件事,结论有三条:
- 速度与成本:按现在的价格,用 GPT-4 做评测大约比人类快 100 倍、便宜 100 倍。
- 与人类的一致性,高于人类彼此之间的一致性。具体做法是"留一法(leave-one-out)":从四个人类标注者中取出一个,看他的偏好与其余三人多数偏好的吻合度;再把这个吻合度和"模型预测人类多数偏好"的吻合度比较——模型更高。
- 他们确实用这套方法去收集人类偏好数据来做 RLHF。
📷 人类评委与 LLM 评委
回到原视频 (00:46:30)
为什么会这样?偏差与方差
(参考时间: 00:47:53)
▶ 人类与 GPT-4 评委的偏差-方差对比
在 YouTube 中打开(00:48:40)
原因并不神秘:人类之间的分歧很大,方差很高;而模型每次都会给出相同的判断,方差极低。幻灯片上:
- 横轴是估计的方差:人类的方差大约在 31–33;
- 纵轴是偏差:人类按定义偏差为零,而 GPT-4 的偏差大约在 32% 左右(红点)。
所以"一致性更高"其实是低方差换来的。一位学生追问确认:"这是说 LLM 的内部一致性比人类更高?"讲者回答:是的,这是好消息——低方差让研究更容易做;坏消息是偏差仍然很高。
7.2 LLM 评委(和人类评委)共有的伪相关
(参考时间: 00:49:14)
▶ 伪相关:长度偏差在人类与模型上都存在
在 YouTube 中打开(00:49:40)
- 长度偏差:人类对更长输出的偏好大约在 70% 左右,模型差不多。
- 列表偏好:输出里出现列表时,人类和模型都更偏好它。
- 位置偏差:左边还是右边会影响判断——这通常容易控制,随机化即可。
- 自我偏好(self-bias):GPT-4 会不会偏袒自己?讲者说"存在,但没有你想象的那么严重"。
7.3 AlpacaEval 的具体做法
(参考时间: 00:50:34)
AlpacaEval 是他们做 Alpaca 时开发的一个很小的基准,本意只是给自己做开发/调参用(因为当时对市面上的指令跟随基准都不太信任),后来变成了独立的东西。
它的几个数字很惊人:与 Chatbot Arena 的排名相关性达到 98%;评测一次约需 3 分钟、10 美元。
graph TD
A["一条指令"] --> B["模型 X 生成回答"]
A --> C["基线模型生成回答"]
B --> D["把两者一起交给 GPT-4"]
C --> D
D --> E["GPT-4 输出<br/>它偏好模型 X 的概率"]
E --> F["按输出长度做重加权<br/>(更长的输出适当降权)"]
F --> G["在整个数据集上取平均"]
G --> H["胜率 / win rate"]
▶ AlpacaEval 的系统级相关性
在 YouTube 中打开(00:52:40)
▶ 各自动基准与 Chatbot Arena 的相关性对比
在 YouTube 中打开(00:53:05)
为什么要"重加权":一次迟到的教训
(参考时间: 00:53:00)
讲者说,他们有点太晚才意识到一个问题:如果拿 GPT-4,在 prompt 里让它"更详细",它的胜率会从 50% 涨到 64.3%;如果让它"更简洁",胜率会掉到 22.9%。
这完全不符合"基准应该测什么"的心智模型——我只是微调了一下提示词,不应该让模型排名天翻地覆。所以他们对长度做了重加权:更长的输出适当降权。重加权之后,"要求详细"的版本表现就与不做任何提示调整时非常接近了。
7.4 自我偏好到底有多严重
(参考时间: 00:54:08)
讲者说他对这个结果相当意外:自我偏好确实存在,但没有想象中那么高。
把"被评模型"放在行、"评委模型"放在列,你会看到无论用哪个模型当评委,最终排名基本一致。比如用 Mistral 评 Mistral 时,它给自己的分数会高很多,但它依然更偏好 Claude 和 GPT-4。
讲者的结论是:没有想象中那么糟,但依然不好。
📷 LLM 当评委(或"陪审团")
回到原视频 (00:49:00)
7.5 如何把 LLM 评委做对
(参考时间: 00:55:30)
📷 LLM as a Judge (or a Jury)
回到原视频 (00:55:30)
优点:成本远低于人类评测;LLM 在"遵循指令"这件事上常常比人类做得更好。
缺点:
- 自我偏好 / 任人唯亲偏差(偏好自己的输出,或偏好自家模型);
- 冗长偏差(verbosity bias);
- 擅长"感觉一下(vibe check)",不擅长发现细微的逻辑错误;
- 更强的模型更贵。
怎么用对:
- 给出清晰的指令、示例和评分细则;
- 让它们讨论:ChatEval、CollabEval;
- "LLM 陪审团":用一组多样化的评审员来缓解偏差;关注聚合分数的稳健性;用小模型来降成本。
编者说明:讲者在回答提问时给出了一个非常有用的类比——这和教授给助教(TA)写评分标准是一回事。教授不会盲目相信 TA 的判断,而是写一份非常详细的 rubric,相信 TA 能照着 rubric 执行。他认为我们也应该这样看待 GPT-4 评委:不要问"这总结好不好,打个分",而要写清楚"一个好答案必须包含哪些要素"——而目前大家做的恰恰不是这个。
8. 今天人们实际上怎么评大模型:三条路
(参考时间: 00:55:00)
📷 本节在讲座大纲中的位置
回到原视频 (00:55:00)
(参考时间: 00:55:06)
讲者归纳出当前 LLM 评测的三种主流做法:
- 困惑度(perplexity):本质上就是看训练/验证 loss;
- "平均一切":把一堆自动基准的分取平均——比你想的更常见;
- Arena 式:让模型互相比,用人类或模型来当裁判。
通常的分工是:预训练模型(新一代的 Llama、GPT)主要报困惑度和"平均一切";微调模型主要报"平均一切"和 Arena 式表现。原因是:微调之后模型预测的对数似然已经不再对你的数据集校准了。
8.1 "平均一切":HELM 与 Open LLM Leaderboard
(参考时间: 00:56:20)
两个代表是 HELM(斯坦福 CRFM)与 Hugging Face Open LLM Leaderboard——本质上就是一堆自动基准的集合,全部跑一遍再平均。常见的有:
- GSM8K:小学数学应用题;
- MMLU:多学科选择题;
- LegalBench:法律方向;
- MedQA:医学执照考试题。
讲者说,"平均一切"可以说是 SuperGLUE 的新版本。
MMLU 详解
(参考时间: 00:57:20)
讲者特别点名 MMLU 是最广泛使用、也最被信任的基准:57 个任务的多选题,包括形式逻辑、概念物理、计量经济学等。
📷 MMLU:57 个任务、覆盖高中到大学水平的知识密集型题目
回到原视频 (00:57:20)
他举了两个例子:
- "关于 Ia 型超新星,下列哪项为真?"——选项涉及"这类超新星发生在双星系统中""这类超新星出现在年轻星系中"等;
- "在一个长颈鹿种群中,某种环境变化……这属于什么?"——答案是定向选择(directional selection)。
📷 MMLU 的样题
回到原视频 (00:57:50)
讲者说:任务本身并不简单,但评测方式看起来很简单——就选一个答案嘛。不过后面会看到,这件事远没有看上去那么简单。
📷 MMLU 是最常用的 LLM 评测基准之一,MMLU-Pro 难得多
回到原视频 (00:58:00)
他还提到一个细节:马克·扎克伯格在宣布 Llama 3 时,专门讲了 MMLU 分数——他个人觉得这有点"疯狂"。
8.2 编程能力:为什么大家都爱测代码
(参考时间: 00:58:32)
编程是另一个热门评测方向,原因有三:
- 代码能力和推理能力高度相关——在这些模型上,擅长写代码通常意味着擅长推理,而推理是大家真正关心的;
- 我们都在写代码,所以想要更好的编程助手;
- 它容易自动评测——让模型生成一个函数,然后直接跑测试用例,看是否通过。
8.3 Agent 评测:沙盒问题
(参考时间: 01:00:20)
🖼️ 第 65 页幻灯片 · Lecture Plan
讲者提到下一讲会专门讲 Agent(他提到一位叫 Shikhar 的同学会来讲)。LLM 现在可以调用 API、在真实世界里采取行动,甚至接管你的电脑——"你不应该把电脑的控制权交给它"。
那么怎么评测这类能力?最大的挑战是沙盒。如果你想评测它在你的终端里表现如何,你就得给它终端的访问权限——而这正是你不想要的。终端相对好沙盒化,但一旦要评测"它能不能替我读 Slack"或"能不能处理我的邮件",你就必须为所有它可能接触的应用造一整套沙盒环境。讲者说,这在真实世界里是非常复杂的工程。
8.4 困惑度:一个被低估的指标
(参考时间: 01:01:34)
讲者说,有一个结论第一次见会很惊讶:预训练阶段的性能,与几乎所有下游任务的性能高度相关。
▶ 困惑度与下游平均分的强相关(横轴:困惑度;纵轴:多任务平均分)
在 YouTube 中打开(01:02:00)
也就是说,如果你只看"预测下一个词"的训练表现,它和下游表现高度相关——很多人在开发时干脆只看困惑度,信任它到不再做下游评测。讲者说:我不推荐这么做,但如果你必须要一个"快而糙"的信号,它通常相当管用。
两个必须小心的坑:
- 困惑度不能跨数据集比较;
- 它还取决于分词器(tokenizer)。比如 Llama 3 和 Gemini,即使在同一个数据集上,分数也不可比。
编者拓展|为什么困惑度依赖于词表大小 困惑度的定义是交叉熵的指数:
$$\text{PPL} = \exp\!\left(-\frac{1}{N}\sum_{i=1}^{N}\log p(w_i \mid w_{
其中 $H$ 是模型在该数据上的交叉熵。关键点在于:交叉熵有一个由词表大小决定的上界——
$$H \le \log |V|$$
直觉上,如果词表只有一个词,你永远只能预测同一个 token,熵为零,困惑度为 1。词表越大,理论上的最大熵(以及最大困惑度)就越大。所以不同分词器下的困惑度是在不同的"量纲"上比较,这正是讲者说"不可比"的原因。课堂上有一位同学问到这一点,讲者的回答就是"熵被词表基数的对数上界所限制"。
🖼️ 第 66 页幻灯片 · Goodhart’s laws: “when a measure becomes a target, it ceases to be a good measure"
(学生追问:"如果词表变化,那不是所有东西的上下界都变了?"——讲者确认:是的,上界变了,量纲就变了。)
8.5 Arena 式评测
(参考时间: 01:03:42)
讲者最后把 Arena 式单独列出来:让不同模型互相比拼,最后给出 ELO 评分。他把它概括为"把决定权直接交给用户"——这也相当有效。
🖼️ 第 68 页幻灯片 · Goodhart’s laws: “when a measure becomes a target, it ceases to be a good measure"
9. 一致性、污染与偏差:评测的三大挑战
(参考时间: 01:04:00)
📷 本节在讲座大纲中的位置
回到原视频 (01:04:00)
9.1 一致性:同一道题,三种实现,三个分数
(参考时间: 01:04:02)
第一个问题:格式细节会显著改变结果。
如果只把多选题的 A B C D 换成随机符号,模型给出的答案就会变,模型之间的排名也会变。连"从四个选项里选一个"这么简单的事,都极其依赖选项的格式化方式。
更具体的例子是 MMLU。它看起来很好评,但有将近一年时间,存在三种主流实现,而人们在比较这三种实现时,完全不知道它们给出的分数不一样。两类差异:
- 提示词不同——这当然会导致不同的答案;
- 取"最可能答案"的方式不同:
- 一种是在
A/B/C/D上做约束解码(constrained decoding),只在这四个 token 里取 argmax。哪怕某个别的 token(比如 "Z")似然更高,也不看它; - 另一种是直接取下一个 token 的 argmax,不做约束;
- 还有一种是不生成字母,而是计算每个选项作为答案的对数似然/困惑度,再比较。
graph TD
A["同一道 MMLU 题 + 四个选项"] --> B{"怎么取答案?"}
B -->|"约束解码:只在 A/B/C/D 上取 argmax"| C["实现 A"]
B -->|"直接取下一个 token 的 argmax"| D["实现 B"]
B -->|"分别计算每个选项的对数似然再比较"| E["实现 C"]
C --> F["LLM 评测得分"]
D --> F
E --> F
F --> G["同一模型,三种分数"]
G --> H["Llama-65B:<br/>HELM 63.7 / 原版 MMLU 63.6 / harness 48.8"]
▶ 一致性问题的具体数字:Llama-65B 在三种 MMLU 实现下的分数差异
在 YouTube 中打开(01:06:30)
讲者给出的具体数字是:Llama-65B 的 MMLU 分数
| 实现 | 分数 |
|---|---|
| HELM | 63.7 |
| 原版 MMLU | 63.6 |
| harness(Hugging Face 实际使用的那个) | 48.8 |
相差将近 15 分。有学生问这三者分别对应哪种做法,讲者说他记不清哪个是哪个(他的猜测是 harness 用了最后一种),并补充:现在这三者已经统一了,但在当时并没有。
📷 提示词格式会显著影响性能
回到原视频 (01:04:50)
课件总结了会影响结果的因素:zero-shot 还是 few-shot、几个 shot、用不用思维链(CoT)、甚至一个空格的有无、以及具体用哪个答案抽取脚本。这些都"挑战了评测的可靠性与可复现性"。
9.2 数据污染
(参考时间: 01:07:08)
📷 LLM 的训练数据里有什么?——"你的测试集会不会就在这里面?"
回到原视频 (01:07:00)
📷 对预训练模型来说,基准很难被信任
回到原视频 (01:07:20)
讲者转述了一条推特(他说"如果你没关注他,你应该关注"):有人在看代码基准时发现,GPT-4 在 2021 年之前的问题上拿 10/10,而在 2021 年之后的新问题上拿 0/10。这"非常非常奇怪",强烈指向数据污染:那个代码数据集很可能就在预训练数据里,而在测试集上训练当然表现很好。他说,Phi-1.5(微软的模型)也有类似指控。
为什么难以判断:
- 这些模型预训练数据量极大,即使你能拿到数据,也很难确认你的测试集在不在里面;
- 它们大多是闭源模型,你连数据都拿不到。
📷 数据去污染
回到原视频 (01:09:20)
"数据去污染"的常见做法:
- 检查训练数据与基准样例之间是否存在精确或近似精确的 n-gram 重叠(常用 8~13 gram);
- 有时会配合基于嵌入或基于复述(paraphrase)的近似重复检测。
为什么数据会被污染:因为互联网数据里可能本来就有测试集;而合成数据同样可能被污染(如果你用模型生成数据,而模型见过测试集)。
过拟合:更微妙的版本
(参考时间: 01:08:35)
讲者指出,还有一个与污染相关但略有不同的问题:标准的基准数据集,达到"人类水平"所需的时间越来越短——最近的基准甚至不到六个月。
▶ 基准数据集的"保质期"在缩短
在 YouTube 中打开(01:09:40)
不清楚这是因为污染,还是因为大量的人在这些测试集上做超参调优——但无论是哪种,都是过拟合问题。
缓解办法:
- 私有测试集。讲者提到(大约两周前)有一篇论文发布了 GSM1K:它重新收集/重采样了 GSM8K 这类数学题,然后比较模型在新旧两个数据集上的表现。
▶ GSM1K 与 GSM8K 上的表现对比
在 YouTube 中打开(01:10:00)
结果是:开源模型在新数据上表现明显更差,而 Claude 和 GPT-4 没有这个问题。
-
动态测试集:理想情况是每隔 X 天就有新的指令/输入进来,让数据集持续滚动——Chatbot Arena 就是这样做的,这确实有效。
-
检测污染,而不是消除它。两个"很酷"的小技巧:
- 看答案的概率:如果模型对某个答案异常确定,它很可能在训练中见过这个答案;
- 看测试集的顺序:如果模型是在这个测试集上预训练的,它多半"以为"样例 2 跟在样例 1 后面。所以把样例 1 和样例 2 对调,如果对数似然下降,那么很可能模型预训练时见过这个数据集。
9.3 偏差:单一文化、单一指标、单一视角
(参考时间: 01:13:22)
📷 本节在讲座大纲中的位置
回到原视频 (01:13:22)
单一文化:只测英语
讲者引用了一篇(他记得是 2021–2022 年的)论文,分析了 ACL 2021(NLP 领域最主要的会议之一)的口头报告论文:461 篇论文中,70% 只看英语,40% 只看准确率——也就是说,很少有人关注多语种,也很少有人关注效率、可解释性或公平性。更令人沮丧的是,另有一篇分析 2008 年另一场会议的论文,结论基本一样——说明多年来并没有改善。
更讽刺的是:多语种基准其实是有的,比如 MEGA、GlobalBench、XTREME 之类,覆盖 30–40 种语言、多种任务。问题不是没有基准,而是学术界没有激励去用它们。讲者说:如果你有机会,请用这些基准。
编者说明:讲者列举这几个基准时语速很快,字幕作 "Mega Global bench extreme",编者推断他说的是 MEGA、GlobalBench、XTREME 这一组多语种基准,但无法完全确认具体的三个名字,详见文末「已知疑点」。
单一指标:把一切压缩成一个数
(参考时间: 01:12:39)
- 聚合方式本身就有问题(前面讲的"把不同含义的列直接平均");
- 我们只关心性能,不考虑计算效率——而现实世界里我们很在乎;
- 也不考虑偏差;
- 而且每个样本被赋予相同的权重。这对少数群体本来就不公平;更普遍地说,如果在一个 Agent 基准里,一个样本是"写出要上生产的代码",另一个是"告诉我在哪儿能买到最好吃的汉堡",两者实际价值天差地别,但现在的评测完全不管这个;
- 也没有考虑不同人有不同偏好。
课件给出了几个反例性质的"出路":
- 考虑计算效率:MLPerf 的做法不是最大化某个基准上的性能,而是"在最短时间内达到该性能"——这样准确率和速度(训练或推理)都被纳入考虑。
- 考虑偏差:Discrim-Eval(讲者说是 Anthropic 的)用模板来测试偏见。例如,问"某人是否应该保留他的保险",然后改变模板中人物的种族或性别,看模型的决策如何变化。讲者说,"不幸但也不意外"的是:某些群体明显受到更多歧视。
编者说明:字幕把这一步的机构听成了"entropic",从上下文(模板化、改变种族/性别、测保险决策)判断,应当是 Anthropic 的 Discrim-Eval(Tamkin et al., 2023)。讲者原话是"来自 Anthropic"。
英语中心主义比你想的更深
(参考时间: 01:15:00)
讲者说,多语种问题比你以为的更普遍:BLEU 和 ROUGE 本身就假设你知道词在哪里断开——也就是假设有空格分词。他做过泰语和越南语的工作:越南语词之间有空格,泰语词之间没有空格,你根本没法直接跑 BLEU/ROUGE。
他的结论是:"这远不只是数据的问题——我们所有的算法本身,都是围绕英语(或至少是西方语言)设计的。"
LLM 评委的偏见会被放大
🖼️ Slide 75
(参考时间: 01:15:35)
使用 GPT-4 做标注很酷,但有一个副作用:因为 GPT-4 高度一致,它的偏见会被整个 NLP 社区成倍放大,形成单一文化。
有一项很有意思的工作研究了 LLM 在公共舆论调查上的输出分布,想弄清楚LLM 默认反映的是哪些群体的意见。
▶ LLM 输出在公共舆论调查上更接近哪些群体
在 YouTube 中打开(01:15:40)
结论是:
- 仅预训练的模型,观点分布相对均衡,没有过度偏向某一个群体;
- 微调之后,模型开始明显向某些偏好倾斜——这并不意外,因为这正是训练方式决定的;
- 具体来说,这些模型的回答更像是来自"白人"以及"东南亚人群"的观点。讲者猜测,这很可能是因为监督微调和 RLHF 所使用的人类标注数据,是由东南亚的标注者标注的;
- 而且这些观点通常还高度受教育。
编者拓展|"模型反映谁的意见" 讲者提到的这项工作,很可能是 Santurkar et al. (2023) 的 Whose Opinions Do Language Models Reflect?(OpinionQA)。其方法正是把 LLM 的输出映射到美国大规模民意调查(如 Pew 的 American Trends Panel)的分布上,再与不同人群(按年龄、性别、收入、教育、政治倾向、种族等划分)的真实回答分布比较,用对齐度指标衡量"模型最像哪一类人"。 这个结果的含义很重要:"对齐"从来不是中立的——你选择哪一批标注者,就决定了模型最终代表谁。
9.4 最大的挑战:没有激励去改变
(参考时间: 01:17:26)
讲者说,前面讲的都是"挑战中的挑战",而最大的那个是:我们根本没有激励机制去换别的东西。
他引用了一篇分析 2019–2020 年机器翻译论文的工作:82% 的论文只报告 BLEU 分数。而正如前面所述,BLEU 有很多很多问题,我们也知道有更好的指标——但人们仍然没有被激励去看别的。事实上,审稿人通常就是要求你给出 BLEU 分数。
讲者对此表示理解:你希望自己的结果能和两三年前的方法比较。但这确实让学术界很难切换到别的基准。
不过,他给出了一个对比:这是学术界特有的问题。在现实世界里,如果你知道你的指标是坏的,换掉就是了。
10. 结语:不要相信数字,去看输出
(参考时间: 01:18:40)
📷 开放研究问题:评测的"科学"远远落后于"工程"
回到原视频 (01:18:40)
讲者的总结是:
- 不同阶段需要不同种类的评测,它们的理想性质也不同;
- 封闭式任务本质上是标准机器学习,但你仍然要仔细想清楚该怎么评;
- 开放式任务的指标走过了"内容重叠(BLEU/ROUGE)→ 模型化(BERTScore)→ 无参考(AlpacaEval、MT-Bench)"这条路;
- 聊天机器人的评测极其困难,但目前主要靠 LLM 当评委;
- 三个挑战:一致性、数据污染、偏差。
最后他说了一句非常实用的话:
现实中最好的评测方法,就是亲自去看你的输出。
他认为太多人只是相信数字。他回忆起做 Alpaca 的时候:一开始他们还挺相信 AlpacaEval,但一旦自己动手去玩这个模型,他们才意识到——用标准学术基准衡量它其实相当糟糕,但它实际上已经相当可用。"所以,不要依赖数字。"
课件上列出的开放问题是:评测的"科学"远远落后于"工程"的进步——如何衡量真正的理解 vs 模式匹配?如何防止基准污染与刷分?如何衡量校准、认知不确定性与诚实?如何把"能力"与"诱导(elicitation)"分开?如何对 LLM 的能力做整体性评测?以及元评测(meta-evaluation):谁来评测"评测基准"和"评测指标"?
课堂问答补充
问题一(关于偏差的两难):如果我们在一个很专门的领域里,用 GPT-4 做无参考评测,但自己人工抽查一小部分并据此给它排序——这是不是坏实践?因为人工审查会把我们自己的偏见带进来,但完全不看又无法发现 GPT-4 的偏见。
讲者的回答:他"并没有完全想清楚",但他更担心 GPT-4 的偏见,因为它是跨所有模型一致的——那会形成单一文化。相比之下,如果每个团队各自把自己的偏见带进来一点点,反而没那么糟。他说这不是最好的答案,但比"所有人都跟着同一种偏见走"要好一些。
问题二(如何防止自我欺骗):如果一个人用一个模型解决问题,再用 GPT-4 评测,然后自我说服"这很棒",但全世界和 GPT-4 都觉得它很糟——这个领域在结构上如何避免这种情况?
讲者的回答有两点:
- 这正是大家需要标准化基准的原因:即使所有人都知道标准基准是错的,至少大家知道它是怎么错的(它的偏差是已知的);
- 一个可能的方向是把 GPT-4 看成"能很好执行我意图的执行者",而不是"裁判"。目前我们没有把意图说清楚,所以它会带着自己预训练/微调带来的偏见进来。更好的做法是写一份非常详细的评分细则,明确列出"一个好的答案必须包含什么"——这正是教授给助教写评分细则时做的事。教授不会盲目相信 TA,而是相信 TA 能应用这份细则。讲者认为我们也应该这样使用 GPT-4,而目前大家并不是这么做的。
附录:课堂未展示的幻灯片
以下课件页来自官方讲义
cs224n-2026-lecture11-evaluation.pdf,但在本次录制(Yann Dubois 的讲座)中没有被讲到,或者主题与本次讲述内容不重合。为保持课件完整性,在此集中列出,并附简短的编者导读。 需要说明的是:这些页面属于另一版讲义(Yejin Choi 主讲版本),因此它们涉及的MMLU-Pro / HLE / GPQA / MAUVE等内容,在本书正文中没有对应的讲述。
A. 基准的演进:GPQA 与 Humanity's Last Exam
📷 GPQA:研究生级别、"谷歌都搜不到答案"的问答基准
回到原视频 (00:00:00)
编者说明:GPQA(Graduate-Level Google-Proof Q&A)发布于 2023 年 11 月,当时"看起来太难了";而到 2024 年 COLM 会议论文宣讲时,O1 已达到 78.3%。这是"基准保质期缩短"的又一个例子——也是本书正文反复提到的那条规律。HLE(Humanity's Last Exam)延续了同样的思路:把题出到人类专家都很难的程度。
B. 对抗基准:ANLI
编者说明:ANLI 的做法是把模型放进标注流程:先让模型做,再针对它做错的样本,让人来构造更难的样本。这样得到的测试集专门针对当前模型的弱点。它与正文讲的"动态基准"是两种不同的反制伪相关的手段。
C. 行为类基准
编者说明:行为类基准测的不是"会不会做题",而是模型的倾向性:谄媚(sycophancy,即一味顺着用户说)、诚实(是否承认不知道)、讨好、以及模型持有什么样的观点。这部分与正文 9.3 节"模型反映谁的意见"是同一主题的延伸。
D. 信息论指标:熵、多样性、散度
编者拓展|两种熵 - 香农熵:随机变量的"平均意外程度",也就是平均信息量:
$$H(X) = -\sum_{x} p(x)\log p(x)$$
- 冯·诺依曼熵:香农熵在量子力学中的推广。它不作用在样本的概率分布上,而是作用在样本之间相似度构成的密度矩阵 $\rho$ 上,取值是 $\rho$ 的特征值上的香农熵:
$$S(\rho) = -\operatorname{tr}(\rho \log \rho) = -\sum_i \lambda_i \log \lambda_i$$
通俗地说:把"样本"当成基向量,把"它们有多像"写进一个矩阵,再对这个矩阵求熵。
编者说明:课件用两个语料库提问:能不能用上述某种熵来度量语料的多样性?理论上可以(👍),实践上则有疑问(🤔)。语料库 1 是两句毫无关系的话("我的马吃了我的作业" / "量子纠缠使隐形传态成为可能"),多样性高;语料库 2 是两句几乎一样的话(201 盏灯罩争论拖船的黏度 / 202 盏灯罩争论拖船的黏度),多样性低。用途包括:衡量基准本身的多样性,以及衡量 LM 输出的多样性。
编者说明:G-Vendi score(Jung et al., 2025)把 Vendi score 算在梯度向量上,据说比任何其他多样性度量都更能预测分布外(OOD)性能。
编者说明:在信息论指标之前,人们用 Self-BLEU(Zhu et al., 2018,自己和自己的 BLEU 越高说明越不多样)和 Distinct-n(Li et al., 2016,统计不同 n-gram 的比例)来度量多样性。
编者拓展|KL 散度与"零支撑"问题 KL 散度衡量两个分布的差异:
$$D_{\mathrm{KL}}(P \,|\, Q) = \sum_x p(x)\log\frac{p(x)}{q(x)}
\quad\text{(连续情形:} \int p(x)\log\frac{p(x)}{q(x)}\,dx\text{)}$$
课件问:能不能用 KL 来度量"LLM 的语言"与"人类的语言"之间的散度?理论可以(👍),实践困难(🤔): - 两个连续、高维分布之间的 KL 在计算上基本不可行; - 更致命的是,如果 $P$ 和 $Q$ 的支撑集不相交($q(x)=0$ 而 $p(x)>0$),估计会直接失败——除以零。
用途举例:比较不同解码算法能否产生更像人类的文本;检查差分隐私或水印算法扰动后的文本分布是否仍接近原始分布。
编者拓展|MAUVE 怎么绕开 KL 的困境 MAUVE(Pillutla et al., 2021)的核心是量化,把不可解的连续 KL 变成可解的多项分布 KL: 1. 用 LLM 把每个文本样本编码成神经向量; 2. 对两组样本做 K-means 聚类; 3. 在这 k 个簇上得到两个多项分布,再计算它们的 KL。
因为簇的数目有限、且每个簇都有非零概率,"支撑集不相交"的问题就被避开了。
编者说明:MAUVE 的最终得分来自在 KL 与反向 KL(reverse KL)之间做平滑插值所形成的一条"前沿曲线"。直觉上:单独用 KL 会奖励"覆盖不足"(漏掉大量人类模式),单独用反向 KL 会奖励"生成不准"。取两者的折中,能同时惩罚这两种失败。
E. 生成-验证鸿沟(Generator–Validator Gap)
编者说明:课件给出的例子很生动:截至 2023 年 9 月,ChatGPT 能正确回答 "7+8 等于几"(答案 15),但当你问它 "7+8=15,对还是错" 时,它会回答 "错"。 即便是当时最强的 GPT-4,也只有 76% 的情况下"生成"与"验证"是自洽的。这与正文 9.1 节的"一致性"问题是同一类:模型能生成正确答案,却认不出正确答案——说明它内部的"判断"与"生成"走的不是同一条路径。
编者说明:官方课件中这一页没有可供提取的文字,推测为整页图片(对比或示意图)。此处保留其存在。
附:参考与延伸阅读
编者补充
- ANLI
- BERT
- BERTScore
- BLEURT
- Chatbot Arena
- CNN/DailyMail
- CS224N / Ling284: Natural Language Processing with Deep Learning
- CS224U
- GLUE
- GSM8K
- HELM
- Hugging Face Open LLM Leaderboard
- LegalBench
- MedQA
- MLPerf
- MMLU
- SNLI
- Stanford CS224N: NLP with Deep Learning | Spring 2024 | Lecture 11 - Benchmarking by Yann Dubois
- SuperGLUE
已知疑点
本节集中列出本书在重构过程中无法确定的地方,供读者自行判断。凡是有依据或时间点的,都尽量标注。
- 视频与官方课件的版本不匹配(最重要的一条)
本视频标题为 Spring 2024 | Lecture 11 - Benchmarking by Yann Dubois,讲者是 Yann Dubois(斯坦福博士生);而随附的官方幻灯片
cs224n-2026-lecture11-evaluation.pdf署名讲者为 Yejin Choi,内容标注为 Lecture 11: Evaluation。两者是同一门课、不同年份、不同讲者的两版讲义。因此: - 书中所有
SLIDE:n@HH:MM:SS的幻灯片编号来自官方课件,而时间戳是按内容主题对齐的近似值,并非"该页确实在这一秒展示过"的逐帧记录; -
反过来,讲者在錄音中展示的某些图(例如 AlpacaEval 相关性图、GSM1K 对比图、MMLU 三实现分数表)并不在提供的课件文本里,本书对这些使用了
SCREENSHOT:。 -
课件许可协议未标注 提供的
course/slides_text.md只给出文件名与页面文字,没有给出具体的 CC 许可名称与作者署名格式。本书按惯例注明了课程与讲者,但未能照抄许可名。如需正式引用,请以课程主页(https://web.stanford.edu/class/cs224n/ )上的实际声明为准。 -
疑似听写/同音错误(编者推断,非讲者原话)
| 字幕中出现 | 编者推断 | 依据 |
|---|---|---|
| "harras he / harass he" | 某位在推特上分析代码基准污染的学者,名字无法确认 | 上下文是"如果你没关注他,你应该关注" |
| "F 1.5" | Phi-1.5(微软) | 上下文是"微软的模型""也有类似指控" |
| "dis remal" | Discrim-Eval(Anthropic) | 上下文是"用模板改种族/性别、测保险决策" |
| "ml puff" | MLPerf | 上下文是"在最短时间内达到该性能" |
| "beer QA" | 可能是 BeerQA,也可能是其它 QA 数据集 | 与 HotpotQA 并列出现 |
| "mty bench / empty bench" | MT-Bench | 与 AlpacaEval 并称"两个最常见的 LLM 评测" |
| "Chris Peach" | Christopher Potts(CS224U) | 上下文是"他讲不同指标的课非常好" |
| "Shakar / Shikhar" | 下一讲讲 Agent 的同学,全名无法确认 | 讲者说"Shikhar 会来讲 Agent" |
| "Mega Global bench extreme" | 可能是 MEGA / GlobalBench / XTREME 中的若干 | 上下文是"覆盖 30–40 种语言的多语种基准" |
| "Suzanne / Susanne" | 某位质疑 Phi-1.5 污染的人,名字无法确认 | 与第 3 行同段出现 |
- 讲者本人明确表示不确定的地方
- 关于 HELM / 原版 MMLU / harness 三种实现分别对应哪种取答案方式,讲者原话是"我不太确定哪个是哪个",并猜测 harness 用的是"计算对数似然"那一种。书中保留了这种不确定性。
- 关于"短答案问答(short-answer QA)如何自动判定正确",讲者在回答学生提问时说"我其实不知道",随后补充了 HotpotQA 之类数据集使用 F1 与精确匹配(exact match)的做法。
-
关于"人类评测只有 5% 可复现"的那篇论文,讲者说"我记不清是哪一年,我猜是 2021 年",论文数量"我记的是 128 篇",时间跨度"2015 到 2020"。这些数字未被当场核实。
-
与官方讲义相冲突或表述含糊之处
- 讲者在讲 BLEU 时说自己"总记不住 BLEU 和 ROUGE 的全称"——本书按课件与通用定义给出全称,若与讲者原意不符,以课件为准。
- 讲者说"MMLU 过去四年从 25% 涨到 90%",这是一个大致量级描述,并非精确的文献数据点。
- 关于 AlpacaFarm 中"支付加州最低工资 1.5 倍、实际拿到 2~2.5 倍"的数字,来自讲者口头回忆,未见文字来源。
-
关于"70% 的论文只测英语、40% 只测准确率、共 461 篇"的数字,讲者是在口头转述另一篇论文,本书未能核实原始出处。
-
编者的改写判断
- 第 9.3 节中"单一文化"一词,是编者对讲者 "monoculture of NLP benchmarking" 的中译。
- 书中若干处把讲者略显跳跃的表达整理成了"问题—原因—结论"的结构;凡涉及事实性内容的补全,均已用
编者说明/编者拓展标出,未冒充讲者原话。 - 讲到"agent 评测需要沙盒"时,讲者没有点名任何具体沙盒工具;本书未擅自补写工具名。
附录:课堂未展示的幻灯片
附录:官方幻灯片里课堂未展示的页
下面这些页来自官方幻灯片,但课堂录制里没有对应的展示画面。由
vb slides自动补入,供对照查阅。
🖼️ 第 17 页幻灯片 · The significance of SQUAD and SQUAD-2
🖼️ Slide 13
🖼️ 第 14 页幻灯片 · Lecture Plan
🖼️ Slide 24
🖼️ Slide 27
🖼️ Slide 28
🖼️ Slide 29
🖼️ 第 32 页幻灯片 · 32
🖼️ 第 33 页幻灯片 · 33
🖼️ Slide 43
🖼️ Slide 44
🖼️ Slide 45
🖼️ Slide 46
🖼️ Slide 47
🖼️ Slide 48
🖼️ Slide 49
🖼️ 第 50 页幻灯片 · 50
🖼️ 第 67 页幻灯片 · Goodhart’s laws: “when a measure becomes a target, it ceases to be a good measure"