Chengshu@skadai · 2026.09.30
11,636 字 · 1,616 词 · 约 36 分钟

Stanford CS336 第十二讲精读:评估——从 perplexity 到 Agent 与安全基准,一场『评估危机』里的方法论

斯坦福 CS336(Language Modeling from Scratch, Spring 2025)第十二讲完整讲义,主讲 Percy Liang。这一讲把『评估』拆成四件事——输入、如何调用模型、如何评判输出、如何解读结果——然后带着这条线索走遍今天的评测版图:perplexity 与数据污染、MMLU / MMLU-Pro / GPQA / Humanity's Last Exam 这四代知识型基准、Chatbot Arena / IFEval / AlpacaEval / WildBench 这类指令遵循评测、SWE-bench / Cybench / MLE-bench 与 ARC-AGI 这些 Agent 与推理基准,以及 HarmBench / AIR-Bench / 越狱与『能力 vs 倾向』的安全评测。最后落到两个最容易被忽略的问题:评测离真实用例有多远(quizzing 还是 asking),以及『有效性』——训练集污染、数据质量与『我们到底在评测方法还是评测系统』。

本篇属于系列 Stanford CS336 精读 · 第十二讲

来源:YouTube 原视频(Stanford Online · CS336 Language Modeling from Scratch · Spring 2025 · Lecture 12: Evaluation)

来源说明 这是斯坦福 CS336《Language Modeling from Scratch》2025 年春季第十二讲的完整讲义,主讲人是 Percy Liang(这一讲里出现的 HELM、MedHELM 都是他团队的项目,所以讲到“我们建的评测框架”时他用了第一人称)。他开场就把态度摆明:“评估这件事,看起来简单,其实远不是。” 机械地看,评估无非是“给定一个固定模型,问它有多好”;但真正做过评测的人都知道,从选 prompt、选调用方式、选指标,到解读那个数字,每一步都充满了会改变结论的决策。 文中 18 张配图均截取自视频对应时刻的画面,并把该时刻的完整观点句(英文原句+中文翻译)拼合进图中。文中出现的所有数字——MMLU 的 57 个学科与 GPT-3 约 45%、MMLU-Pro 从 4 选项改 10 选项、GPQA 专家约 65% 与非专家约 30–34%、GPT-4 39% 与 o3 约 75%、Humanity’s Last Exam 的 50 万美元奖金池与 70,000 次投稿,o3 在 HLE 上约 20%、SWE-bench 的 2,294 个任务、MLE-bench 的 75 个 Kaggle 竞赛与“夺牌率”低于 20%、Cybench 里“人类要花 42 分钟、最长 24 小时”的题目、ARC-AGI 每道题“几百美元”的推理成本、HarmBench 的 510 种有害行为、MedHELM 的 29 位临床医生与 121 个临床任务、去污染常用的 13-gram 重叠阈值等——都是讲师课上的口播、幻灯片引用,或对公开论文、榜单与传闻的转述,不是本文独立核实的事实,请以原始论文与官方榜单为准。 另外两点提醒。其一,这一讲里最“实”的部分其实是那些方法论上的告诫,而不是具体分数:讲师反复说“没有唯一正确的评估,只有和你要回答的问题匹配的评估”,并且坦率承认很多榜单(包括他自己参与的 Chatbot Arena 生态)都存在协议问题、被刷分问题。本文照实转述这些怀疑,而不是把榜单数字当成结论。其二,自动字幕把不少专有名词听错了:MMOU / EMLU 是 MMLU,MMO Pro 是 MMLU-Pro,GBT / GPD / GB4 是 GPT / GPT-4,Andre Kapathy 是 Andrej Karpathy,Sweetbench 是 SWE-bench,Sidebench 是 Cybench,airbench 是 AIR-Bench,harm bench 是 HarmBench,if val 是 IFEval,Apaka eval 是 AlpacaEval,hell swag 是 HellaSwag,lambata 是 LAMBADA,pentry bank 是 Penn Treebank,Medelm 是 MedHELM,data comp 是 DataComp,chinchilla 相关口误照上下文处理,下文按通行写法记录。

