评估 — 分数是怎么算出来的,以及它什么时候不可信
这一章讲三件事: 工具箱——每种任务用什么指标量( 为什么「跑个分」前要先问量的是什么); 三种评测范式各自的硬伤(基准怕污染、人工怕主观、模型判官自带三种偏差); 按能力维度的数据集地图,和每类能力已经暴露的评测陷阱。 主走查: Pass@k 的无偏估计——为什么算一个概率不用真跑成千上万次。
1. 指标工具箱:先问量的是什么
「跑个分」之前,先看清每把尺子量什么。原书把常用指标按任务归类1。 表里三个词先说掉:精确率,即报为正的里多少真对。
召回率,即真为正的里多少被捞出。
F1(F1 就是精确率与召回率的调和平均)。
| 任务 | 指标 | 它实际在量什么 |
|---|---|---|
| 语言建模 | 困惑度(PPL) | 模型对参考文本的「惊讶程度」——一段文本出现的概率开 T 次方根的倒数,越低说明模型越觉得这话「顺理成章」2 |
| 分类(把输入归入预先定好的类别,如「好评/差评」) | 精确率(报为正的里多少真对)、召回率(真为正的里多少被捞出)、F1 | F1=两者的调和平均3 |
| 翻译/摘要 | BLEU / ROUGE | BLEU 数机器译文与参考答案的 n-gram 重合(精确率向);ROUGE 数参考答案被盖住了多少(召回率向),ROUGE-L 找最长公共子序列4 |
| 问答 | 准确率 / EM / F1 | 答对比例;EM 要求与标准答案一字不差5 |
| 任务执行 | 成功率 / Pass@k | 跑测试用例:生成的 k 份代码里至少一份通过的概率6 |
| 偏好对战 | Elo | 两两对战胜率换算成的等级分(第 08 章见过)——第 15 章给了它的更新公式7 |
主走查:Pass@k 的无偏估计为什么省算力
代码评测里,Pass@k 的原始定义是「生成 k 份代码、至少一份通过测试」的概率。 直接测要反复采样,成本极高。原书给了一个无偏估计,一笔账就能明白它为什么省6:
设:一道题,让模型一次生成 n = 20 份代码,其中 c = 5 份能通过测试。
问:Pass@k(k = 3)是多少?
笨办法:从 20 份里真抽 3 份,跑测试,重复成千上万次取平均——每道题都要跑这么多遍。
巧办法(式 12.12):「3 份全挂」的组合数 ÷「任抽 3 份」的组合数,一减就是答案:
Pass@3 ≈ 1 − C(20−5, 3) / C(20, 3) = 1 − C(15,3)/C(20,3)
= 1 − 455/1140 ≈ 0.601
图说:同一批 20 份代码,换不同的 k 都能直接算——
组合数学替你跑完了那成千上万次重复实验。
n 越大估计越准(大数定律),所以做法是「生成一大批、算一次组合数」。
Elo 的更新逻辑顺带说清(式 12.13~12.15):按双方当前分算期望胜率, 实际结果与期望的差越大,分数动得越多——爆冷赢一场(期望 0.2 却赢了)涨得多, 意料之中赢一场几乎不动。第 08 章用它给回答排序,本章的 Chatbot Arena 用它给模型排名7。
2. 三种评测范式:没有免费的可信
指标之上是怎么组织评测。原书分三种范式,各自的硬伤写得同样清楚8:
| 范式 | 怎么评 | 长处 | 硬伤 |
|---|---|---|---|
| 基准评测 | 封闭题(选择/填空)自动判分 | 可复现、便宜 | 对提示措辞敏感;数据污染(考题混进训练料) |
| 人工评测 | 真人两两对比或直接打分 | 贴近真实使用 | 主观、贵、不可复现 |
| 模型判官 | 强模型(如 GPT-4)当裁判 | 可扩展、能给理由 | 三种偏差:位置偏差(答案放前面分高)、冗长偏差(偏爱长回答)、自我偏好(给自己写的分高) |
人工评测的标杆是 Chatbot Arena:用户同时和两个匿名模型对话,投票选更 好的那个, Elo 排名——匿名堵住了「品牌滤镜」,众包换来了规模9。 模型判官的代表是 AlpacaEval(GPT-4 对比参评模型与参考答案)与 MT-Bench(多轮题); 为摆脱对闭源判官的依赖,也有人用打分数据微调开源模型当裁判10。
底座模型与微调模型的评法也有分工:底座模型多用少样本+思维链的基准评测 (它没学过听指令,裸问发挥不出);微调模型才上人工与模型判官11。
3. 基础能力:三个维度,各有一个「不可信」
原书把基础能力分三维,每维给了代表数据集,也点了已经暴露的评测陷阱12:
语言生成。 LAMBADA(10,022 段文字,预测每段的最后一个词—— 人读全文能猜对、只看末句猜不对,专治「只看局部」); HumanEval(164 道手写编程题,零样本,看 Pass@k);AlphaCode 曾打到 CodeForces 编程竞赛参赛者前 28%13。 陷阱:自动指标与人工判断脱节——模型写出了参考答案里没有的好答案, BLEU/ROUGE 照样给低分;「评测不可靠」是这一维的头号问题14。
知识利用。 闭卷问答:NQ(323,045 条真实谷歌搜索提问)、TriviaQA; 开卷问答:SQuAD 2.0(含「不可答」问题);知识补全:FB15k-237 (310,116 个三元组——特意删掉了反向关系,不然训练集见过「A 生于 B」, 测试时问「B 是 A 的出生地」就等于送分)15。 陷阱:幻觉与知识过时(第 09 章的完整解剖),外加 WikiFact 的发现: 高频关系(「作者」「货币」)答得好,低频关系(「发明者」「出生地」)明显差—— 知识覆盖跟着训练数据的频率走16。
复杂推理。 常识:CommonsenseQA(12,247 题,人类准确率 88.9% 作参照);
数学:GSM8K(8,500 道小学应用题,28 步)、MATH(12,500 道竞赛题,难度 15 级);
符号:尾字母拼接这类「人造」任务17。
陷阱有两个名字。推理不一致:答案对、过程错(或过程对、答案错)——
过程与结果之间没有可靠对应,对策是过程监督、多路径整合、把推理转成代码执行18。
数值误差:同一个数在不同语境被切成不同 token(7481 切成「7_481」、
74815 切成「748_15」),位值对不齐,大数运算就翻车——
对策是逐位分词、调计算器19。
4. 高级能力:对齐、环境、工具,各用各的测法
第 08 章的 3H 在这里变成可操作的数据集20:
- 诚实:TruthfulQA(817 题、38 个领域,专挑「容易诱发误解」的问法); HaluEval(5,000 条 ChatGPT 回答人工标「有无幻觉」+ 3 万条任务样本);
- 无害:CrowS-Pairs(1,508 对句子,九类偏见,比困惑度看模型更「偏爱」带偏见的那句); WinoGender(720 句,职业与代词的性别联想);RealToxicityPrompts(10 万条真实提示, 自动打分 0~1 测毒性);
- 环境交互:ALFWorld(120 类文字版家务环境,测长程规划成功率); WebShop(118 万真实亚马逊商品 + 1.2 万条购物指令,测「按指令买对东西」);
- 工具使用:APIBench(16,450 条「指令-API」对,测准确率与幻觉率—— 会不会调用不存在的 API);ToolBench(16,464 条指令、49 类真实 API); 原书还提到:模型已经能自造工具再使用21。
5. 综合基准与选型:开发者该报哪几个数
四个综合基准,设计哲学各不同22:
| 基准 | 构成 | 设计哲学 |
|---|---|---|
| MMLU | 57 科人类考试选择题,5-shot | 拿人类考卷当尺子;GPT-4 达 86.4% |
| BIG-Bench | 204 个任务;Lite 24 个;BBH =「低于人类水平」子集 | 专收难题;还引入 Brier 分数评「置信度打得准不准」 |
| HELM | 16 核心场景 × 7 类指标(准确/校准/鲁棒(鲁棒:输入稍作扰动成绩也不崩)/公平/有害/效率/偏差) | 自顶向下:先定场景与指标,再配数据集——不只报一个总分 |
| C-Eval | 中文,初中到大学;另有 C-Eval Hard | 中文世界的 MMLU 对应物 |
原书给开发者的选型指南可以直接照抄:通用报 MMLU/BBH(中文加 C-Eval/CMMLU), 推理报 GSM8K/MATH,代码报 HumanEval/MBPP,知识报 NQ/TriviaQA, 常识报 Social IQa/ARC,对齐报 TruthfulQA/WinoGender/RealToxicityPrompts; 并且必须警惕数据污染(第 04 章:1.3B 靠泄漏能赢 65B)—— 作者团队自己发过一篇论文,标题就叫《别让你的大模型当评测作弊者》23。 作者团队的 LLMBox 支持 53 个基准,并提供三种判分方式: 生成式(让模型直接答)、候选选项困惑度(底座模型用)、 候选选项概率(对话模型用)24。
判断(我们的,不是书里的): 读完这一章该留下一个条件反射: 任何分数,先问两件事——考题进没进训练料,谁当的裁判。 前者能凭空造分 (第 04 章:1.3B 靠泄漏赢 65B),后者能凭空丢分(判官三种偏差); 数字本身不告诉你它属于哪一种,问过这两句才算看过这个分数。 如果错,会错在: 如果基准普遍内置防污染机制(动态换题、私有测试集)、 判官偏差被证明可以忽略,这道「先问」的工序会显得多余——但作者团队自己都在发论文抓评测作弊者, 原书成书时这道工序还省不得。
6. 作者的判断与证据
- 数据集事实均可核: 各数据集的规模与构造(NQ 的 323,045、FB15k-237 删反向关系、 HumanEval 的 164 题)出自原书引用的各数据集论文1315;
- 陷阱均有文献: 推理不一致18、数值分词问题19、模型判官三种偏差8、 评测不可靠14,原书都标了出处;
- 作者的一手立场: 数据污染警告来自作者团队自己的论文23; 选型指南与 LLMBox 是作者团队的实践总结24。
7. 边界与局限
- 本章所有基准名次都是成书时的快照;MMLU 这类老牌基准在头部模型上已接近饱和, 区分度下降,原书未讨论「基准饱和后怎么办」;
- 模型判官的三种偏差有缓解手段(交换位置、多判官投票),但没有根治—— 第 07 章表 7.2 的对话胜率正是用这种方法评的,读那些数字要带这个折扣;
- 「推理不一致」的检测依赖对「过程」的评分,而过程评估本身(第 08 章过程监督)也是新兴事物;
- 中文基准(C-Eval)的覆盖面与英文基准不对称,跨语言横比要谨慎。
8. 可带走的
- 先问量什么:困惑度量「像不像人话」、BLEU/ROUGE 量「与参考像不像」、Pass@k 量「能不能过测试」、Elo 量「对战胜率」;
- Pass@k 无偏估计:生成 n 份、数出 c 份通过,1 − C(n−c,k)/C(n,k) 一次算完,不用重复实验;
- 三范式的硬伤记牢:基准怕污染与措辞,人工怕主观,模型判官有位置/冗长/自我偏好三偏差;
- Chatbot Arena 用匿名+Elo 换可信度;底座模型用少样本基准,微调模型才上人工与判官;
- 生成维的陷阱:参考答案之外的好答案被自动指标冤枉;
- 知识维的陷阱:高频关系强、低频关系弱;FB15k-237 删反向关系防送分;
- 推理维的陷阱:答对推错(推理不一致)与数字切错 token(逐位分词可解);
- 高级能力各有专测:TruthfulQA 测诚实、CrowS-Pairs 测偏见、ALFWorld/WebShop 测环境交互、APIBench 测工具;
- 选型照抄原书:通用 MMLU/BBH、推理 GSM8K/MATH、代码 HumanEval、对齐 TruthfulQA;
- 任何分数先问两件事:考题进没进训练料?是谁当的裁判?