跳到主要内容

评估 — 分数是怎么算出来的,以及它什么时候不可信

这一章讲三件事: 工具箱——每种任务用什么指标量(为什么「跑个分」前要先问量的是什么); 三种评测范式各自的硬伤(基准怕污染、人工怕主观、模型判官自带三种偏差); 按能力维度的数据集地图,和每类能力已经暴露的评测陷阱。 主走查: Pass@k 的无偏估计——为什么算一个概率不用真跑成千上万次。

1. 指标工具箱:先问量的是什么

「跑个分」之前,先看清每把尺子量什么。原书把常用指标按任务归类1。 表里三个词先说掉:精确率,即报为正的里多少真对。

召回率,即真为正的里多少被捞出。

F1(F1 就是精确率与召回率的调和平均)。

任务指标它实际在量什么
语言建模困惑度(PPL)模型对参考文本的「惊讶程度」——一段文本出现的概率开 T 次方根的倒数,越低说明模型越觉得这话「顺理成章」2
分类(把输入归入预先定好的类别,如「好评/差评」)精确率(报为正的里多少真对)、召回率(真为正的里多少被捞出)、F1F1=两者的调和平均3
翻译/摘要BLEU / ROUGEBLEU 数机器译文与参考答案的 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:

基准构成设计哲学
MMLU57 科人类考试选择题,5-shot拿人类考卷当尺子;GPT-4 达 86.4%
BIG-Bench204 个任务;Lite 24 个;BBH =「低于人类水平」子集专收难题;还引入 Brier 分数评「置信度打得准不准」
HELM16 核心场景 × 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. 可带走的

  1. 先问量什么:困惑度量「像不像人话」、BLEU/ROUGE 量「与参考像不像」、Pass@k 量「能不能过测试」、Elo 量「对战胜率」;
  2. Pass@k 无偏估计:生成 n 份、数出 c 份通过,1 − C(n−c,k)/C(n,k) 一次算完,不用重复实验;
  3. 三范式的硬伤记牢:基准怕污染与措辞,人工怕主观,模型判官有位置/冗长/自我偏好三偏差;
  4. Chatbot Arena 用匿名+Elo 换可信度;底座模型用少样本基准,微调模型才上人工与判官;
  5. 生成维的陷阱:参考答案之外的好答案被自动指标冤枉;
  6. 知识维的陷阱:高频关系强、低频关系弱;FB15k-237 删反向关系防送分;
  7. 推理维的陷阱:答对推错(推理不一致)与数字切错 token(逐位分词可解);
  8. 高级能力各有专测:TruthfulQA 测诚实、CrowS-Pairs 测偏见、ALFWorld/WebShop 测环境交互、APIBench 测工具;
  9. 选型照抄原书:通用 MMLU/BBH、推理 GSM8K/MATH、代码 HumanEval、对齐 TruthfulQA;
  10. 任何分数先问两件事:考题进没进训练料?是谁当的裁判?

9. 原文地图

主题原书章原文位置
指标总表12.1.1text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:5(搜「Table 12.1」)
困惑度12.1.1text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:73(搜「geometric mean」)
分类三指标12.1.1text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:105(搜「Precision」)
BLEU/ROUGE12.1.1text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:121(搜「BLEU」) · text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:135(搜「ROUGE-n」)
Pass@k 无偏估计12.1.1text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:159(搜「unbiased estimator」)
Elo 公式12.1.1text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:171(搜「expected winning probabilities」)
三种范式与偏差12.1.2text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:297(搜「position bias, verbosity bias, and self-enhancement bias」)
Chatbot Arena12.1.2text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:285(搜「anonymous models」)
底座 vs 微调评法12.1.2text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:279(搜「few-shot setting」)
LAMBADA/HumanEval/AlphaCode12.2.1text/69-ch12-02-12-2-basic-ability-evaluation.txt:13(搜「10,022」) · text/69-ch12-02-12-2-basic-ability-evaluation.txt:33(搜「164」) · text/69-ch12-02-12-2-basic-ability-evaluation.txt:31(搜「top 28%」)
评测不可靠12.2.1text/69-ch12-02-12-2-basic-ability-evaluation.txt:39(搜「Unreliable text evaluation」)
NQ/FB15k-237/WikiFact12.2.2text/69-ch12-02-12-2-basic-ability-evaluation.txt:61(搜「323,045」) · text/69-ch12-02-12-2-basic-ability-evaluation.txt:113(搜「310,116」) · text/69-ch12-02-12-2-basic-ability-evaluation.txt:109(搜「low-frequency relationships」)
CommonsenseQA/GSM8K/MATH12.2.3text/69-ch12-02-12-2-basic-ability-evaluation.txt:155(搜「88.9%」) · text/69-ch12-02-12-2-basic-ability-evaluation.txt:207(搜「8500」) · text/69-ch12-02-12-2-basic-ability-evaluation.txt:209(搜「12,500」)
推理不一致12.2.3text/69-ch12-02-12-2-basic-ability-evaluation.txt:229(搜「correct answers through incorrect reasoning paths」)
数值分词 748112.2.3text/69-ch12-02-12-2-basic-ability-evaluation.txt:235(搜「7_481」)
TruthfulQA/HaluEval12.3.1text/70-ch12-03-12-3-advanced-ability-evaluation.txt:13(搜「817 questions」) · text/70-ch12-03-12-3-advanced-ability-evaluation.txt:15(搜「5000」)
CrowS-Pairs/WinoGender/RealToxicity12.3.1text/70-ch12-03-12-3-advanced-ability-evaluation.txt:31(搜「1508」) · text/70-ch12-03-12-3-advanced-ability-evaluation.txt:33(搜「720 sentences」) · text/70-ch12-03-12-3-advanced-ability-evaluation.txt:35(搜「100,000」)
ALFWorld/WebShop12.3.2text/70-ch12-03-12-3-advanced-ability-evaluation.txt:55(搜「120 types」) · text/70-ch12-03-12-3-advanced-ability-evaluation.txt:57(搜「1.18 million」)
APIBench/ToolBench12.3.3text/70-ch12-03-12-3-advanced-ability-evaluation.txt:109(搜「16,450」) · text/70-ch12-03-12-3-advanced-ability-evaluation.txt:111(搜「16,464」)
MMLU/BIG-Bench/HELM/C-Eval12.4text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:9(搜「86.4%」) · text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:31(搜「204 tasks」) · text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:57(搜「16 core scenarios」) · text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:83(搜「junior high school to university」)
选型指南与 LLMBox12.4.5text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:361(搜「53 evaluation benchmarks」) · text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:367(搜「lowest perplexity」)