TL;DR

  • 这一讲的主题,用一句话概括是:“没有唯一正确的评估”。 评估的形态取决于你要回答的问题:你是想买一个模型来用(采购决策),是想测量模型的“原始能力”(科研),是想知道它对社会的收益与风险(政策/商业),还是在开发循环里用它来选干预手段(模型开发者)?同一个分数,对这四种人的含义完全不同。
  • 评估可以拆成一个四步框架:输入(prompt 从哪来)→ 如何调用模型(zero-shot / few-shot / CoT / 工具 / RAG)→ 如何评判输出(参考标准、指标、成本、错误代价)→ 如何解读结果。 讲师说,语言模型对 prompt 仍然非常敏感,所以“评估必须把这种敏感性算进去”。
  • 评测对象本身就有歧义:模型、系统、还是方法? 多轮对话里,输入其实依赖模型;带 scaffold 的 Agent 里,你评的到底是模型还是整个系统?做研究时你想评的是“方法”,而方法评估只有在有清晰对照(control)时才有意义。
  • Perplexity 没有过时。 它比下游准确率更平滑(有逐 token 的对数概率,好拟合 scaling law)、覆盖每一个 token、而且只要训练测试不重叠就“不太可被刷分”。它的坑也很实在:你必须信任模型提供方给出的概率是合法分布;以及它在历史上就伴随着严重的训练集污染问题。
  • “可刷分”是贯穿这一讲的主线。 MMLU 从“没人做得到”到“人人 90%”,于是有了增加干扰项的 MMLU-Pro(4 选项 → 10 选项);GPQA 用“PhD 级 + Google-proof”把难度推到极致;Humanity’s Last Exam 干脆用奖金池和共同署名征集题目、再用前沿模型筛掉“太简单”的题。每一个新基准的诞生,几乎都是上一个基准被饱和/被刷分的结果。
  • 开放生成的评测至今没有解决。 Chatbot Arena 用真人两两偏好算 Elo,优点是数据是活的、动态的;但它已经被“排行榜幻觉”(Leaderboard Illusion)这类论文指出协议问题(特权访问、多次提交等)。IFEval 只能验证“约束”(句数、词数、禁用词)而验证不了语义;AlpacaEval 用 LLM 当裁判,被抓到过“写得更长就赢”的偏差(后来加了长度校正);WildBench 则从真实人机对话里取样,并用 checklist 让裁判模型“先想再判”。
  • Agent 基准把“评测什么”这个问题放大了。 SWE-bench 给代码库 + issue,要求提交让单测通过的 PR;Cybench 是夺旗(CTF)式的网络安全任务;MLE-bench 是 75 个 Kaggle 竞赛。这些任务的准确率都还很低(约 20% 上下),而且“难度不等价”——讲师特别提到,人类解决某些题要花 42 分钟、最长的要 24 小时,而模型现在的进展值得盯着看。ARC-AGI 则是另一条路线:没有语言、没有世界知识,只看纯粹的推理模式补全,它 2019 年就被提出、在大模型时代一度几乎全军覆没,但新模型可以靠大量算力(每题数百美元级别)把分数推上去。
  • 安全评测的难点不在“拒答率”,而在概念本身。 HarmBench 用 510 种有害行为测“会不会照做”;AIR-Bench 则把安全锚定到真实的法规与公司政策上,构建分类体系再出题。讲师强调两个区分:能力(capability)与倾向(propensity)——闭源 API 下你在意的是倾向(它肯不肯做),开源权重下能力同样重要(微调就能把安全约束拆掉);以及安全并不等于拒答,减少幻觉、减少错误信息在医疗等场景里既更安全也更“有能力”。最后他还提醒:单看拒答率可以被“什么都不答”刷到榜首,安全评测必须和能力评测配对看。
  • 离真实世界有多远,是评测的第二个大问题。 标准化考试题与真实用例差得很远;真实流量里还混着大量“喷子/spam”。他给了一个很有用的二分:quizzing(提问者已知答案,纯粹考系统) vs asking(提问者不知道答案,想借助系统得到它)——只有 asking 才真正产生用户价值。MedHELM 就是往真实走的一个例子:让 29 位临床医生列出真实执业中的用例,最后做成 121 个临床任务。
  • 有效性(validity)是「不可能三角」的第三只角。 现在训练数据来自整个互联网且不公开,“去污染”几乎是mission impossible:常见做法只是按 13-gram 重叠删文档,而改写、翻译都能绕过它。讲师的建议分两条路:技术上“用查询反推测试集有没有被训练过”,制度上“鼓励社区把’我检查过污染’变成报告规范”。另外,数据集本身的质量问题被严重低估——他点名说 MATH、GSM8K 一类的高分里有相当比例其实是标注噪声,“把噪声修掉,分数自然就上去了”。
  • 收尾的区分很关键:我们在评测“方法”,还是在评测“系统”? 以前的评测是固定训练/测试集、比一个新架构或新算法;而今天的模型是“什么都可以上”的系统。像 NanoGPT speedrun(固定数据、比谁最快达到某个 loss)和 DataComp(固定算力、比谁选的数据更好)这样的设计,反而是为了逼出算法创新。对用户来说,评测系统才是有用的;但你得先把游戏规则定清楚。

图 1|评估的入口:各大榜单把同一批基准的数字摆在一起,但数字背后的含义并不相同

一、这一讲在哪:为什么“评测”看起来简单、其实很难

这一讲是 CS336 里少数不训练模型、不讲架构的课。它处理的是一个听起来很“工程”的问题:给定一个训练好的模型,怎么知道它有多好?

Percy 开场给出的第一个例子,就是论文里的那张表——Llama 4 的模型卡上排着 MMLU-Pro、Math 500、GPQA,还有一堆多模态的分数;HELM 把几十个标准基准汇总成一个可比的榜单;Artificial Analysis 则把“智能指数”和“每百万 token 的价格”画成一张帕累托前沿图;OpenRouter 用“人们实际把 token 花在哪个模型上”做一个隐式排行榜;Chatbot Arena 用真人两两偏好算 Elo;再往外还有 X 上的“vibes”——某个模型做出了一个惊艳的例子,被转发放大。

这些数字和排名彼此不一致。Percy 引用了 Andrej Karpathy 的判断来收束这一段:我们现在处于一场“评估危机”(evaluation crisis)之中——有些基准(比如 MMLU)曾经很值得一看,但它的前提假设如今很可疑:要么题目饱和了,要么已经被刷分了,要么两者兼有;Chatbot Arena 这类众包排行榜也有自己的协议问题;于是出现了“一大堆模型、一大堆基准、一大堆数字,但你并不清楚哪一种才是对的”这种局面。

图 2|Karpathy 对现状的判断:我们处在一场“评估危机”里(图为讲座引用的原推文)

他随即给出了本讲的第一个核心论断:“并没有唯一正确的评估,一切都取决于你想回答什么问题。” 这句话不是修辞,它直接决定了你该选什么基准:

  • 用户/公司要做出采购决策:“我该用 Claude、Gemini、o3 还是别的?”——那么他关心的是在自己的具体用例上哪个模型更好、更便宜。
  • 研究者并不真的要用这个模型,他想知道的是“原始能力”:AI 到底有没有在科学意义上进步?
  • 政策制定者/商业机构想知道的是“在某个时间点,模型整体带来的收益与危害是什么”。
  • 模型开发者做评测,是要拿到反馈去改进模型:分数低了,试一个干预,分数涨了,就保留它。评估因此嵌进了语言模型的开发循环。

评估是一个“先有目标、再翻译成具体评测”的过程。这也是为什么他会说,评估甚至会成为“事情往哪里走”的先行指标:一旦你把某个数字立成指标、所有人都在追着它优化,它就会反过来塑造模型本身的样子(Goodhart 定律的机器学习版本)。

二、评估的四个问题:输入、调用、评判、解读

为了让“评估”这件事变得可讨论,Percy 给了一个非常实用的四步框架(图 3):

  1. 输入是什么? prompt 从哪来?覆盖了哪些用例?有没有覆盖长尾?有没有能真正挑战模型的难题,还是只有那些“任何模型都能做”的常规样例?在多轮对话场景里,输入本身是依赖模型的——这会让评测变得更复杂。
  2. 你怎么调用语言模型? zero-shot、few-shot、chain-of-thought,各自都会引入方差;要不要让模型用工具(算术、检索、RAG)?更根本的是:你评测的对象是语言模型,还是整个系统? 模型开发者可能只关心前者,而用户根本不在乎你用了几个模型、用了什么 scaffold,他关心的是系统整体。
  3. 你怎么评判输出? 参考输出干不干净、有没有错?代码生成用 pass@1 还是 pass@10?要不要把成本算进去(很多榜单把成本边缘化了,而“第二名比第一名便宜十倍”是完全可能的,所以帕累托前沿比单一排名更有信息量)?错误是不是等价的?开放生成又该怎么评?
  4. 你怎么解读结果? 91 分算好吗?能不能部署给用户?这个模型真的学到了某种泛化吗(这时你就必须面对训练集污染)?你评测的到底是模型、系统,还是方法?

图 3|评估的四步框架:输入 → 如何调用模型 → 如何评判输出 → 如何解读结果

框架里最容易被忽略的是第 4 点向第 2 点的回环:“对象”是会变的。 在多轮对话里,如果拿一个固定的用户脚本去测另一个模型,助手可能被推到一个它自己永远走不到的对话状态里,评测因此失真;在 red teaming 里,你反过来需要把评测“适配”到模型上,才能高效地找到那些极稀有的长尾失败——但一旦你为模型定制了评测,你也就失去了跨模型可比性。这是一个无法两全的取舍。

三、Perplexity:它没有过时,但你必须知道它的坑

讲座中段回来补了一个“老概念”:perplexity。之所以要补,是因为一位同学问:“我们一直假设 perplexity 能反映能力,有没有它反映不了的东西?“Percy 的回答分两层:

  • 短期看,perplexity 与下游任务表现的相关性并不稳定——上一讲 Tatsunori 展示的那张散点图“到处都是”;相关只在足够大的尺度跨度上才重新成立(强模型在大多数事情上就是更强)。
  • 长期看,perplexity 仍然是不可替代的工具:它是平滑的(你拿到的是每个 token 的对数概率,而不是“对/错”这种离散信号),所以拟合 scaling law 时更稳;它覆盖数据集里的每一个 token;而且——这一点和“可刷分”的主题直接相关——只要训练集与测试集是分开的,perplexity 本身几乎不是一个可刷的量。

语言模型的 perplexity,本质是“这个分布给某个数据集分配了多高的概率”。预训练在最小化训练集的 perplexity,评估就在测测试集上的 perplexity。2010 年代的语言模型研究就是在几套标准数据集上做这件事:Penn Treebank(可以追溯到 90 年代)、WikiText-103、10 亿词基准(One Billion Word Benchmark,来自机器翻译,里面大量是政府会议记录与新闻)。当年的游戏规则是:在指定的训练划分上训练,在指定的测试划分上算 perplexity。中 2010 年代最有名的一个结果是某篇 Google 论文把 perplexity 从 51 降到 30——这在那时是巨大的进步,也正是这套“挑战题”式的竞争推动了语言建模研究。

图 4|perplexity 的经典数据集,以及它作为评测手段的“能”与“不能”

GPT-2 改变了这个游戏:它在 40GB 的 WebText(从 Reddit 外链抓来的网页)上训练,然后不做任何微调,直接去测那些标准的 perplexity 基准。这是一种明确的分布外评估:训练在网页上、测试在 WikiText 上。结果是它在小数据集(比如 Penn Treebank)上没训练就超过了当时的最好水平,但在 10 亿词这种大数据集上仍然差了不少——因为一旦数据集足够大,“直接在这个数据集上训练”就比“依赖迁移”更强。

而这段历史留下的最大教训,是训练集污染(train-test contamination):你在网页上训练,怎么知道没有把测试集也吞进去了?标准做法是“去污染”——把测试集里与训练语料有 13-gram 重叠的文档删掉。但 Percy 强调这套做法很脆:改写、近义替换检测不出来,把题目翻译成另一种语言更是完全绕开 13-gram 检查,而模型的“翻译能力”足以在脑子里把题翻回来;反过来,如果训练语料里引用了测试集,又会产生大量误报。他的建议是宁可在污染问题上保守一点:如果你没训过某个语料却依然表现好,那是好事;但不要因此对外过度承诺模型性能。

Perplexity 还有一个很现实的坑:你得信任模型提供方。 下游准确率是可以“黑箱验证”的——你拿模型生成、自己写代码判分就行;但 perplexity 需要模型输出合法的概率分布(所有 token 的概率加起来等于 1)。如果对方接口只告诉你“这个 token 的概率是 0.8”,你是无法验证其余概率之和是否为 1 的;一个 bug(甚至不是恶意)就能让它在榜上“看起来很好”。所以做 perplexity 榜单时,通常要求拿到 logits 自己验算,或者至少核对实现。