Footnotes

  1. 出处:「12.1.1 Common Evaluation Metrics」第 5 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:5,搜「Table 12.1」)。

  2. 出处:「12.1.1 Metrics for Language Modeling」第 73 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:73,搜「geometric mean」)。

  3. 出处:「12.1.1 Metrics for Classification」第 105-113 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:105,搜「Precision」)。

  4. 出处:「12.1.1 Metrics for Conditional Text Generation」第 121-141 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:121,搜「BLEU」;text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:135,搜「ROUGE-n」)。

  5. 出处:「12.1.1 Metrics for Question Answering」第 151 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:151,搜「exact match」)。

  6. 出处:「12.1.1 Metrics for Task Execution」第 159 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:159,搜「unbiased estimator」)。走查中的 n=20、c=5、k=3 是我们为演示编的数,估计算法即原书式 12.12。 2

  7. 出处:「12.1.1 Metrics for Preference Ranking」第 171-183 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:171,搜「expected winning probabilities」)。 2

  8. 出处:「12.1.2 Pros and Cons of Different Evaluation Methods」第 293-297 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:297,搜「position bias, verbosity bias, and self-enhancement bias」)。 2

  9. 出处:「12.1.2 Evaluation of Fine-Tuned Language Models」第 285 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:285,搜「anonymous models」)。

  10. 出处:「12.1.2 Evaluation of Fine-Tuned Language Models」第 287 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:287,搜「fine-tune open-source LLMs」)。

  11. 出处:「12.1.2 Evaluation of Base Language Models」第 279 段(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:279,搜「few-shot setting」)。

  12. 出处:表 12.4(text/68-ch12-01-12-1-evaluation-metrics-and-methods.txt:297,搜「Table 12.4」)。

  13. 出处:「12.2.1 Language Generation」第 13 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:13,搜「10,022」)、第 33 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:33,搜「164」)、第 31 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:31,搜「top 28%」)。 2

  14. 出处:「12.2.1 Language Generation」第 39 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:39,搜「Unreliable text evaluation」)。 2

  15. 出处:「12.2.2 Knowledge Utilization」第 61 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:61,搜「323,045」)与第 113 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:113,搜「310,116」)。 2

  16. 出处:「12.2.2 Knowledge Utilization」第 109 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:109,搜「low-frequency relationships」)。

  17. 出处:「12.2.3 Complex Reasoning」第 155 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:155,搜「88.9%」)、第 207 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:207,搜「8500」)、第 209 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:209,搜「12,500」)。

  18. 出处:「12.2.3 Complex Reasoning」第 229 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:229,搜「correct answers through incorrect reasoning paths」)。 2

  19. 出处:「12.2.3 Complex Reasoning」第 235 段(text/69-ch12-02-12-2-basic-ability-evaluation.txt:235,搜「7_481」)。 2

  20. 出处:「12.3.1 Human Alignment」第 13-35 段(text/70-ch12-03-12-3-advanced-ability-evaluation.txt:13,搜「817 questions」;text/70-ch12-03-12-3-advanced-ability-evaluation.txt:31,搜「1508」;text/70-ch12-03-12-3-advanced-ability-evaluation.txt:35,搜「100,000」)。

  21. 出处:「12.3.2-12.3.3」第 55-111 段(text/70-ch12-03-12-3-advanced-ability-evaluation.txt:55,搜「120 types」;text/70-ch12-03-12-3-advanced-ability-evaluation.txt:57,搜「1.18 million」;text/70-ch12-03-12-3-advanced-ability-evaluation.txt:109,搜「16,450」;text/70-ch12-03-12-3-advanced-ability-evaluation.txt:111,搜「16,464」)。

  22. 出处:「12.4」第 9-85 段(text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:9,搜「86.4%」;text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:31,搜「204 tasks」;text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:57,搜「16 core scenarios」;text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:83,搜「junior high school to university」)。

  23. 出处:「12.4.5」选型指南(见 12.4 末尾);作者团队论文见第 13 章参考文献 [127] (text/73-ch13-13-conclusion.txt:127,搜「Cheater」)。 2

  24. 出处:「12.4.5」第 361-369 段(text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:361,搜「53 evaluation benchmarks」;text/71-ch12-04-12-4-open-comprehensive-evaluation-benchmarks.txt:367,搜「lowest perplexity」)。 2