讲座还顺手澄清了两类“长得像 perplexity、但不是 perplexity”的任务:cloze(完形填空),比如 LAMBADA(上下文特意选得很难、要读长上下文才能猜出词),以及 HellaSwag(给一句话,从候选里挑最合理的续写,本质上是比较各候选的条件概率、再按 token 数归一)。这些任务在大模型面前已经被“消灭”了——因为它们本质上就是 perplexity。Percy 特别举了 HellaSwag 的污染案例:它的数据是从 wikiHow 挖出来的,虽然经过了加工,但你上 wikiHow 就能看到与训练集高度相似的内容,“这不是逐字匹配,却同样危险”。

四、知识型基准的四代演化:MMLU → MMLU-Pro → GPQA → HLE

从 GPT-2/GPT-3 之后,语言模型论文的重点从 perplexity 转向了下游任务准确率,而其中有很长一段时间,“下游任务”约等于“知识型选择题”。这一讲按时间顺序讲了四代基准,它们恰好构成一部“军备竞赛”的简史。

第一代:MMLU(2020)。 Percy 称它“大概是如今语言模型最经典的标准化考试”。它的做法是从网上收集 57 个学科的多选题(从初等数学到美国外交政策)。要点在于它诞生的年代:2020 年时还没有指令微调模型,MMLU 是设计来评估基座模型的,所以当时必须用 few-shot 提示——你不能直接说“回答这个问题”,基座模型会自己续写出一堆新问题;标准做法是给五个“问题 + 答案”的样例,再让模型补最后一个字母。GPT-3 当时大约拿到 45%。

图 5|MMLU:57 个学科的选择题,设计初衷是评估基座模型,用的是 few-shot 提示

这里有一个被反复提到的解读问题:同一个分数,对基座模型和指令微调模型的意思并不一样。 Percy 说,如果模型是“没专门复习、只是广泛地读了很多数据”就把 MMLU 做得好,那说明它确实获得了某种通用能力;但如果你是在 57 个学科的题库上专门调过、或者针对提示格式做过优化,那高分更多反映的是“应考”,而不是“通用性”。他也提到 few-shot 的例子选择本身就会影响结果——样例的顺序、格式、正负例的分布都会改变输出(如果你给的全是正例,模型自然只会输出正例),这也正是后来“in-context learning 到底学到了什么”这一系列论文的起点:多数人认为 few-shot 主要是在告诉模型任务格式,而不是真的从五个例子里学会一门学科。

他还在 HELM 里现场演示了 MMLU 的单项页面:你可以点进“计算机科学”,看到每一道题的输入、选项、模型预测和是否正确,甚至能看到喂进去的完整 prompt(五组问答对 + 最后一道题)。“看榜单数字”和“看逐题记录”是两种完全不同的评估体验,他显然更推荐后者。

第二代:MMLU-Pro。 到了 2023 年,前沿模型在 MMLU 上逼近 90%,榜首先后“饱和”。MMLU-Pro 的做法很直白:删掉一些噪声大、过于简单的问题,把选项从 4 个增加到 10 个——“总不能给所有人都发 A”。选项变多,猜测的基线从 25% 降到 10%,准确率随即明显下跌(讲师的幻灯片上写着“下降 16% 到 33%,没有原先那么饱和”)。它同时顺应了 chain-of-thought 成为主流评测方式的趋势:有些题确实需要“想一下”才能答。

图 6|MMLU-Pro:删噪声题、把选项从 4 个扩到 10 个,让分数重新有区分度

第三代:GPQA。 如果说 MMLU 的题是“从网上随便找的、难度不一”,GPQA 则明确要求 PhD 级难度,并把“搜索引擎也搜不到答案”当作设计目标(Google-proof)。它的出题流程相当重:先由领域内的人写题,再由专家验证、给反馈,作者据此修改,专家再验一次;然后交给非专家——非专家在其他领域是专家,但不许用 Google,平均花约 37 分钟作答,其结果被用来筛掉“其实很好猜”的题。结果是:PhD 专家大约 65% 的准确率,非专家即便能用 Google 也只有 30% 上下;当时 GPT-4 是 39%,而一年后 o3 已经到了约 75%。

图 7|GPQA:PhD 级、Google-proof 的题目,专家约 65%、非专家(可用 Google)约 30%、GPT-4 39%、o3 约 75%

第四代:Humanity’s Last Exam(HLE)。 名字起得颇有气势,难度也确实拉满:它用奖金池(讲课时的幻灯片写着 50 万美元)与共同署名权鼓励人们投稿题目,投稿后再用前沿语言模型筛掉那些“太简单”的题,并经过多轮评审;幻灯片上的漏斗是“70,000 次投稿 → 13,000 份提交 → 6,000 个候选 → 2,500 道公开/私有题”。题目仍然是选择题或短答、并且开始包含多模态内容。当时 o3 在 HLE 上大约 20%。

图 8|Humanity’s Last Exam:用奖金池与共同署名征集题目,再用前沿模型筛掉“太简单”的题

Percy 对这一代基准的批评很值得记下来。HLE 的构造方式几乎是“我会怎么设计”的反面:公开征集题目,吸引来的必然是一群“已经很懂大模型、知道什么样的题难、并且深度嵌入研究圈”的人,于是你会得到极其特殊、极不具代表性的题目集合——它们确实难,但不代表任何人真正关心的问题分布。换句话说,“难”是可以被制造的,而“代表性”不能。

另外,他现场回答了同学的两个尖锐问题:你怎么知道闭源模型(如 o3)没有偷偷联网搜索? 答案是“只能选择不联网的接口,然后你只能相信它”;你怎么知道被雇佣的非专家没用 GPT? 答案是“你只能要求他们不用,并且相信”。这暴露了这类基准的根本约束:很多评测的成立,依赖于“你信任某个不透明系统”这一前提。

五、指令遵循的评测:开放生成至今没有好答案

讲到 ChatGPT 之后,评估的重点出现了第三次转移:从“结构化的选择题/短答”转向指令遵循(instruction following)。这里的问题变了——不再有“标准答案”,而是“用户随手描述一个新任务,模型得把它做出来”。于是核心难题变成:你怎么评一个开放式的回答? Percy 说,这个问题到今天仍然没有解决,他给了五种各有利弊的实践。

Chatbot Arena 大概是最popular的一个。机制是:互联网上的随机用户输入一个 prompt,从两个匿名模型各得一个回答,用户投票选更好的那个,由这些两两偏好算出 Elo 分。它的优点是“活”——输入不是静态题库,而是持续流入的真实请求,Elo 的机制也能自然地容纳新模型进入榜单。但 Percy 花了不少篇幅讲它的问题:

  • 它已经变成了模型厂商争夺的目标(连 CEO 都在转发自己的 Arena 成绩),一旦一个指标被当作宣传素材,它就会被优化、被“hack”;
  • 有论文(Leaderboard Illusion)系统性地指出了协议问题:某些提供方获得了特权访问、可以多次提交等等;
  • 更根本的是自愿参与者的分布问题:“互联网上随机的人”到底是什么分布?

图 9|Chatbot Arena:真人两两盲投、用 Elo 排名,是“活”的评测,但协议问题也被公开批评

IFEval 走另一条路:它不去评语义,而是给样例合成一堆可自动验证的约束——回答至少/至多多少句、多少词,必须包含某些词、不能出现某些词,必须以某种格式输出。优点是约束可以用脚本精确验证、不需要人工也不需要 LLM 裁判;缺点是它“只评约束、不评内容”:你让它写一个关于小狗的故事且不超过 10 个词,它只看“是不是 10 个词的故事”,完全不管故事好不好。所以 Percy 的定位很清楚:这是一个“部分评测”,而且显然可以被针对性优化。

AlpacaEval 则用语言模型当裁判(LLM-as-judge):计算你的模型相对某个参考模型的胜率,判分的是 GPT-4 这类模型。它一出来就有人质疑偏见——“你是在问 GPT-4 喜不喜欢别人的回答,而且参考回答可能就是它自己生成的”——但实践上它确实是有效的。这里有一个非常著名的翻车案例:2023 年之后,一批小模型在 AlpacaEval 上表现异常好,后来被发现是把回答写得越来越长、从而“骗”过了裁判;于是后来加上了长度校正的变体。Percy 对它的评价是:它和 Chatbot Arena 的相关性不错(也就是在提供“同一类信息”),但它是自动的、可复现的、便宜的——如果你要的是快速迭代,这是合理选择;如果要的是“人类真实偏好”,还得看 Arena。

WildBench 是第四个例子:它的输入不是自己造的,而是从一个真实部署的对话机器人那里收集的真实人机对话;判分同样用 LLM,但给裁判一份 checklist,要求它逐条核对回答是否覆盖了关键点、而不是只给一个整体印象。它同样与 Chatbot Arena 有相关性。Percy 在这里说了一句略带反讽的话:“评测的评测”(也就是这个领域的元问题)最终变成了“看它和 Chatbot Arena 相关性有多高”——仿佛众包排行榜成了这个领域的 ground truth。

ARC-AGI 则代表另一类哲学(下面 Agent 部分还会展开):它不看知识、只看纯粹的模式补全与推理,题目是彩色网格的变换示例,人类一眼就能看出规律,但因为没有语言描述、没有世界知识可依赖,模型一度几乎做不出来。

小结这一节的方法论: 开放生成的评估没有“正确解”,只有“代价不同的近似”。凡是可自动验证的(IFEval 的约束、AlpacaEval 的裁判)都可被针对性优化;凡是依赖真人的(Arena)都难以复现、且容易被“当指标用”而扭曲;而**“与 Arena 的相关性”这个元指标,本身也只是一个代理**。

图 10|AlpacaEval:用 LLM 当裁判算胜率,快、可复现,但要小心“写长就赢”这类偏差

六、Agent 基准:当“要做什么”本身也需要迭代

有些任务不是一次生成就能完成的:你需要运行代码、访问互联网、用计算器,还需要在一段时间里反复迭代(写一个项目就是这样)。这就是 Agent 出场的地方。Percy 给了一个干净的定义:Agent = 一个语言模型 + 一层 scaffold,而 scaffold 就是“决定语言模型如何被调用”的程序化逻辑。他讲了三个 Agent 基准,以及一个“另类”的推理基准。

SWE-bench:给你一个代码库和一条 GitHub issue 描述,你要提交一个 PR,目标是让单元测试通过。评测指标就是单测的通过情况。这个基准后来成了 Agent 评测里最有影响力的一个。

图 11|SWE-bench:给代码库 + issue,要求提交一个能让单元测试通过的 PR

Cybench:网络安全方向的“夺旗赛”(capture the flag)。Agent 拿到一台服务器的访问权限,目标是攻进去、取出一个密钥。要完成它,Agent 必须真正执行命令、迭代地探索。讲师展示了这类任务的标准 Agent 架构:让语言模型先“想一下”、做计划、生成一条命令;命令被执行,结果写回 Agent 的记忆;如此循环,直到超时或成功。

MLE-bench:75 个 Kaggle 竞赛。给 Agent 一份竞赛数据集说明,它要自己写代码、训练模型、debug、调超参、提交结果——本质上是一个“自动做 Kaggle 的 Agent”。夺牌率(拿到任意奖牌)至今仍在 20% 以下,即便最好的模型也很低。

这几个基准最有趣的地方是**“难度不等价”:Cybench 的题目按“人类解决需要多长时间”来标难度,最好成绩对应的题目人类要花 42 分钟,而最长的题目人类花了 24 小时**。这就引出一个方法论问题:一个把 42 分钟题做对的 Agent,和一个能把 24 小时题做对的 Agent,显然不是同一种能力——但排行榜上的一个数字会把它们压平。他说这类基准“接下来一年值得盯着看”。

然后是 ARC-AGI,他认为这是“有点左场(out in left field)、但抓住了某种更纯粹的东西”的一类。前面所有任务都需要语言知识或世界知识;而能否把知识因子化出去、只留下纯粹的推理?ARC-AGI 的题目是彩色网格,给几组“输入图案 → 输出图案”的例子,要求你补全最后一个;人类很容易看出模式,但因为没有语言、没有描述,语言模型传统上几乎做不出来(幻灯片显示 GPT-4o 基本是 0)。后来新的推理模型能做得不错,但代价是每道题要花掉“数百美元”级别的算力——于是它从“能力测试”变成了“能力 + 算力预算”的联合测试。

图 12|ARC-AGI:没有语言、没有世界知识,只有纯粹的图案推理;2019 年提出,大模型时代一度近乎全灭

这一节最该记住的,是“Agent 让评估的对象问题彻底暴露了”。 同一个模型、换一套 scaffold,得分可以差很多;那么基准测的到底是模型能力,还是工程团队的 scaffold 能力?对研究者,这个区分意味着“必须设对照组”;对用户,只有“整个系统”的分数才是有意义的。

七、安全评测:难点不是数字,是“安全”这个概念本身

讲座进入安全部分时,Percy 先给了一个类比:汽车有碰撞测试与安全评级,食品有安全标准——那 AI 的“安全”该怎么测?他的诚实回答是:AI 还太早,人们根本还没搞清楚“安全”是什么意思。他列举了当时的几个实践。

HarmBench:整理出 510 种有害行为,逐条去提示语言模型,“看它会不会照做”。幻灯片里演示了一个具体实例——要求给出“用家用材料合成二甲基汞”的详细步骤——模型的正确行为是拒绝,而不同模型的拒答率差异很大。AIR-Bench 则试图把“安全”这个抽象概念锚定到真实的法规与公司政策上:先梳理不同监管框架与厂商政策,构建出一个安全分类体系,再据此出题。这样“安全”就不再是某位研究者的直觉,而是有外部依据的东西。

图 13|HarmBench:用 510 种有害行为逐条探测模型会不会照做

越狱(jailbreaking) 是安全评测里很特别的一环,因为它本质上是“对安全评测本身的评测”:模型被训练成拒绝有害指令,但你可以用巧妙的方式绕过。Percy 举了那个著名的工作——它在开源权重模型(Llama)上自动优化出一段“越狱后缀”,并且成功迁移到了 GPT-4:前面是一句“毁灭人类的逐步计划”,后面接一段自动优化的乱码,模型就乖乖给出了计划。他承认“照这个计划你也毁灭不了人类,所以这个例子也许不够现实”,但要害在于:只要能绕过一个安全干预,那么在真正高风险的问题上,这个干预就可能是不可靠的。

pre-deployment testing(部署前测试) 是制度层面的尝试:美国、英国等地的安全研究所与模型开发者建立了自愿协议——公司在发布前把模型提前交给研究所,研究所跑一批安全评估、出一份报告、反馈给公司以影响其部署决策。Percy 强调它不是强制的、目前也没有法律约束力,用的也还是前面讲的那些评测方法。

图 14|部署前测试:公司与安全研究所之间的自愿协议,让模型在发布前被第三方跑一遍安全评估

这一节的“真正内容”其实是三个概念区分,值得单独记下来:

  1. 安全是高度语境依赖的:它依赖法律、政治与社会规范,跨国家就会变化。所以不存在一个“文化中立的安全分数”。
  2. 安全 ≠ 拒答,能力与安全并不总是对立:有一种直觉是“越安全就越拒答、就越没用”,但 Percy 说这不成立——在医疗等高风险场景里减少幻觉,既让系统更安全,也让系统更有能力。拒答只是安全的一个很小的侧面。
  3. 能力(capability) vs 倾向(propensity):能力是“模型会不会做这件事”,倾向是“它肯不肯做”。基座模型往往就具备能力,是对齐让它降低了做坏事的倾向。你该关心哪一个,取决于部署形态:如果是闭源 API,“只有倾向重要”(只要我不能越狱,模型内部知道怎么做也无妨);但如果是开源权重,能力同样重要,因为任何人都能通过微调把安全约束拆掉。同一个模型,换个发布方式,安全画像就完全不同。

最后他还提到一个“可以轻易刷分”的陷阱:如果只看拒答率,那么一个“对任何问题都回答’我不能’“的模型就能登顶——所以安全评测必须与能力评测配对,证明它”确实会做事、同时又安全”(“capable and safe”)。

八、真实性与有效性:评测离现实有多远,以及那个“不可能三角”

安全之后,讲座收束到两个他称为“元问题”的方向:真实性(realism) 与 有效性(validity)。

真实性:标准化考试离真实用例有多远? Percy 说,真实流量里其实混着大量“喷子”和 spam,所以“有真实流量”并不等于“有理想的评测分布”。他给了一个非常实用的二分(我觉得这是这一讲最值得带走的概念之一):

  • quizzing(出题/考系统):提问者已经知道答案,他只是想测试这个系统——标准化考试题就是这一类。
  • asking(提问/求答案):提问者不知道答案,他要用系统来获得答案。

只有 asking 才真正对用户产生价值、也更接近真实分布;而 benchmarks 里绝大多数是 quizzing。这个区分能立刻解释很多东西:为什么榜单很高的模型用起来还是不行——因为你用的是 asking,而它被优化的是 quizzing。

往前走的方向有两个。一个是用真实流量来评测:一旦系统部署了,你其实就拥有了真实数据,而且这些人是在付费使用、至少说明他们关心结果。Anthropic 的 Clio 工作是一个例子:把大量真实对话用语言模型做聚类,得到“人们到底在用 Claude 做什么”的分布(编程是最大的一类)。另一个是主动去构造真实用例:MedHELM 请 29 位临床医生回答“在你们真实的执业中,哪些场景语言模型能帮上忙”,最后归纳出 121 个临床任务——比起“医考选择题”,这才是往 realism 走的一步。但他也点出了随之而来的张力:真实性与隐私是冲突的——有些医疗数据集包含患者数据,因此不能公开托管在 HELM 上。

图 15|真实性的两种提问:quizzing(已知答案、考系统)与 asking(不知道答案、借助系统),只有后者产生用户价值

图 16|MedHELM:让 29 位临床医生列出真实执业中的用例,归纳出 121 个临床任务

有效性:训练集污染、数据质量,以及“测试集到底干不干净”。 Percy 说,这件事“以前不需要太操心”,因为基准设计者会认真划分训练/测试;而现在的模型在全互联网上训练、又不公开数据,所以基本上无法验证。他给了两条路:

  • 技术路线:用查询去反推测试集有没有被训练过。例如,如果模型对数据集内部的顺序表现出与数据集本身一致的偏好,那就可能是“见过”的信号。这类方法很巧,但也很脆弱。
  • 制度路线:把“检查污染”变成一种报告规范。有一篇论文调查了模型提供方报告数据集时的做法,发现虽然一些提供方确实做了检查,但这远不是常态。Percy 把它类比成“汇报数字时要给置信区间或标准误”——这是社区可以一起把标准抬高的地方。

他还补充了一个常被忽视的问题:数据集本身的质量。SWE-bench 就有过被修复的错误;而更普遍的是标注噪声——像 MATH、GSM8K 这种“90% 以上”的分数会让人以为题目很难,但其中相当一部分其实是标签噪声,“把噪声修掉,分数自然就上去了”。这句话的推论是:当你在比较两个模型的数学能力时,你有一部分方差其实来自数据集的标注质量。

图 17|有效性:训练/测试重叠是老大难,技术上可以“反推”,制度上应该把“检查过污染”变成报告规范

九、收尾:我们是在评测“方法”,还是在评测“系统”?

讲座的最后一页回到最初的那个抽象问题:“我们到底在评测什么?”

  • 以前(学术范式):我们评的是方法。固定训练/测试划分,提出一个新架构或新学习算法,训练、测试,得到“这个方法有多好”的数字。这要求有清晰的对照,否则数字没有意义。
  • 现在(工业范式):我们评的是系统——“什么都可以上”的系统:多模型路由、工具调用、检索、scaffold、提示工程…… 换一个组件,分数就变了。Percy 说这是一个重要的区分。

他指出,正因如此,一些“人为设计”的竞赛反而在保护方法学:比如 NanoGPT speedrun——给定固定数据集,比谁最快达到某个 loss(逼出的是优化/算法创新);以及 DataComp——给定固定算力预算,比谁选出的数据能得到最好的结果(逼出的是数据筛选方法)。它们通过把变量固定住,让“方法”重新可测。而对用户来说,评测系统才是有用的——用户不关心你用了什么方法。

所以这一讲的落点不是“哪个榜单更好”,而是:先定义清楚游戏规则,再想清楚你评估的目的是什么。 没有一个通用的分数能同时服务采购、科研、政策与开发迭代——你只能选择“与你的问题匹配的评估”,并诚实标注它的局限。

图 18|收尾:从“评测方法”到“评测系统”——对用户来说系统才是有用的,但你得先把游戏规则定清楚

我的笔记:这一讲值得记住的 10 句话

  1. “并没有唯一正确的评估。” 评估的形态由你要回答的问题决定:采购、科研、政策、开发迭代,各自需要不同的评测。
  2. 评估的四步框架:输入 → 如何调用模型 → 如何评判输出 → 如何解读结果。 每一步都有会改变结论的决策,而且“评测对象”会在模型/系统/方法之间滑动。
  3. 语言模型对 prompt 依然非常敏感:few-shot 的样例选择、顺序、格式都会影响分数,所以评估必须把这种敏感性计入不确定性。
  4. Perplexity 仍然不可替代:更平滑、覆盖每个 token、在训练测试分离的前提下几乎不可刷分;但你也必须信任提供方给出的是合法概率分布。
  5. “可刷分”是基准演化的驱动力:MMLU 饱和 → MMLU-Pro 加选项 → GPQA 要求 PhD 级 + Google-proof → HLE 用奖金池征集难题。每一个新基准几乎都是上一个被刷分的结果。
  6. 开放生成的评测没有正确解:可自动验证的(IFEval 约束、AlpacaEval 裁判)会被针对性优化;依赖真人的(Chatbot Arena)难复现、且容易被“当指标用”而扭曲。
  7. Agent 基准把“评测对象”问题放大:同一个模型换 scaffold 分数就不同;而且任务难度不等价——人类 42 分钟的题和 24 小时的题,不该被同一个数字压平。
  8. 安全 ≠ 拒答:减少幻觉在医疗等场景里既更安全也更有能力;能力(会不会做)与倾向(肯不肯做)必须分开,而开源权重让“能力”也必须被计入安全画像。只看拒答率,一个“什么都说不知道”的模型就能登顶。
  9. Quizzing vs Asking:榜单大多是“已知答案的考试”,而用户要的是“不知道答案时的求解”。只有 asking 才产生真实价值——这是“榜单很高、用起来不行”的根源之一。
  10. 污染与数据质量是被低估的变量:13-gram 去污染挡不住改写与翻译;而 MATH、GSM8K 一类基准里有相当比例的标签噪声。“分数涨了”可能只是噪声被修掉了。

附:课程信息与时间轴

时间 内容
00 开场:评估看起来简单,其实远不是
00 论文里的基准分数:MMLU-Pro、Math 500、GPQA、DROP、GSM8K
01 HELM 汇总榜单;Artificial Analysis 的“智能指数 × 价格”帕累托前沿
02 OpenRouter:用“人们实际把 token 花在哪个模型上”做隐式排行榜
02 Chatbot Arena 与 X 上的“vibes”
03 Karpathy 的判断:我们处在“评估危机”之中
05 评估决定了模型会怎么被建造:指标会反过来塑造模型
05 没有唯一正确的评估:采购、科研、政策、开发四种目标
07 评估的四步框架:输入、如何调用、如何评判、如何解读
10 评测对象是模型、系统,还是 scaffold?
12 研究评的是“方法”,方法评估必须有对照
14 取舍:把评测适配到模型(红队)会牺牲跨模型可比性
14 提问:perplexity 是否足以代表能力?
16 Perplexity 的定义:模型给数据集分配了多高的概率
17 2010 年代的标准数据集:Penn Treebank、WikiText-103、10 亿词
18 GPT-2:40GB WebText 上的分布外评估
20 训练集污染:13-gram 去污染拦不住改写与翻译
23 Perplexity 为何仍然有用:平滑、覆盖每个 token、难以刷分
25 Perplexity 的坑:你必须信任提供方的概率是合法分布
27 “perplexity 极大主义者”:最小化困惑度就是在做分布匹配
29 长得像 perplexity 的任务:LAMBADA 与 HellaSwag(以及 wikiHow 污染)
32 MMLU:57 个学科的选择题,为评估基座模型而设计(GPT-3 约 45%)
35 在 HELM 里逐题查看预测与喂进去的 few-shot prompt
36 few-shot 的样例选择、顺序、正负例分布都会影响分数
38 同样的 MMLU 分数,对基座模型与指令模型含义不同
40 MMLU-Pro:删噪声题,选项从 4 个扩到 10 个
41 GPQA:PhD 级、Google-proof,专家约 65%、非专家约 30%、GPT-4 39%
44 o3 在 GPQA 上到约 75%;黑箱模型的“有没有偷偷联网”问题
46 评测的信任前提:你只能相信不透明的系统按规则行事
48 Humanity’s Last Exam:奖金池 + 共同署名征集题目
51 讲师对 HLE 的批评:公开征题必然带来极不具代表性的题目集合
52 转向指令遵循:从结构化任务到开放式响应
53 Chatbot Arena:真人两两盲投 + Elo
54 排行榜幻觉:特权访问、多次提交等协议问题
55 IFEval:用可自动验证的约束做“部分评测”
57 AlpacaEval:LLM 当裁判算胜率,以及“写更长就赢”的偏差
59 WildBench:真实人机对话 + checklist 式裁判
1:00 转向 Agent:工具使用 + 多步迭代 + scaffold
1:00 SWE-bench:代码库 + issue,提交让单测通过的 PR
1:01 Cybench:CTF 式网络安全任务与标准 Agent 循环
1:02 MLE-bench:75 个 Kaggle 竞赛,夺牌率仍在 20% 以下
1:02 难度不等价:人类 42 分钟的题 vs 24 小时的题
1:03 ARC-AGI:剥离知识与语言,只看纯粹推理(以及数百美元级的推理成本)
1:06 转向安全:AI 的“碰撞测试”是什么?
1:06 HarmBench:510 种有害行为,逐条测模型会不会照做
1:07 AIR-Bench:把安全锚定到真实法规与公司政策
1:08 越狱:优化出的后缀能从开源模型迁移到 GPT-4
1:09 只看拒答率会被“什么都不答”刷榜,安全必须与能力配对
1:10 部署前测试:与安全研究所的自愿协议(不具法律约束力)
1:11 “安全”到底是什么:语境依赖、拒答只是很小的侧面
1:12 能力 vs 倾向:闭源 API 看倾向,开源权重下能力也要看
1:14 真实性问题:标准考试题离真实用例很远
1:14 Quizzing vs Asking:只有 asking 产生用户价值
1:15 用真实流量做评测:Anthropic 的 Clio 对话聚类
1:16 MedHELM:29 位临床医生、121 个临床任务;真实性与隐私的张力
1:17 有效性:现在几乎无法验证测试集有没有被训练过
1:17 两条路:用查询反推污染;把“检查过污染”变成本报规范
1:19 数据质量:MATH、GSM8K 的高分里有相当比例的标签噪声
1:19 收尾:评测“方法”还是评测“系统”?以及 fix 游戏规则的必要性

说明:本文是视频内容的整理、翻译与转述,观点均来自主讲人;文中代码块仅为讲解用的示意整理,非官方作业代码。课程中引用的基准分数、模型规模、成本与实验设定(MMLU 的 57 学科与 GPT-3 约 45%、MMLU-Pro 的 10 选项、GPQA 的 65%/30%/39%/75%、HLE 的 50 万美元奖金池与 70,000 次投稿、o3 的约 20%、SWE-bench 的 2,294 个任务、MLE-bench 的 75 个竞赛、Cybench 的 42 分钟/24 小时、ARC-AGI 的数百美元成本、HarmBench 的 510 种行为、MedHELM 的 29 位医生与 121 个任务、13-gram 去污染阈值等)多为公开论文自述、榜单快照、讲师引用或估算,不是本文独立核实的事实,请自行核实原始论文与官方榜单。

讨论

这里是静态站点,没有内嵌评论区。如果这篇文章对你有用,欢迎通过 RSS 订阅后续更新。