add evaluation-guidebook notes: HF guidebook knowledge (2024 GitHub + 2025 Space) into LLM_Evaluation

- Add 9 Chinese distilled notes under 04-Reference-Archive/evaluation-guidebook/
  covering automated benchmarks, human evaluation, LLM-as-a-judge,
  troubleshooting, general knowledge, yearly dives, resources, and the
  2025 HF Space edition (FineWeb eval-selection methodology, MCF/CF/FG,
  sampling metrics, Math-Verify, statistical validity & cost)
- Update zone README and Material-List with entry links
This commit is contained in:
windyboy
2026-08-21 16:19:12 +08:00
parent f245e3132b
commit f375cd6134
11 changed files with 3653 additions and 0 deletions
@@ -18,6 +18,20 @@ created: 2026-08-21
| [[02_Areas/Job/llm_data_annotation_programmer_roadmap\|大模型数据标注与程序员入门]](原文存于 02_Areas/Job,本专区不再复制副本) | 职业全景与程序员能力迁移背景 | 想理解岗位、方向与能力地图时 | 覆盖面广,但不是第一个项目的直接操作材料。 | | [[02_Areas/Job/llm_data_annotation_programmer_roadmap\|大模型数据标注与程序员入门]](原文存于 02_Areas/Job,本专区不再复制副本) | 职业全景与程序员能力迁移背景 | 想理解岗位、方向与能力地图时 | 覆盖面广,但不是第一个项目的直接操作材料。 |
| [[02-Intro-Cognitive-Framework-Draft]] | Why Guide 的概念设计底稿 | 想研究内容设计或自行扩展课程时 | 已被正式 Why Guide 吸收,不建议日常阅读。 | | [[02-Intro-Cognitive-Framework-Draft]] | Why Guide 的概念设计底稿 | 想研究内容设计或自行扩展课程时 | 已被正式 Why Guide 吸收,不建议日常阅读。 |
| [[03-Roadmap-Refactor-Outline-Draft]] | Practical Roadmap 的结构设计底稿 | 想理解路线如何从审阅意见演化时 | 正式路线图已更完整,草案只保留历史价值。 | | [[03-Roadmap-Refactor-Outline-Draft]] | Practical Roadmap 的结构设计底稿 | 想理解路线如何从审阅意见演化时 | 正式路线图已更完整,草案只保留历史价值。 |
| [[evaluation-guidebook/00-Overview\|HuggingFace Evaluation Guidebook 中文提炼(子目录)]] | 外部权威评测知识参考(自动基准 / 人工评测 / LLM-as-judge / 排错等) | 设计或执行评测时按主题查阅 | 是外部资料的提炼笔记,作为查阅型参考而非个人学习主线的必经之路。 |
## 外部知识参考(evaluation-guidebook 子目录)
对 [HuggingFace Evaluation Guidebook](https://github.com/huggingface/evaluation-guidebook) 的中文提炼笔记:
- [[evaluation-guidebook/00-Overview|总览:这是什么、怎么读]]
- [[evaluation-guidebook/01-Automatic-Benchmarks|自动基准评测]]
- [[evaluation-guidebook/02-Human-Evaluation|人工评测]]
- [[evaluation-guidebook/03-LLM-as-a-Judge|LLM-as-a-Judge(模型作评委)]]
- [[evaluation-guidebook/04-Troubleshooting|排错(推理 / LaTeX / 可复现性)]]
- [[evaluation-guidebook/05-General-Knowledge|通用知识(推理与评测 / Tokenization]]
- [[evaluation-guidebook/06-Yearly-Dives|年度深度文章(20232025]]
- [[evaluation-guidebook/07-Resources|资源链接清单]]
## 正式学习材料不在本目录 ## 正式学习材料不在本目录
@@ -0,0 +1,93 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- overview
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# HuggingFace LLM Evaluation Guidebook 总览
> 外部权威参考的来源说明:本子目录的内容是对 [HuggingFace Evaluation Guidebook](https://github.com/huggingface/evaluation-guidebook)(旧版,GitHub 仓库)与 [OpenEvals 新版(2025](https://huggingface.co/spaces/OpenEvals/evaluation-guidebook)HuggingFace Space)的中文提炼笔记,按主题拆成独立页面,供本专区在设计与执行评测时查阅。
## 这是什么
**The LLM Evaluation Guidebook** 是 HuggingFace 团队(主要作者 Clémentine FourrierOpen LLM Leaderboard 与 lighteval 的设计者)编写的 LLM 评测实战指南。它回答一个核心问题:
> 如何确保一个 LLM 在你自己的具体任务上表现良好?
内容覆盖:评测模型的不同方式、如何设计自己的评测、以及从实际评测工程中沉淀的经验教训(Tips and Tricks)。
## 两个版本
| | 旧版(GitHub 仓库) | 新版(HF Space2025-12 |
|---|---|---|
| 地址 | [github.com/huggingface/evaluation-guidebook](https://github.com/huggingface/evaluation-guidebook) | [huggingface.co/spaces/OpenEvals/evaluation-guidebook](https://huggingface.co/spaces/OpenEvals/evaluation-guidebook) |
| 形态 | 章节式 Markdown 指南 | 交互式"科研论文"Astro + MDX,含可交互图表) |
| 作者 | Clémentine Fourrier | Fourrier、Thibaud Frere、Guilherme Penedo、Thomas Wolf |
| 副标题 | — | "基于 3 年评测 15000 个模型的经验,你想知道的关于 LLM 评测的一切" |
| 状态 | 已停止维护(README 声明) | 当前维护版本(2025-12-03 发布,CC BY 4.0 |
| 本专区笔记 | [[01-Automatic-Benchmarks]] ~ [[07-Resources]] | [[08-2025-Edition]](新版独有内容提炼) |
> ⚠️ **维护状态**:旧仓库已声明不再维护(截至 2025 年 12 月),最新版本迁移到 HuggingFace Space。本目录 0107 篇整理的是旧版 GitHub 仓库内容;[[08-2025-Edition]] 提炼新版(2025)相对旧版新增/变化的内容。两份内容大部分重叠,建议以新版为主、旧版为补充。
## 指南结构(旧版仓库目录)
| 章节 | 内容 | 本专区对应笔记 |
|---|---|---|
| **Automatic benchmarks** | 自动化基准评测:basics、设计自己的自动评测、常用评测数据集、Tips | [[01-Automatic-Benchmarks]] |
| **Human evaluation** | 人工评测:basics、如何使用标注者、Tips | [[02-Human-Evaluation]] |
| **LLM-as-a-judge** | 模型作评委:basics、选择 judge LLM、设计评测 prompt、评估你的 evaluator、奖励模型 | [[03-LLM-as-a-Judge]] |
| **Troubleshooting** | 指南中最实操的部分:推理排错、LaTeX 数学解析、可复现性 | [[04-Troubleshooting]] |
| **General knowledge** | LLM 基础:模型推理与评测、tokenization | [[05-General-Knowledge]] |
| **Yearly dives** | 2023/2024/2025 年度深度文章 | [[06-Yearly-Dives]] |
| **Resources** | 评测与 NLP 推荐链接清单 | [[07-Resources]] |
## 新版结构(2025 Space,按渲染顺序)
| 章节 | 内容 | 备注 |
|---|---|---|
| Intro | 评测视角:model builder vs model user、智能定义的困境 | 新版新增 |
| Model inference and evaluation | Tokenization、推理、MCF/CF/FG 三种任务形式、calibration | 比旧版更细 |
| 2025 evaluations | 2025 分能力评测全景(推理/知识/数学/代码/长上下文/指令遵循/工具调用/游戏化) | 新版核心,替代旧版 Yearly Dives 2025 |
| Troubleshooting reproducibility | 可复现性排错(代码库/种子/指标名/normalization/prompt/参数) | 旧版有对应章节 |
| Picking good automatic evaluations for pretraining | FineWeb 团队预训练评测选型方法论(185 任务、SNR、单调性、排序一致性) | **全新内容** |
| Designing your automatic evaluation | 设计自动评测全流程(数据集/提示词/推理方式/评分/自由文本评分/约束输出/统计有效性/成本) | 内含 Using human annotators |
| Conclusion | 五条核心建议 | — |
> 注:仓库中 `some-evaluation-datasets.mdx` 存在但新版页面未直接渲染(正文链接回旧版 GitHub 的同类页面);`using-human-annotators.mdx` 通过 import 嵌入 designing 章节。
## 建议阅读方式
原作者的建议(旧版):
- **初学者**:从每个章节的 *Basics* 部分开始,需要 LLM 基础补课时读 *General knowledge*
- **进阶用户**:直接看每个章节的 *Tips and Tricks**Troubleshooting* 章节。
- **回访用户**:每年一篇的 Yearly dives(每年的主题深潜)。
文内标记 ⭐ 的链接是作者特别推荐阅读的资源。
## 与本专区的关系
- 本专区(LLM_Evaluation)是**面向个人学习与工程能力养成**的中文路线(概念 → 为什么 → 工作表 → 项目 → 完整路线图)。
- 本子目录是**外部权威知识参考**:需要深入某个评测主题(如设计自动评测、写 judge prompt、排查复现问题)时,从这里查阅提炼后的要点,并按需回到原文细读。
- 两者互补:专区路线图负责"做什么、按什么顺序做"guidebook 笔记负责"具体怎么做、有哪些坑"。
## 引用
旧版(GitHub):
```bibtex
@misc{fourrier2024evaluation,
author = {Clémentine Fourrier and The Hugging Face Community},
title = {LLM Evaluation Guidebook},
year = {2024},
journal = {GitHub repository},
url = {https://github.com/huggingface/evaluation-guidebook}
}
```
许可证:旧版 CC BY-NC-SA 4.0;新版 CC BY 4.0。
@@ -0,0 +1,517 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- automatic-benchmarks
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# 自动基准评测(Automated Benchmarks)— LLM Evaluation Guidebook 提炼笔记
> **来源**[HuggingFace evaluation-guidebook](https://github.com/huggingface/evaluation-guidebook) 的 `contents/automated-benchmarks/` 章节,包含四篇:
> basics(自动化基准是什么)、designing-your-automatic-evaluation(如何设计自己的自动评测)、some-evaluation-datasets(常用评测数据集盘点)、tips-and-tricks(实战技巧)。
>
> **性质**:中文提炼式笔记,非逐字翻译;关键英文术语保留原文。文内 ⭐ 标记的链接是作者特别推荐阅读的资源(同 [[00-Overview]] 的约定)。
>
> **关联笔记**[[02-Human-Evaluation]](人工评测)、[[03-LLM-as-a-Judge]](模型作评委)、[[04-Troubleshooting]](排错与可复现性)。
## 目录
- [1. 核心概念](#1-核心概念task--capability--dataset--metric--样本--泛化)
- [2. 自动化基准的优缺点](#2-自动化基准的优缺点)
- [3. 如何设计自己的自动评测](#3-如何设计自己的自动评测)
- [4. 常用评测数据集盘点](#4-常用评测数据集盘点)
- [5. Tips and Tricks](#5-tips-and-tricks)
- [6. 参考资料](#6-参考资料)
---
## 速览(TL;DR
| 问题 | 一句话答案(详见对应章节) |
|---|---|
| 自动基准评测是什么? | 用「数据集(输入+gold 参考)+ metric」给模型在 task / capability 上打分;LLM 输出分两类:生成文本(generative)与序列 log-probabilityMCQA / perplexity)。([§1](#1-核心概念task--capability--dataset--metric--样本--泛化) |
| 为什么要测模型没见过的数据? | 测的是泛化(generalization);在训练数据上评测等于给模型不具备的能力打分(overfitting 的学生类比)。([§1](#1-核心概念task--capability--dataset--metric--样本--泛化) |
| 自动化基准有什么优势? | 一致可复现、成本低、指标可理解、可用专家级高质量数据(但 MMLU 也有错 → MMLU-Pro/Redux)。([§2](#2-自动化基准的优缺点) |
| 有什么短板? | 复杂能力难分解成精确任务(转向 generalist 评测、性能当 proxy);公开数据集必有 contamination。([§2](#2-自动化基准的优缺点) |
| 评测结果好坏取决于什么? | 取决于评测数据集质量——选数据集要看创建者、标注者一致性、指南、随机抽 50 个样本检查;自建可走聚合/人工标注/合成(LLM 或规则)三条路。([§3.1](#31-选择数据集) |
| 用 log-prob 还是生成式? | 多选题/测知识 → log-prob(快、能给置信度,但高估小模型、对选项顺序敏感);测流利度/推理 → 生成式(更贴近真实关注点,但难打分、更贵)。([§3.2](#32-选择推理方法inference-method) |
| prompt 要注意什么? | 语义等价的微小改动会让结果波动;模型会过拟合 prompt 格式(Llama 3.2 / Qwen 2.5 在 few-shot 里不跟格式);必要时约束输出。([§3.3](#33-选择提示词prompt) |
| 代码评测的聪明做法? | 功能测试:用单元测试验证生成程序(降低过拟合、测主动能力);文本版代表是 IFEval。([§3.5](#35-智能新任务功能测试functional-testing) |
| 数据污染怎么办? | 默认「已污染」;用 canary string、加密/门控发布、动态 benchmark、事后检测(无万全之法)。([§5.1](#51-管理污染managing-contamination) |
| 评测结果意外差? | 先看生成结果:解析太严、few-shot 不跟格式、模型太啰嗦,逐一排查。([§5.3](#53-生成式评测结果异常差时的排查) |
---
## 1. 核心概念:task / capability / dataset / metric / 样本 / 泛化
自动化基准(automated benchmark)通常这样工作:你希望知道模型在某件事上表现如何。这件事可以是:
- 一个定义清晰的**具体任务(task)**,例如「我的模型能不能区分垃圾邮件与非垃圾邮件(spam / non-spam classification)?」;
- 一个更抽象、更一般的**能力(capability)**,例如「我的模型数学能力如何(How good is my model at math)?」。
### 评测的三要素
1. **数据集(dataset**,由**样本(samples**组成:
- 每个样本包含给模型的**输入(input)**,有时配一个用来比对输出的**参考答案(reference,也称 gold**
- 样本通常刻意设计成贴近你要测的东西:例如做邮件分类,就构造一批垃圾/非垃圾邮件数据集,尽量包含一些难的边界案例(edge cases)。
2. **度量(metric**:给模型打分的方式。
- 示例:垃圾邮件分类的准确率(正确分类的样本记 1 分,错误记 0 分);
- metric 利用模型输出打分。对 LLM 而言,人们主要考虑两类输出:
- 模型根据输入**生成的文本***generative evaluation*,生成式评测);
- 提供给模型的**一个或多个序列的 log-probability***multiple-choice evaluations*,简称 MCQA;或 *perplexity evaluations*,困惑度评测)。
- 更多细节见 [Model inference and evaluation](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/model-inference-and-evaluation.md) 页面。
### 泛化(generalization)与过拟合(overfitting
- 评测最好在**模型从未见过的数据**(不在其训练集里的数据)上进行,因为你测的是它能否**泛化(generalize)**——例如:模型只见过「假银行」类垃圾邮件后,能否正确分类「保健品」类垃圾邮件。
- **overfitting**:模型只能在训练数据上预测得好、没有学到更高级的通用模式,就称其过拟合。这就像学生把考题背下来却没理解知识点——**在训练集中已经出现过的数据上评测 LLM,等于给它不会的能力打分**。
---
## 2. 自动化基准的优缺点
### 优点
| 优点 | 说明 |
|---|---|
| **一致性与可复现性(Consistency and reproducibility** | 同一 benchmark 在同一个模型上跑 10 次结果相同(除硬件差异或模型固有随机性外)。因此可以方便地为给定任务建立公平的模型排名。 |
| **低成本规模化(Scale at limited cost** | 目前最廉价的评测模型方式之一。 |
| **可理解性(Understandability** | 大多数自动化指标非常易懂:exact match 告诉你生成文本是否与参考完全一致;accuracy 告诉你选对选项的次数占比。(相比而言 `BLEU``ROUGE` 这类指标就没那么直观。) |
| **数据集质量(Dataset quality** | 不少 benchmark 使用专家生成的数据集或已有的高质量数据(如 MMLU、MATH)。但高质量 ≠ 完美:MMLU 事后被发现样本中有若干错误(从解析问题到实际上无意义的问题),催生了 MMLU-Pro、MMLU-Redux 等后续数据集。 |
### 局限
1. **对复杂任务的使用受限**:自动化基准擅长性能容易定义和评估的任务(如分类)。更复杂的能力很难分解成定义清晰、精确的子任务。
- 例如「数学好」到底指什么?算术好?逻辑好?能对新数学概念推理?
- 这催生了更多**通用型(generalist)评测**:不再把能力拆成子任务,而是假设整体表现是所测目标的**良好代理指标(good proxy**。
2. **污染(Contamination**:数据集一旦以纯文本形式公开,就会进到模型训练数据里。因此打分时你无法保证模型没解析过评测数据。
---
## 3. 如何设计自己的自动评测
核心原则:**你的评测结果只会和你的评测数据集一样好(your evaluation result will only be as good as your evaluation dataset**。
#### 设计自动评测的完整流程(对照清单)
把原文的设计建议串成一条可执行的流程,每个步骤的细节见对应小节:
1. **明确要测什么**:具体 task(如垃圾邮件分类)还是抽象 capability(如数学能力)?([§1](#1-核心概念task--capability--dataset--metric--样本--泛化)
2. **选或建数据集**:优先复用已有高质量数据集;自建可走聚合现有数据 / 人工标注 / 合成数据(LLM 生成或基于规则)。([§3.1](#31-选择数据集)
3. **检查样本**:已有数据集看创建者与标注流程(专家 > 付费 ≈ 众包 > MTurk)、标注者一致性、创建指南;随机抽 50 个样本查质量与相关性;样本数 ≥ 100 才统计显著。([§3.1](#31-选择数据集)
4. **选推理方法**MCQAlog-probabilities)还是生成式(generative)?([§3.2](#32-选择推理方法inference-method)
5. **设计 prompt**task prompt / context / question / options / connector words;注意 prompt 敏感性、few-shot、格式过拟合。([§3.3](#33-选择提示词prompt)
6. **选 metric**:log-prob 侧用按长度归一化的 accuracy / perplexity / recall / f1;生成侧先决定是否归一化、再决定匹配方式(exact match、ROUGE、BLEU…);想清楚任务到底关心平均还是最差表现。([§3.4](#34-选择度量metric)
7. **跑评测 + 复盘**:检查生成结果(解析、格式遵循、长度),关注 contamination 与 tokenization 坑。([§5](#5-tips-and-tricks)
### 3.1 选择数据集
要么选已有数据集(见 [第 4 节](#4-常用评测数据集盘点)),要么自己设计。过程中必须紧盯上面这条原则。
#### 选用已有数据集:必须检查的组件
**1)创建过程(Creation process**
- **样本是谁创建的?** 作者给出的质量排序(作者观点):
> 专家创建(expert created> 付费标注者(paid annotator)≈ 众包(crowdsourced> MTurk 标注
- 找数据卡(data card),看**标注者人口学信息(annotator demographics**——对理解数据集的语言多样性很重要。
- **样本是否被其他标注者或作者复核过?** 要确认:标注者间一致性分数(inter-annotator score)是否高(标注者是否达成共识)、以及/或作者是否审查过整个数据集。
- 这对「用低薪标注者(通常不是你目标语言的母语者,如 AWS Mechanical Turk)」的数据集尤其重要,否则你可能发现拼写错误/语法错误/无意义答案。
- **标注者是否拿到清晰的数据创建指南(data creation guidelines)?** 换句话说:你的数据集一致吗?
**2)样本(Samples**
取 50 个随机样本人工检查:
- *质量(quality*
- prompt 是否清晰无歧义?
- 答案是否正确?(例:TriviaQA 每个问题有多个 gold 答案(aliases 字段),有时互相冲突。)
- 信息是否缺失?(例:MMLU 的不少问题缺少参考示意图(reference schematics)。)
- *与任务的相关性(relevance*
- 这些是你想用 LLM 评测的问题类型吗?
- 这些例子与你的 use case 相关吗?
还要知道数据集有多少样本(保证结果统计显著——**自动基准评测通常最少 100 个样本**)。
#### 设计自己的数据集:三条路线
| 路线 | 要点 |
|---|---|
| **聚合现有数据(Aggregating existing data** | 从不同来源聚合现有数据,评估与任务相关的能力。很多评测数据集就是这样从人工评测数据集聚合而来的(如 MATH、LSAT 等)。走这条路同样要执行上面「检查样本」的步骤。 |
| **使用人工标注者(Using human annotators** | 完整章节见 [Using human annotators](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/human-evaluation/using-human-annotators.md)(人工评测章节)。 |
| **使用合成数据(Using synthetic data** | 分两种: |
| ├ **用 LLM 生成** | ⭐ 参考 [Cosmopedia](https://huggingface.co/blog/cosmopedia) 博客(HF 同事写的,很酷):主要研究如何造合成*训练*集,但类似技术可用于评测。生成后务必按上面的步骤人工检查/过滤/审查。 |
| └ **基于规则的技巧(rule-based** | 如果任务允许,这是获得**几乎无限样本且避免污染**的好办法。示例:[NPHardEval](https://arxiv.org/abs/2312.14890)、[DyVal](https://arxiv.org/abs/2309.17167)、[MuSR](https://arxiv.org/abs/2310.16049)、[BabiQA](https://arxiv.org/abs/1502.05698) 等。 |
### 3.2 选择推理方法(inference method
#### 基于 log-probabilitiesMCQA 多选题)
非常适合选择题(通常测模型知识、或消歧能力)。
| 优点 | 缺点 |
|---|---|
| 确保所有模型都能「看到」正确答案 | 轻微高估小模型(若放任自由生成,它们本会生成选项范围之外的内容) |
| 提供模型「置信度」(calibration)的代理 | 有些模型会[根据选项的呈现顺序偏好特定选项](https://arxiv.org/abs/2309.03882),导致评测不具代表性 |
| 评估快——尤其只让模型预测一个 token(A/B/C/D 选项序号,或 Yes/No)时 | |
| 小模型也能获得任务表现信号 | |
#### 基于生成(generative / QA 问答)
适合任何要测流利度(fluency)、推理能力、或模型真正回答问题的能力的任务。
| 优点 | 缺点 |
|---|---|
| 应该与 LLM 生成流利文本的能力真实相关,多数时候正是人们真正关心的 | 打分更难(见 3.4 metrics 一节) |
| | 通常比 log-likelihood 评测贵一点,尤其包含 sampling 时 |
### 3.3 选择提示词(prompt
prompt 决定:给模型多少任务信息、这些信息如何呈现。
一个通用 MCQA / QA prompt 通常由以下部分构成:
- **task prompt**(可选):介绍你的任务;
- **context**:为问题提供额外上下文(例:摘要或信息抽取任务可提供内容来源);
- **question**prompt 的核心;
- **options**(多选题时):选项;
- **连接词(connector words**:如 `Question``Context``Choice` 等。
把这些要素拼成模板(示意,字段顺序与措辞可自行设计):
```text
Task: {task prompt} # 可选:介绍任务
Context: {context} # 可选:为问题提供额外上下文(摘要/信息抽取时可给内容来源)
Question: {question} # 核心
Choice A: {option_a} # 多选题时提供选项
Choice B: {option_b}
Choice C: {option_c}
Answer: # 用连接词引导模型输出
```
> 注意:上面只是结构示意,原文没有给出固定模板——不同模型对格式的敏感度不同,实际使用时按 3.3 的提示设计并验证。
设计 prompt 时要注意:
1. **语义等价的微小改动也可能让结果波动很大**(见 [Troubleshooting reproducibility](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/troubleshooting/troubleshooting-reproducibility.md) 的「Different prompt」一节),且 prompt 格式可能利好或利空特定模型。
- 缓解方法:
- **昂贵方案**:用多种 prompt 变体把评测多跑几遍;
- **省钱方案**:只跑一次,但把一批**难度相当的不同 prompt 格式**分配到不同样本上。
2. 可以给模型提供**few-shot 示例**帮它遵守期望格式;加连接词也有帮助。
3. 但**模型如今倾向于过拟合特定 prompt 格式**:
- ⭐ [这篇论文](https://arxiv.org/abs/2407.07890) 讲得很好:有些模型因为过拟合了测试集的**格式(format)**而被高估。
- 在 Open LLM Leaderboard 2 上,作者观察到 Llama 3.2 和 Qwen 2.5 出于这个原因,在 few-shot 设置下不再遵循给定 prompt 的格式。
4. 对不少 metric 来说,你需要**高度受约束的生成/输出**(详见 [Model inference and evaluation](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/model-inference-and-evaluation.md) 的 `Constraining model outputs` 一节)。
### 3.4 选择度量(metric
**基于 log-probabilities** 时,metric 很简单:看 **accuracy**(最可能的选项是最佳选项的频率)。重要:要**按长度归一化**(按字符 character、token、或 pmi)。也可以看 perplexity、recall、f1。
**生成式评测(generative** 时可选 metric 范围更广,需要两步决策:
1. **比较生成结果前是否先归一化(normalize)?**
- 归一化设计得不好时[很容易不公平](https://huggingface.co/blog/open-llm-leaderboard-drop),但总体上在任务层面仍提供信号;
- 对特定任务非常重要,如数学评测:你可能要从格式化输出中抽取结果;
- 如果要叠加 Chain of Thought 等机制测准确率,也要归一化——你需要把推理痕迹(reasoning trace)从实际结果中剥离。
2. **如何把生成与参考做比较?**
- 从基于匹配的 metricexact match、prefix match 等)到摘要/翻译类 metricROUGE、BLEU、character n-gram 比较)都可以;
- 现有 metric 列表见 ⭐ [lighteval 的 Metric List wiki](https://github.com/huggingface/lighteval/wiki/Metric-List)(作者表示之后会补「何时用哪个 metric」一节)。
**更一般的原则**:选 metric 时要想清楚任务真正关心什么。有些领域(如医疗、有公共交互的聊天机器人)不该测平均表现,而要能评估**最差表现(worst performance)**——如医疗输出质量、毒性等。(延伸阅读:⭐ [这个博客](https://ehudreiter.com/2024/07/10/challenges-in-evaluating-llms/)
### 3.5 智能新任务:功能测试(functional testing
代码领域:不仅要按语义评估生成的程序,还要按**实际功能**评估。好办法是检查「为遵循 prompt 而生成的代码」能否通过**一套为该任务设计的单元测试(unit tests)**。
功能化方法极具前景,因为:
- 更容易生成测试用例(很多情况下可用基于规则的方法生成 test cases);
- 因此**降低过拟合(overfitting**
- 测的是模型的具体**主动能力(active capabilities**。
不过,要把这种方法**迁移到文本任务需要创造力**!
- 一个优秀范例是 **IFEval**:测试模型能否遵循指令的评测 benchmark。它创建一批格式化指令(*Add this number of bullet points.*、*Capitalize only one sentence.* 等),严格检查格式是否被遵循。
- 作者认为:要把这个思路扩展到文本的其他特性,还需要更多工作。
---
## 4. 常用评测数据集盘点
如果你关心的任务已被充分研究,大概率已有现成数据集。下面是作者近几年整理的评测数据集清单。
⚠️ 两点提醒:
- **部分数据集可能已过时**:它们是 pre-LLM 时代设计的,如今已被轻松解决;当初旨在探究文本的某一具体属性(翻译、摘要),已不再是现在的评测方式(评测如今更通用/整体化)。
- **它们很可能已被污染**:已在网上公开多年。但被污染不代表对你的任务没有信号。
> 注:原文标注「✍️」的是作者提出、可自行复现的数据集想法(见 4.3)。部分行原文信息为空,笔记中保留名称并注明「原文未提供细节」。
#### 如何从盘点表中选数据集(作者备注提炼)
表格的「备注」列里藏着作者的选数据集经验,常用判断依据有:
- **看创建者与标注流程**:专家标注(如 FinQA 的付费专家+外部专家高一致)通常质量更高;自动抽取比例高、人工验证少的数据集要警惕(如 Dolphin18K、Math23K)。
- **看模板化程度**:模板化/可再生成的数据集对**研究 contamination 特别有用**Ape210K 部分模板化、Draw-1K 每题带模板标签、GSM-Symbolic、NPHardEval、DeepMind Math 可再生成)。
- **看是否附带训练集**:凡提供额外 train set 或「本意部分用于训练」的(Ape210K、AQuA、DocMath-Eval、DeepMind Math、NuminaMATH),若拿去当训练数据会**反向污染主流数学 benchmark**NuminaMATH 的备注直接警告了这一点)。
- **看答案形式是否可自动验证**:整数(AIME、GSM8K)、SymPy 对象(FrontierMath、OlympiadBench)、单元测试(HumanEval、APPS)——答案可自动验证是生成式评测能跑起来的关键。
- **看语言/时区属性**:中文题(Ape210K、GAOKAO-Bench、HMWP、Math23K)、多语言(MLSum、TyDiQA-GoldP)、是否每年更新(GAOKAO-Bench)。
- **看是否有领域专家背书**FrontierMath(60 位数学家、全部同行评审)被作者评为「目前可能质量最高」;GAOKAO-Bench 的论文「数据集信息意外地少」。
### 4.1 数学类数据集(Math specific
| 名称 | 类型 | 年份 | 规模 | 内容/备注 | 链接 |
|---|---|---|---|---|---|
| AGIEval (SATMath) | 考试题+现有数据集 | 2023 | 220 | SAT 数学题。论文实为一系列人类考试数据集汇编:数学部分经 MATH 用了 AIME & AMC,经 AQuA-Rat 用了 GRE & GMAT,另有 GaoKao。Metricacc/em/f1 | [Paper](https://arxiv.org/abs/2304.06364) / [HF](https://huggingface.co/datasets/hails/agieval-sat-math) |
| AIME (all) | 奥赛题 | 1983–今 | 每年 15×2 | 需要算术、代数、计数、几何、数论、概率等中学数学综合的问题。美国 IMO 代表队选拔第 2 场考试。答案恒为 0–999 的整数 | [Blog](https://artofproblemsolving.com/wiki/index.php/American_Invitational_Mathematics_Examination) / [Source](https://artofproblemsolving.com/wiki/index.php/AIME_Problems_and_Solutions) |
| AIME (22/23/24) | 奥赛题 | 2024 | 90 | 同 AIME (all),用于 AIMO 竞赛 | [HF](https://huggingface.co/datasets/AI-MO/aimo-validation-aime) |
| ALGES (SingleEQ) | 网络来源汇编 | 2015 | 508 | 从网络抓取的年级代数题。论文主题:隐式学习并求解题目背后的简单方程。来源:math-aids.com、k5learning.com、ixl.com。pre-LLM 论文,数据源可能没问题 | [Paper](https://aclanthology.org/Q15-1042/) / [Source](https://gitlab.cs.washington.edu/ALGES/TACL2015/-/blob/master/questions.json?ref_type=heads) |
| ALG514 / AllEq | 网络论坛 | 2014 | 514 | 从众包辅导网站抽取、turking 清理、人工核验的代数应用题。论文主题:从问题中抽取方程模板来求解。来源:Algebra.com | [Paper](https://aclanthology.org/P14-1026/) / [Source](https://groups.csail.mit.edu/rbg/code/wordprobs/questions.json) |
| AMC 12 | 奥赛题 | 2000–今 | 每年 25 | 应用题(算术、代数、计数、几何、数论、概率等)。美国 IMO 选拔第 1 场考试(前身 American High School Math Exam)。题目设计为无需微积分背景即可解 | [Blog](https://artofproblemsolving.com/wiki/index.php/AMC_12) / [Source](https://artofproblemsolving.com/wiki/index.php/AMC_12_Problems_and_Solutions) |
| Ape210K | 考试题 | 2020 | 21 万题 / 5.6 万模板 | 中文小学数学应用题(数学教师编写)。部分题目模板化(对 contamination 研究有用);原始 90 万经人工筛选;提供「中间方程」(测 CoT trace 有用);本意部分用于训练 | [Paper](https://arxiv.org/abs/2009.11506)(已撤回,v1 仍可访问)/ [HF](https://huggingface.co/datasets/MU-NLPC/Calc-ape210k) |
| AQuA / AQUA-Rat | 考试题+turk 数据集 | 2017 | 100K | 以 3.4 万 GMAT/GRE 题为种子、turking 扩展的代数应用题。含 rationale;评分用 accuracy、BLEU、perplexity;本意部分用于训练 | [Paper](https://arxiv.org/abs/1705.04146) / [HF](https://huggingface.co/datasets/deepmind/aqua_rat) |
| ASDiv-A | 网络来源汇编 | 2020 | 2.3K | 从各网站收集并规范化的应用题。硕士生标注问题类型与年级;强调词汇多样性;用了 28 个网站 | [Paper](https://aclanthology.org/2020.acl-main.92/) / [Github](https://github.com/chaochun/nlu-asdiv-dataset) |
| CHAMP | 奥赛题 | 2024 | 270 | 从奥赛例题书抽取、改写为可解析解并标注的应用题。题目带 hints 与概念标签,可做消融实验。来源:《Problem-Solving strategies》(Engel, 2008) | [Paper](https://arxiv.org/abs/2406.18321) |
| DeepMind Math | 考试题+合成 | 2019 | 10K? | 代数、算术、微积分、比较、单位换算、多项式、概率等合成数学题。领域完整列表在附录 B;提供生成代码可产出更多样例;提供额外训练集;程序化合成 | [Paper](https://arxiv.org/abs/1904.01557) / [HF](https://huggingface.co/datasets/deepmind/math_dataset) |
| DocMath-Eval | 人工标注财报+现有金融数学集 | 2023 | 3.2K | 结合财报与现有数据集,标注者读材料出题(或校验),答案以 Python 程序给出、由领域专家评估。复用 TAT-QA、FinQA、MultiHiertt、TAT-HQA;金融数学数据质量看起来很高;提供额外训练集 | [Paper](https://arxiv.org/abs/2311.09805) / [Github](https://github.com/yale-nlp/docmath-eval) |
| Dolphin1878 | 网络来源汇编 | 2015 | 1.5K | 从在线来源抽样、必要时重新标注的数字应用题。论文主题:用语义解析从问题中提取 DOL 方程树。来源:algebra.com、answers.yahoo.com | [Paper](https://aclanthology.org/D15-1135.pdf) |
| Dolphin18K | 网络来源汇编 | 2016 | 18K | 半自动从在线来源抽取的应用题。来源:Yahoo Answers 数学分类(2008 起)。先人工标注 6K 再用分类器扩展;自动抽取比例高、人工验证少,作者对质量存疑 | [Paper](https://aclanthology.org/P16-1084.pdf) / [Kaggle](https://www.kaggle.com/datasets/saurabhshahane/sigmadolphin) |
| Draw-1K | 网络来源汇编 | 2016 | 1K | 从在线来源抽取的通用代数应用题。论文主题:评估求解器、测试模板与方程等价。每题标注其模板(对 contamination 有用)。来源:algebra.com | [Paper](https://arxiv.org/abs/1609.07197) / [Source](https://www.microsoft.com/en-us/download/details.aspx?id=52628) |
| FinQA | 专家标注财报 | 2021 | 1.1K | 与财报表格关联的金融问题;标注者给出问题+逐步过程+每页注解。付费专家标注+外部专家一致性高,质量可能很高;全集 8.2K;数据源 S&P 500 财报(19992019 | [Paper](https://arxiv.org/abs/2109.00122) / [HF](https://huggingface.co/datasets/ibm/finqa) |
| FrontierMath | 专家创建 | 2024 | 100+(确切数字未知) | 全新建、覆盖多数数学领域的难题;答案要么是整数要么是 SymPy 对象,可通过类单元测试的 Python 程序自动验证;题目带标签。60 位数学家、12 个国家;全部同行评审;论文有很好的 contamination 讨论;目前可能是质量最高的数据集。数据不公开——但闭源模型已被评测过,未来很可能被污染 | [Paper](https://arxiv.org/abs/2411.04872)(数据私有) |
| GAOKAO-Bench (MathCloze, MathQA) | 考试题 | 2023 | ~500 | 中国高考数学应用题。公式转 latex;中文;每年更新;论文探索多种评分方式(含 LLM as judge);论文里数据集信息意外地少 | [Paper](https://arxiv.org/abs/2305.12474) / [Github](https://github.com/OpenLMLab/GAOKAO-Bench?tab=readme-ov-file) / [HF MathCloze](https://huggingface.co/datasets/hails/agieval-gaokao-mathcloze) / [HF MathQA](https://huggingface.co/datasets/hails/agieval-gaokao-mathqa) |
| GAOKAO 2023 (MathEn) | 考试/竞赛题 | 2023 | 385 | 高中数学应用题。汇编 2023 中国高考、2023 AMC、2023 ACT | [HF](https://huggingface.co/datasets/MARIO-Math-Reasoning/Gaokao2023-Math-En) |
| GSM1K | 按另一数据集风格手工创建 | 2024 | 1.2K | 多样化的「grade school」风格应用题,遵循 GSM8K 的求解分布。论文做 GSM8K vs GSM1K 的 contamination 分析;并暗示 perplexity 分析不太擅长检测 contamination | [Paper](https://arxiv.org/abs/2405.00332)(数据私有) |
| GSM8K | 按考试风格手工创建 | 2021 | 8.5K | 多样化年级数学应用题。加外部计算器效果最好;答案均为正整数,50% 在 0–8 之间;先用 Upwork 标 1K、后用 Scale;出题者拿到 175B GPT-3 的种子题 | [Paper](https://arxiv.org/abs/2110.14168v2) / [Github](https://github.com/openai/grade-school-math) / [HF](https://huggingface.co/datasets/gsm8k) |
| iGSM (med/hard) | 合成 | 2024 | 20K | 用「对象/类别间依赖图(直接/隐式)+ 运算次数」组合生成题目。想法理论上不错但问题很不真实(运算次数过多);论文聚焦模型「心智过程」,拟人化过重;probing 部分不错 | [Paper](https://arxiv.org/pdf/2407.20311) / [HF](https://huggingface.co/datasets/YangZhoumill/infini_igsm_4k_noise_close) |
| GSMHard | 现有数据集改编(换数字) | 2022 | 8.5K | GSM8K 换更大/更少见数字以变难;但替换由程序自动完成,只人工检查了 25 处变更(另 50 例手工做)。想法不错但质量存疑(附录 H1) | [Paper](https://arxiv.org/abs/2211.10435) / [HF](https://huggingface.co/datasets/reasoning-machines/gsm-hard) |
| GSM-IC | 现有数据集扰动 | 2023 | 58K | GSM8K 抽 100 题加无关上下文(模板化无关句 + 角色/数字填充)。测 LLM 在数学推理时对无关上下文的敏感度 | [Paper](https://arxiv.org/abs/2302.00093) / [HF](https://huggingface.co/datasets/voidful/GSM-IC) |
| GSM-Plus | 现有数据集扰动 | 2024 | 10K | GSM8K 每题 8 种变体,GPT-4 生成、人工标注(校验交叉标注一致性)。变体:换数字、换运算、换问题、加干扰项等——作者认为这套变更类型学不错、可扩展 | [Paper](https://aclanthology.org/2024.acl-long.163/) / [HF](https://huggingface.co/datasets/qintongli/GSM-Plus) |
| GSM-Symbolic | 现有数据集模板化 | 2024 | 8.5K | GSM8K 模板化,可随时生成新评测、分析 GSM8K 上的 contamination。含子集(M1/P1/P2 难度等级、NoOp 加看似相关实则无关信息),部分实验用 few-shot;作者认为缺少子集说明表 | [Paper](https://arxiv.org/abs/2410.05229)(待发布) |
| Hungarian HighSchool Finals | 考试题 | 2023 | 33 | 2023 匈牙利高中数学会考题目。目前需手工评分 | [Source](https://dload-oktatas.educatio.hu/erettsegi/feladatok_2023tavasz_kozep/k_matang_23maj_fl.pdf) / [HF](https://huggingface.co/datasets/keirp/hungarian_national_hs_finals_exam) |
| HMWP | 考试题 | 2020 | 5.4K | 中国 K-12 题库标注的应用题。提出统一表示 MWP 方程的形式体系;中文 | [Paper](https://arxiv.org/abs/2010.06823) / [HF](https://huggingface.co/datasets/Gxg/HWMP) |
| Math23K | 网络来源汇编 | 2017 | 23K | 自动抽取的小学数学应用题。中文;来自在线教育网站;基于规则抽取,人工校验程度不明 | [Paper](https://aclanthology.org/D17-1088/) / [HF](https://huggingface.co/datasets/Gxg/Math23K) |
| Math401-LLM | 合成 | 2023 | 401 | 加/减/乘/幂/对数等算术表达式。论文想测严格算术能力;模型目前对 log/trig 或大数表现不佳 | [Paper](https://arxiv.org/abs/2304.02015) / [Github](https://github.com/GanjinZero/math401-llm) |
| MATH | 奥赛题 | 2021 | 12.5K | 真实竞赛题(自然语言+latex),带难度标注。来源 AMC 10/12、AOME 等;另引入从 Khan Academy 与 AMPS 抓取的训练集 | [Paper](https://arxiv.org/abs/2103.03874) / [HF](https://huggingface.co/datasets/lighteval/MATH) |
| MathOdyssey | — | — | — | 原文未提供细节 | — |
| MathQA | 现有数据集改编+标注 | 2019 | 37K | 对 AQuA 中可解题目加形式化标注程序(人工标注并测一致性)。提出数学问题表示语言并应用于 AQuA | [Paper](https://arxiv.org/abs/1905.13319) / [HF](https://huggingface.co/datasets/allenai/math_qa) |
| MAWPS | 现有数据集汇编 | 2016 | 3.3K | 来自现有数据集的应用题。提出创建新数学题的框架,注意去除词法/模板重叠;来源 ALG514、ALGES 等 pre-LLM 数据集 | [Paper](https://aclanthology.org/N16-1136/) / [Github](https://github.com/sroy9/mawps) |
| MiniF2F | 奥赛题 | 2022 | 244 | 奥赛应用题,尽可能用定理证明器形式化(Lean、Metamath、Isabelle)。测数学证明求解器的形式逻辑推理;来源 AIME、AMC、IMO | [Paper](https://arxiv.org/abs/2109.00110) / [HF](https://huggingface.co/datasets/cat-searcher/minif2f-lean4) |
| NPHardEval | 合成 | 2023 | 900 | 由合成图/线性数据构造、难度各异的问题。类型:排序数组搜索、编辑距离、最短路、旅行商、图着色、背包、会议调度;可按需重新生成 | [Paper](https://arxiv.org/abs/2312.14890) / [Github](https://github.com/casmlab/NPHardEval) |
| NuminaMATH CoT | 现有数据集汇编 | 2024 | 860K | K-12 + 奥赛级应用题(组合现有数据集)。来源 AOPS、AMC、AIME、CN-K12、GSM8K、MATH、ORCA_math、合成 AMC/MATH 等。⚠️ 若当训练集会污染所有主流数学 benchmark | [HF](https://huggingface.co/datasets/AI-MO/NuminaMath-CoT) |
| NuminaMATH TiR | 现有数据集汇编 | 2024 | 72K | NuminaMATH CoT 中可用工具集成推理(tool integrated reasoning)解决的子集。同样 ⚠️ 当训练集有污染风险 | [HF](https://huggingface.co/datasets/AI-MO/NuminaMath-TiR) |
| OmniMath | 奥赛题 | 2024 | 2.2K | 从论坛/奥赛网站抽取(规则+LLM 改写)、人工标注验证的奥赛题。来源 IMO、IMC、AoPS 论坛与 wiki;领域标注用 LLM;配套训练了 judge 评估自由形式答案 | [Paper](https://arxiv.org/abs/2410.07985) / [HF](https://huggingface.co/datasets/KbsdJames/Omni-MATH) |
| OlympiadBench | 奥赛题 | 2024 | 8.4K | 奥赛/数学/物理应用题;答案自动评估(数字或方程,用 SymPy)。来源全球数学/物理奥赛、中国地区/国家级数学竞赛、高考模拟;含物理子集;支持 VLM 评测 | [Paper](https://arxiv.org/pdf/2402.14008) |
| OlympicArena | 奥赛题 | 2024 | 11K | 原文未提供内容细节 | [Paper](https://arxiv.org/pdf/2406.12753) |
| PRM800K | 合成 | 2023 | 800K | 标注者对模型生成的 80 万解做的偏好数据。论文提出 process supervision 改进 reward model(对比 output vs process supervision)。更多是训练集而非评测集 | [Paper](https://arxiv.org/abs/2305.20050) / [HF](https://huggingface.co/datasets/tasksource/PRM800K) |
| SVAMP | 现有数据集改编 | 2021 | 1K | 专家对 ASDiv-A 做变体生成、不超过四年级的单未知数算术应用题。变体:同对象不同结构、两者皆变、加相关/无关信息、改信息、反转运算、改句子/对象顺序 | [Paper](https://aclanthology.org/2021.naacl-main.168/) / [Github](https://github.com/arkilpatel/SVAMP/blob/main/SVAMP.json) |
| TabMWP | 在线来源改编 | 2022 | 38K | 需多跳推理的表格应用题,抽取自在线教育网站并人工标注。来源 IXL;表格以图片、半结构化文本、表格三种形式提供;答案可为生成式或 MCQA;经过 turker 测试 | [Paper](https://arxiv.org/abs/2209.14610) / [HF](https://huggingface.co/datasets/Arietem/tabmwp) |
| TAL-SCQ5K-En | 竞赛题 | 2023 | 4K | MCQA 形式应用题,数学表达式为 latex。含中英文;另有 6K 训练样本和 CoT | [HF](https://huggingface.co/datasets/math-eval/TAL-SCQ5K) |
| TemplateGSM | LLM 生成 | 2024 | 7M | GPT-4 按 GSM8K 形态生成的数学应用题(改参数)。用 GPT-4 生成 meta-template,验证器确保可用。全部 LLM 生成,作者期待更强的质量证明 | [Paper](https://templatemath.github.io/TemplateMath_Part_I.pdf) / [HF](https://huggingface.co/datasets/math-ai/TemplateGSM) |
| TheoremQA | 在线来源改编 | 2023 | 800 | 大学级别定理的 QA。流程:GPT-4 枚举相关领域子领域 → 定理候选列表 → 领域专家核实 → 网上找相关 QA | [Paper](https://arxiv.org/abs/2305.12524) / [HF](https://huggingface.co/datasets/TIGER-Lab/TheoremQA) |
### 4.2 Pre-LLM 数据集
> 多为翻译、摘要、推理、常识等「单属性」任务,现已较易解决;不少已被污染,但可能仍有信号。
| 名称 | 任务类型 | 数据规模/内容 | 任务 | 备注 | 链接 |
|---|---|---|---|---|---|
| DeepFix | Code task, Code-to-code, 纠错 | 7K 学生写的错误 C 程序 | 修正 C 程序 | | [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/10742) |
| MLSum | 生成、多语言、摘要 | 1.5M 新闻摘要/文章对(DailyMail、Le Monde、Süddeutsche Zeitung、El Pais、Moskovskij Komsomolets、Internet Haberen/fr/de/es/ru/tur | 摘要 | Palm:加 prompt 前缀、文章截断到 2048 token | [Paper](https://arxiv.org/abs/2004.14900) / [HF](https://huggingface.co/datasets/mlsum) |
| TransCoder | Code task, Code-to-code | 852 个 Python/Java/C++ 并行函数 | 语言间翻译 | | [Paper](https://arxiv.org/pdf/2006.03511.pdf) / [Github](https://github.com/facebookresearch/CodeGen/blob/main/docs/transcoder.md) |
| WMT | 多语言、翻译 | WMT 会议翻译数据集(因年份而异) | 翻译 | 网址中的 2 位数替换为年份 | [Conference](https://www.statmt.org/wmt20/) |
| Adversarial NLI | 语言推理 | 10K entailment 数据集,human-in-the-loop 对抗攻击生成(找迫使模型预测错误标签的谓词);上下文来自 StoryCloze、CommonCrawl、Wikipedia、Open Annotated National Corpus、WikiHow、GLUE | 预测 entailment | R1R3 为数据生成轮次 | [Paper](https://arxiv.org/abs/1910.14599) / [Data](https://dl.fbaipublicfiles.com/anli/anli_v1.0.zip) / [Github](https://github.com/facebookresearch/anli) |
| APPS | Text-to-code | 10K 自然语言 Python 编程题(抓自 leetcode 类网站),带测试套件 | 解 Python 题 | | [Paper](https://arxiv.org/abs/2105.09938) / [Github](https://github.com/hendrycks/apps) / [Data](https://people.eecs.berkeley.edu/~hendrycks/APPS.tar.gz) |
| AQuA | 算术、推理 | 100K 多选题(GMAT、GRE 等),含 question/options/rationale | 选正确答案 | 加外部计算器效果最好 | [Paper](https://arxiv.org/abs/1705.04146) / [Github](https://github.com/deepmind/AQuA) |
| ARC | 常识、推理 | 8K 小学科学题:e = easy set, c = challenge set | 选正确答案 | ⚠️ 是 AI2 Reasoning Challenge,不是 Abstraction and Reasoning Corpus | [Paper](https://arxiv.org/abs/1803.05457) / [Data](https://allenai.org/data/arc) |
| bAbI | 推理 | 20 个任务各 2K 自动生成的问题+短场景(模拟文本冒险游戏生成连续动作) | 对句子推理选正确结论 | 第 4 部分描述模拟环境与约束,很有趣;不难复现到其他推理类型 | [Paper](https://arxiv.org/abs/1502.05698) / [Github](https://github.com/facebookarchive/bAbI-tasks) / [Data](https://research.facebook.com/downloads/babi/) |
| BBQ | 偏见检测 | 58K 样本:两种上下文(模糊/明确偏见)+ 两个问题(负面/非负面)+ 候选答案;手工模板+众包校验 | 预测正确、无偏见的答案;不同上下文/问题下准确率之差构成 bias score | | [Paper](https://aclanthology.org/2022.findings-acl.165/) / [Github](https://github.com/nyu-mll/BBQ/tree/main/data) |
| BLiMP | 语言理解 | 67 个数据集各 1K 人工生成的最小对(minimal pairs),测句法/形态/语义知识;MTurk 校验 | 看模型赋予正确句子的 log-probability 是否更高 | 测:anaphor agreement、argument structure、binding、control/raising、determiner-noun agreement、ellipsis、filler-gap、irregular forms、island effects、NPI licensing、quantifiers、subject-verb agreement | [Paper](https://aclanthology.org/2020.tacl-1.25/) / [Github](https://github.com/alexwarstadt/blimp/tree/master/data) |
| BOLD | 生成、毒性检测 | 23K prompts(取自 Wikipedia 句子开头,含种族/宗教/政治/性别/职业群体成员) | 续写句子,用一系列指标评毒性(情感分析、分类器;HELM 用 Perspective API | | [Paper](https://arxiv.org/abs/2101.11718) / [Github](https://github.com/amazon-science/bold/tree/main/prompts) |
| BooksCorpus | N/A | 11K 本 2 万+ 词的未出版书(16 种体裁,抓自网络) | 原论文用于训练句嵌入模型;模型论文常用于 contamination 或 perplexity 评测 | | [Paper](https://arxiv.org/pdf/1506.06724.pdf) / [HF](https://huggingface.co/datasets/bookcorpus) |
| BooksCorpus_HELM | 生成、记忆 | 从 BooksCorpus 随机抽 1K 本书 | 从段落开头随机 token 数续写,测精确/近似复现 | | [Paper](https://arxiv.org/abs/2211.09110) / [Data](https://drive.google.com/file/d/10uC4jM6tgI1pgtq--07FFHQ2Te7-SXGA/view) |
| BoolQ | 语言推理/理解 | 16K 自然发生的 Yes/No QA(问题+Wikipedia 上下文) | 回答 MCQA | | [Paper](https://arxiv.org/abs/1905.10044) / [Website](https://super.gluebenchmark.com/tasks) |
| CB | 语言理解 | 1.2K 语篇(WSJ 新闻、BNC 小说、Switchboard 对话),含上下文+目标句 | 预测 commitment entailment | | [Paper](https://semanticsarchive.net/Archive/Tg3ZGI2M/Marneffe.pdf) / [Website](https://super.gluebenchmark.com/tasks) |
| Civil comments | 毒性检测 | 1.8M 在线评论,众包标注(按 Perspective API 指南);其中 450K 标注了身份词 | 毒性预测;标签用于发现模型偏见 | 原论文含合成测试集(77K,模板生成,50 个身份词,50/50 毒性)与人工标注集 | [Paper](https://arxiv.org/pdf/1903.04561.pdf) / [Kaggle](https://www.kaggle.com/c/jigsaw-unintended-bias-in-toxicity-classification) / [HF](https://huggingface.co/datasets/civil_comments) |
| Clean E2E NLG | 描述、生成 | 50K 众包生成的餐厅描述(给定 key-value,如食物类型、预算) | 生成描述 | | [Paper](https://arxiv.org/abs/1706.09254) / [HF](https://huggingface.co/datasets/e2e_nlg_cleaned) |
| CNN/DailyMail | Cloze/完成、摘要 | 原始:20 万新文档(CNN/DailyMail20072015)转 Cloze 格式(去掉命名实体作 key) | HELM:用完整文档做摘要、highlights 作 gold | 作者怀疑生成不了很好的摘要 | [Paper](https://arxiv.org/pdf/1506.03340.pdf) / [HF](https://huggingface.co/datasets/cnn_dailymail) / [Data](https://cs.nyu.edu/~kcho/DMQA/) |
| CommonsenseQA | 常识、推理 | 12K turked QA(从 ConceptNet 关联初始化),质量过滤+Google 搜索上下文 | 回答 MCQA | 部分文本可能与 CC 数据重叠 | [Paper](https://aclanthology.org/N19-1421/) |
| Contrast Sets | 生成、鲁棒性 | 10 个对比集(最多 1K 例),由(通常是原论文的)研究者构造(加推理步骤、词换反义、改数字等) | 用新样本跑原任务,看性能是否下降;HELM 用 IMDb 与 DROP 对比集 | 涉及 NLVR2、IMDb、MATRES、UD parsing、PERSPECTRUM、DROP、Quoref、ROPES、BoolQ、MC-TACO;构造细节在附录 | [Paper](https://aclanthology.org/2020.findings-emnlp.117/) / [Data](https://allenai.org/data/contrast-sets) |
| COPA | 常识、语言理解 | 1K 前提+因果问题(带备选) | 常识选择 | | [Paper](https://people.ict.usc.edu/~gordon/publications/AAAI-SPRING11A.PDF) / [Website](https://super.gluebenchmark.com/tasks) |
| CoQA | 上下文阅读理解 | 127K 对话式 QA(需给 rationale),标注者编写 | 对话式问答 | | [Paper](https://arxiv.org/abs/1808.07042) / [Data](https://stanfordnlp.github.io/coqa/) |
| DataImputation | 现实任务、推理、结构化数据 | 8 个来源的结构化数据集 | 从带空缺属性的行补全空缺(如从电话号码推城市、从规格推手机品牌) | 表 2 有全部来源;HELM 用 Buy 与 Restaurant 子集,转自然语言测准确率 | [Paper](https://sxsong.github.io/doc/21icde-imputation.pdf) / [Data restaurant](https://www.cs.utexas.edu/users/ml/riddle/data/restaurant.tar.gz) / [Data Buy](https://dbs.uni-leipzig.de/file/Abt-Buy.zip) |
| Digits arithmetics (2D+, 2D-, 3D+, …) | 算术 | n 位加减法、复合运算,各 2K 例 | 解题 | 链接来自 lm-evaluation-harness 的 lm_eval/datasets/arithmetic | [Paper](https://arxiv.org/pdf/2005.14165.pdf) / [Github](https://raw.githubusercontent.com/openai/gpt-3/master/data/) |
| DROP | 算术、上下文阅读理解 | 55K 对抗性问题:需 1) 从文本中选相关项 2) 对其计算(排序/计数等) | 选与算 | | [Paper](https://aclanthology.org/N19-1246/) / [Data](https://allenai.org/data/drop) |
| Dyck language_HELM | 符号操作 | 500 个 D_n 词(52–100 字符的嵌套括号),去掉最后 i 个字符 | 预测唯一闭括号序列 | BigBench 有另一版本 | [Paper](https://arxiv.org/abs/2211.09110) / [Github](https://github.com/stanford-crfm/helm/blob/main/src/helm/benchmark/scenarios/dyck_language_scenario.py) |
| HellaSwag | Cloze/完成 | 60K 对抗过滤的多选题 | 选正确的下一句(来自 caption 或 WikiHow | | [Paper](https://aclanthology.org/P19-1472/) / [Github](https://github.com/rowanz/hellaswag/tree/master/data) |
| HumanEval | Code task, Text-to-code | 164 个手写编程题(函数签名+docstring+函数体+单元测试) | 补全函数以通过单元测试 | | [Paper](https://arxiv.org/abs/2107.03374) / [HF](https://huggingface.co/datasets/openai_humaneval) |
| IMDB | 情感分析 | 50K IMDB 评论,正(≥7)负(≤4)各半,无中性 | 正/负分类 | | [Paper](https://aclanthology.org/P11-1015/) / [Website](https://ai.stanford.edu/~amaas/data/sentiment/) |
| LAMBADA | Cloze/完成 | 10K 叙事上下文(BookCorpus)+ 句子(掩掉最后一个词) | 预测最后一个词 | 特意构造以强制使用上下文 | [Paper](https://aclanthology.org/P16-1144/) / [Zenodo](https://zenodo.org/record/2630551#.YFJVaWT7S_w) |
| Language Modeling_HELM | 语言建模 | HELM 汇编多数据集:WikiText-103、ThePilearXiv、BooksCorpus2、Enron Emails、PubMed Central、Wikipedia)、TwitterAAE、ICE | 全序列条件 log-probabilityperplexity | | [Paper](https://arxiv.org/abs/2211.09110) / [The pile](https://pile.eleuther.ai/) / [Wikitext](https://s3.amazonaws.com/research.metamind.io/wikitext/wikitext-103-raw-v1.zip) / [Twitter AAE](http://slanglab.cs.umass.edu/TwitterAAE/) / [ICE](https://www.ice-corpora.uzh.ch/en/access.htm) |
| LegalSupport | Entailment、现实任务、推理 | 20K 法律 entailment 场景(州/联邦法律意见;断言作上下文,随机选 2 条支撑来源) | 找最支持断言的规则 | | [Paper](https://arxiv.org/abs/2211.09110) / [Data](https://docs.google.com/uc?export=download&id=1PVoyddrCHChMxYrLhsI-zu7Xzs5S8N77) |
| LinuxKernel_HELM | 生成、记忆 | 从 Linux 内核随机抽 2K 函数 | 从函数开头随机行数续写,测精确/近似复现 | | [Paper](https://arxiv.org/abs/2211.09110) / [Data](https://drive.google.com/file/d/1Y5piYwil7T6n8toT_-d7NWqVZHh9NVxJ/view) |
| LSAT | 分析推理、阅读理解、逻辑推理 | 10K LSAT 题(分析推理、逻辑推理、阅读理解),带上下文 | 正确回答 MCQA | | [Paper](https://arxiv.org/pdf/2108.00648.pdf) / [Github](https://github.com/zhongwanjun/AR-LSAT/tree/main/data) |
| Magellan Benchmark | 现实任务、推理、结构化数据 | 多来源 23 个数据集(实体+属性);dirty 数据集故意加入错列、拼写错误等 | 判断两个表中两个实体是否同一 | Abt-Buy 和 Buy 可能是同一数据集 | [Paper](https://pages.cs.wisc.edu/~anhai/papers1/deepmatcher-sigmod18.pdf) / [Github](https://github.com/anhaidgroup/deepmatcher/blob/master/Datasets.md) |
| MBPP | Code task, Text-to-code | 1K 入门级 Python 众包编程题(描述、解答、3 个单元测试)——58% 数学、43% 列表处理、19% 字符串处理、9% 整数序列、2% 其他 | 解 Python 题 | 还有 400 项编辑版(无歧义 prompt+好签名,可研究 prompt 对代码生成的影响)+ MathQA-Python | [Paper](https://arxiv.org/abs/2108.07732) / [Github](https://github.com/google-research/google-research/tree/master/mbpp) / [HF](https://huggingface.co/datasets/mbpp) |
| MMLU | 语言理解 | 15K 多选题(法律、哲学、经济、心理、STEM、医学等,高中到专业水平),人工从网络收集 | 回答 MCQA | 看起来是很强/高质量的 baseline | [Paper](https://arxiv.org/abs/2009.03300) / [HF](https://huggingface.co/datasets/lukaemon/mmlu) / [Github](https://github.com/hendrycks/test) |
| MRF (Misinfo Reaction Frames) | 生成、错误信息能力 | 20 万对新闻标题声明(气候、新冠、癌症等)+ 标签(真实/错误信息);MTurk 标注真实性、传播可能性、作者意图 | 预测 gold 标签或生成可能的作者意图/读者感知 | 含 NELA-GT-2018-2020、SciDCC、Climate-FEVER、CoAID、CoronaVirusFacts、ESOC、DETERRENT 数据 | [Paper](https://aclanthology.org/2022.acl-long.222/) / [Github](https://github.com/skgabriel/mrf-modeling) |
| MS MARCO | QA、检索 | 100 万匿名问题+自由形式人工答案(来自相关网页摘要),部分带改写 | 原论文 3 任务:1) 生成正确回答 2) 无上下文也合理 3) 对 1000 段落排序 | HELM 只看排序任务,相关性用「Does the passage answer the query?」的 log-likelihood 估计 | [Paper](https://arxiv.org/abs/1611.09268) / [Github](https://microsoft.github.io/msmarco/) |
| MS MARCO TREC (TREC 2019) | 检索 | 从 MS MARCO 派生的数据集(段落/文档检索,全量或 top-n 重排:文档 100 / 段落 1000 | 检索/重排 | | [Paper](https://arxiv.org/abs/2003.07820) / [Data](https://trec.nist.gov/data/deep2019.html) / [Github](https://microsoft.github.io/msmarco/TREC-Deep-Learning-2019.html) |
| MultiRC | 语言理解、QA | 6K 多主题多选题 | | | [Paper](https://aclanthology.org/N18-1023.pdf) / [Data](https://super.gluebenchmark.com/tasks) |
| NarrativeQA | QA、检索 | 47K 自由形式人工问题与答案,关联 1.5K 书(Gutenberg)+ 电影剧本(抓取),配剧情摘要 | 从摘要或故事回答/选择 | 长上下文测试可用完整故事做 QA;对话类可能有趣 | [Paper](https://arxiv.org/abs/1712.07040) / [Github](https://github.com/deepmind/narrativeqa) |
| Natural Questions | 开放域/闭卷 QA | 20.7 万聚合 Google 搜索查询+标注的 Wikipedia 答案样本 | | | [Paper](https://aclanthology.org/Q19-1026/) / [Data](https://ai.google.com/research/NaturalQuestions/download) |
| NewsQA | QA | 10 万人工 QA 对(12K CNN 新闻文章);问题由标题+摘要生成、答案由问题+文章生成,经验证机制保留 | | 可能与 CNN/DailyMail 有交集(抽取脚本相同) | [Paper](https://aclanthology.org/W17-2623/) / [Github](https://github.com/Maluuba/newsqa) |
| OpenBookQA | 常识、推理 | 6K 句子,需常识推理外推到新情境的科学推理 | | | [Paper](https://arxiv.org/abs/1809.02789) / [Data](https://allenai.org/data/open-book-qa) |
| PIQA | 常识、推理 | 20K 物理常识推理情境 | 从上下文与答案中选正确动作 | | [Paper](https://arxiv.org/abs/1911.11641) / [Data](https://yonatanbisk.com/piqa/data/) |
| PopularBooksCorpus_HELM | 生成、记忆 | BooksCorpus 中出现在畅销书榜的 20 本书 | 从书首段开头随机 token 数续写,测精确/近似复现 | | [Paper](https://arxiv.org/abs/2211.09110) / [Data](https://drive.google.com/file/d/1RT29rRKNNXKgZBhXNbqevLwR440g44it/view) |
| QuAC | 上下文阅读理解 | 10 万信息寻求型 QA 情境(用 Wikipedia 生成) | | | [Paper](https://aclanthology.org/D18-1241/) / [Data](https://quac.ai/) |
| RACE | 上下文阅读理解 | 10 万中国初/高中生英语阅读理解题 | | | [Paper](https://aclanthology.org/D17-1082/) / [Data](https://www.cs.cmu.edu/~glai1/data/race/) |
| RAFT | 现实任务、文本分类 | 11 个自然分类任务数据集汇编,150–5K 测试项 | 从 50 个标注样本做 few-shot 分类(医学、金融、研究、英语、法律、物理、AI 安全、社交网络) | 语料:ADE Corpus v2、Banking77、NeurIPS 2020 impact statement risks、OneStopEnglish、Overrruling、Systematic review inclusion、TAI safety research、Terms of Service、TweetEval Hate、Twitter complaints、Semiconductor org types | [Paper](https://arxiv.org/abs/2109.14076) / [HF](https://huggingface.co/datasets/ought/raft) |
| RealToxicityPrompts | 生成、毒性检测 | 10 万自然句子(OpenWebText≈reddit 选,PerspectiveAPI 打分),拆成 prompt+continuation | 续写并用 PerspectiveAPI 评毒性 | | [Paper](https://arxiv.org/abs/2009.11462) / [Data](https://allenai.org/data/real-toxicity-prompts) / [Github](https://github.com/allenai/real-toxicity-prompts) |
| ReCoRD | 语言理解 | 12 万 passage/cloze query/answer 样本(CNN、DailyMail 新闻),人工过滤 | | | [Paper](https://arxiv.org/abs/1810.12885) / [Data](https://super.gluebenchmark.com/tasks) |
| RTE | 语言理解 | 3K entailment 竞赛数据汇编 | | | [Paper](https://w4ngatang.github.io/static/papers/superglue.pdf) / [Data](https://super.gluebenchmark.com/tasks) |
| SAT analogies | 语言理解 | 2005 年前的 374 道 SAT 类比题(a is to b what c is to …,词汇非高频) | | | [Paper](https://arxiv.org/pdf/2005.14165.pdf) / [Data dev](https://goo.gl/XWjas1) / [Data test](https://goo.gl/BcTtB4) |
| SIQA | QA | 原文未提供细节 | | | |
| SQuADv2 | 上下文阅读理解 | SQuAD + 5 万不可回答的问题 | 从上下文给出答案,但仅当可能 | | [Paper](https://arxiv.org/abs/1806.03822) / [Github](https://rajpurkar.github.io/SQuAD-explorer/) |
| StoryCloze | Cloze/完成、常识 | 5 万 5 句常识故事 | 选择正确结尾 | | [Paper](https://aclanthology.org/N16-1098/) / [HF](https://huggingface.co/datasets/story_cloze) |
| StrategyQA | 常识、推理 | 2.8K 需隐式知识推理的问题 | | 加外部计算器效果最好 | [Paper](https://arxiv.org/abs/2101.02235) |
| Synthetic reasoning (natural) | 逻辑推理 | 即时生成的合成数据:合成规则(条件句)、事实(属性)、逻辑 gold 输出 | | HELM 中也叫 rule_induct | [Paper](https://arxiv.org/abs/2211.09110) / [Github](https://github.com/stanford-crfm/helm/blob/main/src/helm/benchmark/scenarios/synthetic_reasoning_natural_scenario.py) |
| Synthetic reasoning (symbolic)_HELM | 逻辑推理、符号操作 | 用模板即时生成的合成数据 | 测模式识别("beach + beach - pear" → "A + A - B")或给定模式做字符串替换 | | [Paper](https://arxiv.org/abs/2211.09110) / [Github](https://github.com/stanford-crfm/helm/blob/main/src/helm/benchmark/scenarios/synthetic_reasoning_scenario.py) |
| TriviaQA | 开放域/闭卷 QA | 9.5 万 trivia QA(组合式问题、句法多样) | | | [Paper](https://aclanthology.org/P17-1147/) / [Data](https://nlp.cs.washington.edu/triviaqa/) |
| TruthfulQA | QA | 817 个关于棘手事实主张的问题(常见误解、谬误等,38 类),含真/假参考答案+支持真实答案的来源(另有 +380 题) | | | [Paper](https://arxiv.org/abs/2109.07958) / [Github](https://github.com/sylinrl/TruthfulQA) |
| TyDiQA-GoldP | 多语言、QA | 20.4 万多语言 QA 对(en、ar、ben、fin、ind、ja、ko、ru、tel、th、kiswahili | MCQA | 生成过程可能问题欠定义、问题与答案语言水平不匹配;可能比其他数据集难 | [Paper](https://aclanthology.org/2020.tacl-1.30/) / [Github](https://github.com/google-research-datasets/tydiqa) |
| Web Questions | 开放域/闭卷 QA | 从 Google Search API 抽取 10 万 "Wh?" 问题,MTurk 标注(答案可能部分过时) | MCQA | | [Paper](https://aclanthology.org/D13-1160/) / [Website](https://nlp.stanford.edu/software/sempre/) |
| WebNLG | 生成、言语化 | 1.3 万三元组(subject/property/object,来自 DBPedia)与句子言语化(众包)的映射;主题:宇航员、大学、纪念碑、建筑、漫画角色、食物、机场、运动队、著作 | 语法正确的言语化 | 选句偏流畅、句子相对简单;无标注者来源描述,可能非「标准英语」 | [Paper](https://aclanthology.org/P17-1017.pdf) / [HF](https://huggingface.co/datasets/web_nlg) |
| WiC | 语言理解 | 7K,判断一个词在两个不同上下文是否同义 | | | [Paper](https://aclanthology.org/N19-1128/) / [Site](https://super.gluebenchmark.com/tasks) |
| WikiFact_HELM | Cloze/完成 | 12 个领域 1K 三元组(subject, relation, object),从 Wikipedia 采样并清理 | 预测关系句中的缺失项 | | [Paper](https://arxiv.org/abs/2211.09110) / [Codalab](https://worksheets.codalab.org/rest/bundles/0x8c3b60eb7c6b462e822a150f194d3b35/) / [Github](https://github.com/stanford-crfm/helm/blob/main/src/helm/benchmark/scenarios/wikifact_scenario.py) |
| WikiLingua | 生成、多语言、摘要 | 4.3 万文章/摘要对(WikiHow 18 种语言);摘要=各步摘要句拼接,文章=详细段落 | 摘要 | Palmprompt 前缀+截断 2048 token;怀疑数据创建导致摘要基线「机械化」语言,可能低估更流畅的摘要(ROUGE 应不太受影响) | [Paper](https://aclanthology.org/2020.findings-emnlp.360/) / [Github](https://github.com/esdurmus/Wikilingua) |
| Winogender | 偏见检测 | 原文未提供细节 | | | |
| Winograd | 推理、Winograd | 273–285 个例句:消解代词指代(特意构造得对统计方法难、对人容易) | 代词消解 | 作者不确定 GPT-3 评测用的是这个还是 SuperGLUE 版 | [Paper](https://dl.acm.org/doi/10.5555/3031843.3031909) / [Website](https://cs.nyu.edu/~davise/papers/WinogradSchemas/WSCollection.xml) |
| WinoGrande | 推理、Winograd | 4.3 万句对抗性 Winograd 句 | | | [Paper](https://arxiv.org/abs/1907.10641) / [Website](https://winogrande.allenai.org/) |
| WSC | 语言理解、Winograd | Winograd Schema Challenge | | | [Paper](https://w4ngatang.github.io/static/papers/superglue.pdf) / [Website](https://super.gluebenchmark.com/tasks) |
| XSUM | 摘要 | 22.6 万 BBC 新闻文章(20102017WayBack 机器抽取)+单句摘要(来自文章本身) | 摘要 | 领域:新闻、政治、体育、天气、商业、科技、科学、健康、家庭、教育、娱乐、艺术;可手动检查模型近期知识是否让旧闻摘要产生差异 | [Paper](https://aclanthology.org/D18-1206/) / [HF](https://huggingface.co/datasets/xsum) / [Github](https://github.com/EdinburghNLP/XSum) |
### 4.3 作者提出的、可自行复现的数据集想法(✍️)
| 名称 | 任务类型 | 内容 | 来源 |
|---|---|---|---|
| ✍️ GSM8K-Python | Code task, Text-to-code | GSM8K 的 Python 版(8.5K 年级数学题) | [Paper](https://arxiv.org/abs/2204.02311) |
| ✍️ MRF | 生成、人工评测、错误信息能力 | 从 MRF 抽 250 条标题,按论点聚成 80 簇;任务:从论点+5 条标题生成支持论点的可信标题;标注者评估 1) 是否支持论点 2) 是否看起来真实 | [Paper](https://arxiv.org/abs/2211.09110) / [Data](https://drive.google.com/uc?export=download&id=1uVJbsgPCHFAvH43I6SVvU3Ayo8dh-y_N)[原始流程报告](https://cset.georgetown.edu/publication/truth-lies-and-automation/) 第 6 页 + HELM 论文 8.5.2、E.5、5.5 节 |
| ✍️ News article generation | 生成 | 从标题与副标题生成 25 篇文章,80 人判断是生成还是原创 | [Paper](https://arxiv.org/abs/2005.14165)GPT-3 |
| ✍️ Numeracy Prediction | 符号操作 | 给几个例子做符号回归(symbolic regression),把数字关系应用到新输入 | [Paper](https://arxiv.org/abs/2211.09110) / [Github](https://github.com/stanford-crfm/helm/blob/main/src/helm/benchmark/scenarios/numeracy_scenario.py) |
| ✍️ SVG datasets | — | 构造 SVG 数据集,看模型能否生成或解释 SVG 绘图 | [Twitter thread](https://twitter.com/zswitten/status/1631178997508997120) |
| ✍️ Theory of the mind datasets | — | 心智理论数据集,可能很容易生成 | [Paper](https://arxiv.org/abs/2302.08399) |
| ✍️ Wedging prompts | 生成、人工评测、错误信息能力 | 11 个带特定意图的 prompt(如影响投票行为、生成支持/反对 X 的言论定向特定群体),各加 3 个示例,生成后续示例 | [Paper](https://cset.georgetown.edu/wp-content/uploads/CSET-Truth-Lies-and-Automation.pdf) / [Data](https://drive.google.com/uc?export=download&id=1kWB3_F4Tobc_oVGC_T-a5DHEh-AB4GTc);HELM 人工评测:1) 是否针对目标群体 2) 是否支持目标信息 3) 是否分裂 |
| ✍️ Word scrambling | 符号操作 | 5 个字符操作任务各 1 万例(循环字母、字母重排、随机插入、反转),恢复原词 | [Paper](https://arxiv.org/abs/2005.14165)GPT-3 §3.9.2);容易生成/自动化 |
---
## 5. Tips and Tricks
### 5.1 管理污染(Managing contamination
总原则:**凡是公开在网上的数据集,都应假设它已经(或将会)被污染**。
缓解措施:
1. **提供 canary string(金丝雀字符串)**——如 [BigBench](https://github.com/google/BIG-bench) 的做法:在评测集中放一个特殊字符组合,模型创建者可以在自己的训练集里搜索它,一旦出现即表明训练集含有评测数据。
2. **以加密([encrypted](https://arxiv.org/abs/2309.16575))或门控([gated](https://huggingface.co/datasets/Idavidrein/gpqa),如 GPQA)形式提供评测集**——让网络爬虫难以解析,从而不会意外进入训练集。
3. **运行动态 benchmark[dynamic benchmarks](https://arxiv.org/abs/2104.14337)**——随时间定期更新,模型无法「把答案背下来」(但数据集成本更高)。
4. **事后检测污染([detect contamination](https://arxiv.org/abs/2311.06233)**——例如看生成结果的 perplexity,或设计对抗性 prompt 变体。注意:**没有哪种污染检测方法是万无一失的**。
不过也要记住:**数据集被污染不代表它不再有趣、不再有信号**——训练过程中它依然有用。
### 5.2 实战中会遇到的问题
#### 微调模型、system prompt 与 chat template
很多 instruction-tuned 模型如果没做到以下几点,表现会非常差:
- 在**推理的最开始加上它们的 system prompt**
-**chat template** 提示它们(通常是在对话轮次上加 `Assistant` / `User` 前缀——详见 ⭐ [这个指南](https://huggingface.co/docs/transformers/main/en/chat_templating))。
另外,**不要假设不同 tokenizer 行为相同**,尤其是在 chat template 方面——参见 ⭐ [这条推文](https://x.com/danielhanchen/status/1796952220619157694) 里关于 tokenization 空格与 chat template 的示意图:
![Spacing, tokenization and template](https://pbs.twimg.com/media/GPANfpiasAA9b6F?format=png&name=medium)
#### Tokenization 细节
**1. 上下文与选项一起分词、还是分开分词**
- 做 MCQA 评测时,一般应把**上下文和选项一起分词**tokenize context + choices together),这样产生的是模型看来自然/可能的 token 序列。
- 但有些 tokenizer(如 [Llama 的](https://github.com/EleutherAI/lm-evaluation-harness/pull/531#issuecomment-1595586257))不满足 `enc(context + choice) = enc(context) + enc(choice)`(会增删空格)。这意味着比较各选项的 log-probability 不容易——上下文 token 可能「渗入」选项 token,破坏比较。
- 若你的模型如此:可以先**分别计算 context 和 choice 的 token,再去掉各自附加的特殊开始/结束 token 后拼接**。
**2. 注意开始与结束句子 tokenstart / end of sentence tokens**
- 有些模型(如 `Gemma`)对[推理时是否包含 start-of-sentence token](https://github.com/EleutherAI/lm-evaluation-harness/pull/1465) 极其敏感。你可能要做几个实验确认你的模型是否如此,必要时手动加上这些 token。
- 还可能遇到模型不在你期望的结束 token(如 `\n`)上停止的情况——因为模型不会单独预测该 token,而是把它包含在更高级 token 里(例如 `\n\n` 在代码模型中可能是单个 token)。此时需要加一个「**回溯(backtrack)**」检查:在计算 metric 前把生成文本在正确位置截断。
**3. 多语言与 tokenization**
- 做多语言评测时,要根据评测任务和 metric 决定如何分词。有些语言**不用空格作词分隔符**(韩语、泰语、日语、中文等),需要语言特定的 tokenizer 才能正确切分,否则会影响 [BLEU](https://github.com/EleutherAI/lm-evaluation-harness/issues/212)、F1 等指标得分。
**4. 代码评测与结束句子 token**
- 代码模型通常把 `\n\t` 训练成**单个 token**,生成时常一步产生 `\n\t`
- 若任务把 `\n` 定义为结束 token(停止生成),模型在预测 `\n\t`(作为一个 token,不等于 `\n`)后仍会继续生成,而你其实希望它停下来。
- 对策:要么**更新你的结束 token 集合**,要么定义一个**基于字符表示回溯最新 token 的机制**,事后停止并截断生成。
#### MCQA 评测的提速技巧
- 若任务只需模型预测**一个 token**,可以大幅提速:
- 不用跑 `number_of_choices` 次推理(`context + choice 1``context + choice 2` …),只需对 `context` 做一次推理,直接取**全词表概率分布**(其中包含所有单 token 选项),一次拿到所有目标 log-probability。
- 这正是 `lighteval` 的做法。
### 5.3 生成式评测结果异常差时的排查
第一步永远是**仔细检查模型的生成结果**。常见问题:
| 常见问题 | 修复 |
|---|---|
| **输出解析过严**(算 metric 之前),导致答案丢失 | 调整你的解析逻辑 |
| **模型无法在 few-shot 中遵循输出格式**(近期训了指令数据的模型很常见,如 llama 3.2、Qwen 2.5 | 要么调整 prompt 格式,要么就假设模型应当能在 few-shot 中遵循它 |
| **模型过于啰嗦、永远到不了正确答案**(长上下文模型更常见;作者在 Qwen 和 CommandR 上观察到) | 要么加大允许的上下文长度,要么在 task prompt 里加「请简洁」指令,要么就假设模型应当能简洁作答 |
---
## 6. 参考资料
### 原文(GitHub evaluation-guidebook
- 章节总览:`contents/automated-benchmarks/`
- [basics.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/automated-benchmarks/basics.md)
- [designing-your-automatic-evaluation.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/automated-benchmarks/designing-your-automatic-evaluation.md)
- [some-evaluation-datasets.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/automated-benchmarks/some-evaluation-datasets.md)
- [tips-and-tricks.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/automated-benchmarks/tips-and-tricks.md)
- 指南仓库:https://github.com/huggingface/evaluation-guidebook (已迁移至 [OpenEvals/evaluation-guidebook](https://huggingface.co/spaces/OpenEvals/evaluation-guidebook),见 [[00-Overview]]
### 指南内部其他章节(交叉引用)
- [Model inference and evaluation](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/model-inference-and-evaluation.md)(生成式 vs log-probability 输出、约束输出)
- [Troubleshooting reproducibility](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/troubleshooting/troubleshooting-reproducibility.md)(不同 prompt 对结果的影响)
- [Using human annotators](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/human-evaluation/using-human-annotators.md)(人工标注者)
### 作者推荐的外部链接(⭐)
- ⭐ 作者的个人 evals 博客:[LLM Evaluationclefourrier](https://huggingface.co/blog/clefourrier/llm-evaluation)(与本文有部分重叠)
- ⭐ [Cosmopedia 博客](https://huggingface.co/blog/cosmopedia)(用 LLM 造合成数据集)
- ⭐ [lighteval Metric List wiki](https://github.com/huggingface/lighteval/wiki/Metric-List)metric 清单)
- ⭐ [Transformers chat templating 指南](https://huggingface.co/docs/transformers/main/en/chat_templating)
- ⭐ [tokenization 空格与 chat template 示意图(Daniel Han 推文)](https://x.com/danielhanchen/status/1796952220619157694)
- ⭐ [Prompts vs. Leaks: 模型过拟合评测格式的论文](https://arxiv.org/abs/2407.07890)
- ⭐ [Challenges in evaluating LLMsehudreiter 博客,为何要测最差表现)](https://ehudreiter.com/2024/07/10/challenges-in-evaluating-llms/)
### 论文与工具链接(正文出现)
**污染相关**[BigBench canary](https://github.com/google/BIG-bench) · [加密评测](https://arxiv.org/abs/2309.16575) · [GPQA gated 数据集](https://huggingface.co/datasets/Idavidrein/gpqa) · [动态 benchmark](https://arxiv.org/abs/2104.14337) · [污染检测](https://arxiv.org/abs/2311.06233)
**设计与方法**[选项顺序偏好](https://arxiv.org/abs/2309.03882) · [Open LLM Leaderboard drop(归一化不公平)](https://huggingface.co/blog/open-llm-leaderboard-drop) · [NPHardEval](https://arxiv.org/abs/2312.14890) · [DyVal](https://arxiv.org/abs/2309.17167) · [MuSR](https://arxiv.org/abs/2310.16049) · [bAbI](https://arxiv.org/abs/1502.05698)
**工具**[lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness)PR [#531 Llama tokenizer](https://github.com/EleutherAI/lm-evaluation-harness/pull/531#issuecomment-1595586257)、PR [#1465 Gemma SOS token](https://github.com/EleutherAI/lm-evaluation-harness/pull/1465)、[Issue #212 多语言 BLEU](https://github.com/EleutherAI/lm-evaluation-harness/issues/212))· [lighteval](https://github.com/huggingface/lighteval)
> 数学/Pre-LLM 数据集的全部论文与数据链接见 [第 4 节表格](#4-常用评测数据集盘点)。
@@ -0,0 +1,313 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- human-evaluation
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# 人工评测(Human Evaluation
> 来源:HuggingFace LLM Evaluation Guidebook — Human Evaluation 章节提炼
> 原文章节:basics / using-human-annotators / tips-and-tricks
> 本笔记为提炼式笔记(非逐字翻译),覆盖原文核心概念、实操建议与经验教训。
**三篇原文的关系(阅读地图):**
1. `basics.md` —— 概念层:什么是人工评测、三种系统化方式、两种非正式方式、优缺点。
2. `using-human-annotators.md` —— 组织层:如何选择、付费、培训、质量控制标注者。
3. `tips-and-tricks.md` —— 实操层:任务设计、标注过程中的注意事项、人机混合标注与端到端教程。
> 原文建议的阅读顺序:先读 `using-human-annotators`,再读 `tips-and-tricks`。
## 什么是人工评测
**人工评测(human evaluation** 的定义非常简单:**让人类来评估模型**。与用另一个模型来打分的 LLM-as-a-judge 路线不同,人工评测以人类判断为最终裁判。
本文档聚焦于**事后评测(post-hoc evaluation**这一场景:
- 模型已经训练完成;
- 你心里有一个明确的任务(given task);
- 人类为模型的输出提供分数。
也就是说,这里不涉及训练过程中的即时反馈,而是模型成型之后、针对特定任务的能力度量。
### 系统化评测:三种主要方式
原文把系统化人工评测归纳为**三种方式**,区别在于你手上已经拥有什么资源(数据集、分数):
| 场景 | 你提供什么 | 人类做什么 | 示例 |
| --- | --- | --- | --- |
| **① 无数据集** | 一个任务 + 评分指南(scoring guidelines+ 一个(或多个)**可交互的模型** | 与模型交互后,给出**分数和推理(reasoning)** | 「试着让这两个模型输出有毒语言;模型有毒得 0 分,无毒得 1 分」 |
| **② 已有数据集** | 用数据集中的 prompt 去问模型,然后把 **prompt + 模型输出 + 评分指南** 一起交给标注者 | 按指南对每条输出打分 | 「模型若回答了隐私信息得 0 分,否则得 1 分」 |
| **③ 已有数据集 + 已有分数** | 你已有的评测方法、数据集和分数 | 做 **error annotation**(错误标注/错误审查),审查评测方法本身是否合理 | — |
**第三种方式需要特别说明:**
- **error annotation** 是检验一个新评测系统时**非常重要的一步**。它本质上是"评测一个评测"evaluating an evaluation),严格来说略超本文范围;但它也可以当作第二种方式的评分机制来使用。
- 参考阅读:[Error Annotations to Evaluate](https://ehudreiter.com/2022/06/01/error-annotations-to-evaluate/)Ehud Reiter 的博客,解释了如何用错误标注来评估评测系统)。
**两个补充说明(Notes):**
- 对于**已部署的生产模型**,也可以直接收集用户反馈,并在此基础上做 **A/B 测试**(不需要专门组织标注团队)。
- **AI audits**[外部系统化评测](https://arxiv.org/abs/2401.14462),即对模型的外部系统性审查)通常基于人类判断,也属于人工评测范畴,但不在本文档范围内。
### 三种方式的选型速记
- 想**探索一组能力**、还没有现成数据 → 用方式①,给人类一个任务和评分指南,让他们自由与模型交互。
- 想确认模型**在特定输入上不会出错**(如"不该回答的 prompt")→ 用方式②,把 prompt、输出、指南一起给标注者。
- 想**验证新评测方法是否靠谱** → 用方式③,让人类对已有分数做 error annotation。
## 非正式评测(Casual Evaluation
除了系统化评测,还有两种更随意的、同样基于人类的评测方式。
### Vibes-checks(氛围检查/体感评测)
- **定义**:由个人完成的**手动评测**,通常使用**未公开的 promptundisclosed prompts**,以获得对模型在大量用例上表现的整体感受——用例范围从写代码到"小黄文质量(quality of smut written"这种五花八门的场景。
- **传播方式**:结果经常被分享到 Twitter 和 Reddit 上。
- **本质局限**:这些结果大多构成**轶事证据(anecdotal evidence**,并且**高度敏感于确认偏误(confirmation bias**——换句话说,**人们往往会找到他们想找的东西**。
- **价值定位**:尽管证据强度低,它仍然可以作为**你自己用例的良好起点**(例如用别人的 vibes-check 结果来挑选值得深入测试的模型方向)。
- 参考:[Vibe Checks Are All You Need](https://olshansky.substack.com/p/vibe-checks-are-all-you-need)
### Arenas(竞技场)与 Elo 排名
- **定义****众包式人工评测(crowdsourced human evaluation**,目的是给模型排名。
- **典型例子**[LMSYS chatbot arena](https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard):社区用户被邀请与模型聊天,直到判断出某个模型比另一个更好。
- **机制**:投票被聚合进 **Elo 排名(Elo ranking**——一种基于对局/两两比较(matches)的排名系统——用来选出"最好的"模型。
- **特点**:把"哪个更好"的主观判断拆解成大量成对比较,再通过 Elo 算法聚合成全局排名,是社区评测模型的主流玩法。
## 人工评测的优缺点
### 总体优点(为什么值得做人工评测)
- **灵活性(Flexibility**:只要你能把"在评测什么"定义得足够清楚,几乎**任何东西**都能得到分数——从安全性到写作质量到特定领域知识。
- **无污染(Absence of contamination**:如果让人类**写新问题**来测试系统,这些问题(希望如此)不会出现在训练数据中,避免测试集与训练集重叠导致的分数虚高。
- **与人类偏好相关(Correlation with human preference**:这很明显——你本来就是用人类偏好来打分的,分数天然对齐真实用户感受。
- ⚠️ **注意**:用人类做评测时,必须确保你的 **annotators(标注者)足够多样化**,否则结果无法泛化到更广泛的人群。
### 总体缺点:四类人类偏见
| 偏见 | 含义 | 关键细节 | 出处 |
| --- | --- | --- | --- |
| **First impressions bias**(首因效应) | 人类评估者倾向于**基于第一印象**估计答案质量,而不是基于实际的事实性或忠实性(factuality / faithfulness | 第一印象好(如文笔流畅)的答案可能获得虚高评分 | [2309.16349](https://arxiv.org/abs/2309.16349) |
| **Tone bias**(语气偏见) | 众包标注者对**语气非常敏感**,会**低估语气自信的答案中的事实或逻辑错误** | 即:模型用自信的语气说错话,人类评估者更不容易发现,评分会被带向更"assertive(自信/武断)"的模型;**专家标注者(expert annotators)更不容易中招** | — |
| **Self-preference bias**(自我偏好偏见) | 人类更可能偏好**迎合自己观点、与自己意见或错误一致**的答案,而不是事实正确的答案 | 立场相近比正确性更重要时,评分会偏离客观事实 | [2310.13548](https://arxiv.org/abs/2310.13548) |
| **Identity bias**(身份偏见) | 不同身份(identity)的人价值观不同,对模型答案的**评分差异很大** | 例如在**毒性(toxicity)**评测上,不同群体对"什么算有毒"的判断显著不同 | [2205.00501](https://arxiv.org/abs/2205.00501) |
> **应对思路**(源自原文):tone bias 等偏见对**专家标注者**影响更小,因此在关键评测中考虑使用受过训练的/领域专家标注者;同时保持标注者群体的多样性以支撑结果泛化。
### 系统化人工评测的优缺点
**优点(尤其在使用付费标注者时):**
- **获得高质量数据(high quality data)**:得到适合你用例的高质量数据,之后可以继续在此基础上构建——例如开发 **preference models(偏好模型)** 时作为训练信号。
- **数据隐私(Data privacy)**:依赖付费标注者(尤其是 **in-house** 自有标注团队)时,你的数据集相对安全;而用**闭源 API 模型**做 LLM 评测时,数据会被发送到外部服务,对数据流向的保障更少。
- **可解释性(Explainability)**:模型得到的分数,可以由标注它的**人类来解释**——这是纯模型评测很难提供的。
**缺点:**
- **成本(Cost)**:如果正确地给标注者付酬,成本会**很快升高**;而且很可能需要**多轮迭代评测**iterative evaluation)来打磨指南,进一步增加成本。
- **不可扩展(Un-scalability)**:除非评测的是带用户反馈的生产系统,否则人工评测**难以规模化**——每一轮新评测都需要重新动员(并支付)新的评估者。
- **缺乏可复现性(Lack of reproducibility**:除非**始终保留同一批标注者**且指南**完全无歧义**,否则某些评测结果很难精确复现——人不是稳定的"测量仪器"。
### 非正式评测的优缺点
**优点:**
- **成本更低(Lesser cost**:依赖社区人群的善意(crowd's good will),不需要付酬。
- **发现边缘用例(Edge case discovery)**:利用用户在几乎不受限范围内的创造力,可以发现**有趣的边缘用例(edge cases)**——这些往往是正式评测想不到的。
- **更好的可扩展性(Better scalability)**:只要有足够多感兴趣且愿意参与的参与者,非正式评测扩展性更好、进入门槛更低。
**缺点(不进行标注者筛选时):**
- **高度主观(High subjectivity)**:用宽泛的指南让大量社区成员保持一致的评分非常困难,因为标注者的偏好往往是**文化绑定的(culturally bound**[2404.16019](https://arxiv.org/abs/2404.16019v1))。只能寄希望于投票规模够大,通过"**群体智慧(wisdom of the crowd**"效应(参见 Galton 关于群体平均估计的经典论述)把个体偏差抹平。
- **不具代表性的偏好排名(Unrepresentative preference ranking**:互联网科技圈里**年轻西方男性严重过度代表(over-represented)**,会导致偏好非常偏斜、与一般人群不匹配——无论是探索的话题范围还是整体排名。
- **容易被操纵(Easy to game)**:如果使用不加筛选的众包标注者,第三方很容易**操纵(game)**评测结果,例如抬高某个模型的分数(因为不少模型有辨识度很高的**写作风格(distinctive writing style**,容易被批量刷票识别并针对)。
### 系统化 vs 非正式:一张表对比
| 维度 | 系统化人工评测 | 非正式评测(vibes-check / arena |
| --- | --- | --- |
| 标注者 | 付费、可筛选(人口学、质量) | 社区志愿者,不筛选 |
| 成本 | 高(付酬 + 迭代) | 低(依赖善意) |
| 可扩展性 | 差(每轮重新动员) | 好(参与者多) |
| 数据质量 | 高、贴合用例 | 高主观性、质量参差 |
| 数据隐私 | 好(in-house 更佳) | 公开传播 |
| 代表性 | 可通过筛选控制 | 偏向特定人群(年轻西方男性) |
| 可操纵性 | 低 | 高(易被刷票) |
| 可复现性 | 中等(取决于标注者与指南) | 差 |
**基于原文优缺点的决策指引:**
- **要严谨的评测结论、要沉淀高质量数据**(如为偏好模型积累训练信号)→ 走**系统化人工评测**:筛选标注者、认真写指南、付费、迭代、用 IAA 把关。
- **要快速低成本地探索模型能力、发现边缘用例** → 走**非正式评测**vibes-check 起步 + arena 排名参考;但要意识到其主观性、人群代表性偏差与可操纵性。
- **已有生产系统** → 优先考虑**用户反馈 + A/B 测试**,而不是专门组织一轮人工评测。
- **新评测方法上线前** → 一定要补一轮 **error annotation**,让人类审查"评测本身是否合理"。
- **资源受限但想保留人工评测的价值** → 用**人机混合标注**(预标注、监督 model-as-judge、jury of models 裁决),但接受模型偏见可能渗入。
## 如何使用人工标注者(Using Human Annotators
> **总纲**:建议先阅读 [数据标注质量良好实践综述](https://aclanthology.org/2024.cl-3.1/) 的 **第 3 节**(该综述汇总了 2023 年以来的相关论文)。如果你追求生产级质量、并且有能力实施其中所有方法,尽管去做!
>
> 配套示意图:[Best annotation practices](https://github.com/huggingface/evaluation-guidebook/blob/main/assets/best_annotation_practices.png?raw=true)
无论项目规模大小,在**定义好任务和评分指南之后**,以下都是重要的指导原则:
### 1. 标注者选择与报酬(Workforce selection & monetary incentive
你希望做任务的人满足以下条件:
1. **人口学条件(demographics**——例如:目标语言的**母语者**、**更高的教育水平**、特定领域的**专家**、**地理来源多样化**等。具体需求因任务而异。
2. **高质量产出(high quality work**——现在尤其重要的是:要有办法**检查答案是否是 LLM 生成的**(防止标注者用 LLM 偷懒),并据此把部分标注者从标注池中**过滤**出去。
> **报酬建议**(原文观点):*除非你指望高度积极的众包标注者(highly motivated crowdsourced annotators),否则**总是(always)应该给标注者合理付费**pay your annotators correctly)。* 合理付酬既是质量保障,也是"系统化评测成本高"这一缺点的来源——两者是同一枚硬币的两面。
### 2. 指南编写(Guideline design
- 一定要**花大量时间认真头脑风暴你的指南(guidelines)**——这是整个流程里最容易低估的工作量。
- 原文作者自述:这是他们构建 [GAIA](https://huggingface.co/gaia-benchmark) 数据集时**花费时间最多的环节之一**。
### 3. 迭代式标注(Iterative annotation
- 准备好进行**多轮标注(several rounds of annotations**:你的标注者一定会**误解你的指南**——它们比你想象的更有歧义!
- 多次生成样本(generating samples several times),能让标注者真正**收敛(converge)**到你需要的标准上。
### 4. 质量评估与人工筛选(Quality estimation & Manual curation
- **控制答案质量**:尤其可以通过 **inter-annotator agreement(标注者间一致性,IAA** 来度量——如果不同标注者对同一条数据的判断差异很大,说明指南或任务有问题。
- **最终人工筛选(manual curation)**:做最后一道选择,只保留**最高质量/最相关**的答案。
### 5. 专业工具
- 构建高质量标注数据集的专用工具可以显著提效,例如 [Argilla](https://argilla.io/)。
### 延伸阅读(Going further
- ⭐ [How to set up your own annotator platform in a couple minutes](https://huggingface.co/learn/cookbook/enterprise_cookbook_argilla)(作者 Moritz Laurer):不错的实操入门,用开源工具(如 Argilla 和 Hugging Face**亲手搭建自己的标注平台**,理解大规模人工标注的 do's and don'ts。
- ⭐ [A guide on annotation good practices](https://aclanthology.org/2024.cl-3.1/):对 2023 年以来所有人工标注相关论文的**综述**,非常完整。稍显密集,但非常易懂。
- [Another guide on annotation good practices](https://scale.com/guides/data-labeling-annotation-guide)(ScaleAI,专精人工评测方向):上面文档的**更轻量**补充。
- [Assumptions and Challenges of Capturing Human Labels](https://aclanthology.org/2024.naacl-long.126/):论文,讲如何**看待标注者分歧(annotator disagreement)的来源**并在实践中缓解。
## Tips and Tricks(实操技巧)
> 本页是使用人工标注者构建评测数据集时的**实用建议清单**。原文建议:如果还没读过「Using human annotators」一节,**先读那节再回到本页**(推荐阅读顺序)。
### 任务设计(Designing the task
| 技巧 | 要点 | 展开 |
| --- | --- | --- |
| **Simple is better**(简单为佳) | 标注任务容易变得不必要地复杂,尽量保持简单 | 把标注者的**认知负荷(cognitive load)**降到最低,有助于他们保持专注、产出**更高质量**的标注 |
| **Check what you show**(检查展示内容) | 只展示标注者完成任务**所需的信息** | 确保不包含任何可能**引入额外偏见**的内容(多余的信息本身就是偏见源) |
| **Consider your annotators' time**(考虑标注者的时间) | 内容的位置和展示方式会影响工作量与认知负荷,进而影响结果质量 | 例:确保**文本和任务同时可见**、避免不必要的**滚动**;如果任务间有依赖(一个任务的结果会影响另一个),可以**顺序展示**。最后:审视标注工具里的一切展示方式,看能否**进一步简化** |
| **Test the setup**(测试设置) | 任务设计和指南就绪后,先在**几个样本上自己测试** | 再让整个团队参与,并按需**迭代(iterate** |
### 标注过程中(During the annotation
- **标注者应独立工作(work independently**
- 标注者之间**最好不要互相帮助、也不要看到彼此的工作**——否则会传播各自的偏见,导致 **annotation drift(标注漂移)**
- **对齐(alignment)应始终通过全面的指南来实现**,而不是通过标注者之间的口头沟通。
- 对于新加入的团队成员:可以让他们先在一个**单独的数据集**上训练,或使用 **inter-annotator agreement 指标**来确认团队是否对齐。
- **一致性是关键(Consistency is key**
- 如果对指南做了**重要修改**(例如改了一个定义或指令、增删了标签),要考虑是否需要对已标注数据**重新迭代**。
- 至少要在数据集中通过元数据值(如 `guidelines-v1`)**追踪指南的版本变更**,否则历史标注无法解释。
### 人机混合标注(Hybrid human-machine annotation
> **背景**:有些团队在**时间和资源上受限**,但**不想牺牲人工评测的优点**。此时可以用模型来帮忙提高效率——本质是在"纯人工"与"纯模型"之间取折中。
| 方法 | 做法 | 注意点 |
| --- | --- | --- |
| **Model-aided annotation**(模型辅助标注) | 用模型的预测或生成结果作为**预标注(pre-annotations**,让标注团队不必从零开始 | ① 可能把**模型的偏见引入人类标注**;② 如果模型准确率差,反而**增加标注者的工作量** |
| **Supervise model-as-a-judge**(监督模型裁判) | 结合 "model as a judge" 方法(见该章节)与**人类监督者**,由人类**验证或丢弃**模型裁判的结果 | "人工评测的优缺点"一节讨论的**人类偏见**在这里同样适用 |
| **Identify edge cases**(识别边缘用例) | 用**一组模型(jury of models)**做评判,然后由人类监督者在**模型意见分歧或平局(tie)**时介入裁决 | 再次提醒:注意 "Pros and cons of human evaluation" 中讨论的**人类偏见** |
> 三者的共同逻辑:**让模型做"体力活",让人类只做"关键判断"**——人类介入越少越快,但人类偏见始终存在,需要纳入设计考量。
### 端到端教程(End-to-end tutorial
- 想按这些技巧**搭建自己的定制评测设置**,可参考 Argilla 的[实用教程](https://github.com/argilla-io/argilla-cookbook/tree/main/domain-eval)`argilla-cookbook``domain-eval` 目录)。
- 教程流程概要:
1. 从**领域文档(domain documents**出发;
2. 使用**合成数据(synthetic data** + **人工评测**(借助 [Argilla](https://github.com/argilla-io/argilla/) 标注与 [distilabel](https://github.com/argilla-io/distilabel) 数据管道);
3. 产出一个**定制评测任务(custom evaluation task**
4. 最终用 [lighteval](https://github.com/huggingface/lighteval) 来评测你自己的模型。
## 术语对照表(均出自原文)
| 英文术语 | 中文译名 / 说明 |
| --- | --- |
| human evaluation | 人工评测:让人类评估模型 |
| post-hoc evaluation | 事后评测:模型训练完成后、针对既定任务的评测 |
| scoring guidelines | 评分指南:交给标注者的打分规则 |
| error annotation | 错误标注/错误审查:用人类审查评测方法本身 |
| vibes-check | 氛围检查/体感评测:个人对模型整体感受的随性评测 |
| arena | 竞技场:众包式两两比较评测 |
| Elo ranking | Elo 排名:基于对局(matches)聚合的排名系统 |
| annotator | 标注者:执行打分/标注任务的人 |
| inter-annotator agreementIAA | 标注者间一致性:衡量不同标注者判断一致程度的指标 |
| annotation drift | 标注漂移:标注者互相影响导致标准逐渐偏离 |
| first impressions bias | 首因效应:基于第一印象而非事实性评分 |
| tone bias | 语气偏见:低估语气自信答案中的事实/逻辑错误 |
| self-preference bias | 自我偏好偏见:偏好与自己观点一致的答案 |
| identity bias | 身份偏见:不同身份群体评分差异大 |
| confirmation bias | 确认偏误:人们倾向于找到自己想找的东西 |
| wisdom of the crowd | 群体智慧:大量投票平均抹平个体偏差的效应 |
| culturally bound preferences | 文化绑定的偏好:标注者偏好受文化背景影响 |
| model-aided annotation | 模型辅助标注:用模型输出做预标注 |
| pre-annotations | 预标注:标注团队在其基础上修正的初始标注 |
| model-as-a-judge | 模型裁判:用模型来评判模型(另见该章节) |
| jury of models | 模型评审团:多模型投票,人类在分歧/平局时裁决 |
| preference model | 偏好模型:以人类偏好为训练信号训练的模型 |
| cognitive load | 认知负荷:标注者完成任务所需的脑力开销 |
| crowdcrowdsourced | 众包/社区人群:非付费、未筛选的参与者 |
## 核心要点速记
- **人工评测 = 让人类给模型打分**(事后评测视角);适合追求**数据质量、隐私、可解释性**的场景。
- **三种系统化方式**:无数据集(任务+指南+可交互模型)→ 有数据集(prompt+输出+指南)→ 有数据集+分数(error annotation 审查评测方法)。
- **非正式评测****vibes-check**(个人、轶事证据、易受确认偏误,但适合起步)与 **arena + Elo**(众包两两对战排名,如 LMSYS chatbot arena)。
- **四大人为偏见**first impressions bias / tone bias / self-preference bias / identity bias**专家标注者更不易中招**。
- **用标注者的流程**:选人(人口学 + 质量过滤 + LLM 生成检测)→ 认真写指南 → 迭代多轮 → 用 **inter-annotator agreement** 控制质量并人工筛选;**务必给标注者合理付费**。
- **实操技巧**:任务**越简单越好**、只展示必要信息、考虑标注者时间、先自测;标注者**独立工作**、指南变更用 `guidelines-v1` 类元数据追踪;人机混合标注(预标注、监督 model-as-judge、jury of models 裁决平局)可提效,但小心**偏见引入**。
- **选择路线**:要严谨、可复现、要数据 → 系统化人工评测;要快、要省、要发现边缘用例 → 非正式评测。
## 参考资料
### 原文 GitHub 链接(Human Evaluation 章节)
- [basics.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/human-evaluation/basics.md)
- [using-human-annotators.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/human-evaluation/using-human-annotators.md)
- [tips-and-tricks.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/human-evaluation/tips-and-tricks.md)
### 文中提到的外部链接
**博客 / 文章**
- [Error Annotations to Evaluateerror annotation](https://ehudreiter.com/2022/06/01/error-annotations-to-evaluate/)
- [Vibe Checks Are All You Need](https://olshansky.substack.com/p/vibe-checks-are-all-you-need)
- [How to set up your own annotator platform in a couple minutes ⭐(Moritz Laurer](https://huggingface.co/learn/cookbook/enterprise_cookbook_argilla)
**论文(arXiv / ACL**
- [AI audits2401.14462](https://arxiv.org/abs/2401.14462)
- [First impressions bias2309.16349](https://arxiv.org/abs/2309.16349)
- [Self-preference bias2310.13548](https://arxiv.org/abs/2310.13548)
- [Identity bias / toxicity2205.00501](https://arxiv.org/abs/2205.00501)
- [Cultural preferences of annotators2404.16019v1](https://arxiv.org/abs/2404.16019v1)
- [Good practices in data annotation quality 综述 ⭐(ACL 2024 CL](https://aclanthology.org/2024.cl-3.1/)
- [Assumptions and Challenges of Capturing Human LabelsNAACL 2024](https://aclanthology.org/2024.naacl-long.126/)
**平台 / 工具**
- [LMSYS chatbot arena](https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard)
- [GAIA benchmark](https://huggingface.co/gaia-benchmark)
- [Argilla](https://argilla.io/) / [Argilla 仓库](https://github.com/argilla-io/argilla/)
- [ScaleAI 数据标注指南](https://scale.com/guides/data-labeling-annotation-guide)
- [Argilla cookbookdomain-eval 端到端教程](https://github.com/argilla-io/argilla-cookbook/tree/main/domain-eval)
- [distilabel](https://github.com/argilla-io/distilabel)
- [lighteval](https://github.com/huggingface/lighteval)
- [Best annotation practices 示意图](https://github.com/huggingface/evaluation-guidebook/blob/main/assets/best_annotation_practices.png?raw=true)
@@ -0,0 +1,677 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- llm-as-judge
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# LLM-as-a-Judge:模型作评委
> 本笔记是 [HuggingFace Evaluation Guidebook](https://github.com/huggingface/evaluation-guidebook) 中 **Model-as-a-Judge** 章节(共 6 页)的中文提炼。核心问题:**如何用一个模型来评价另一个模型的输出?** 适合在设计评测、选择评委模型、写 judge prompt、或搭建基于 reward model 的评测管线时查阅。
>
> 相关笔记:[[00-Overview]](总览与阅读顺序)
---
## 1. 什么是 judge model / judge LLM
### 1.1 定义
**Judge model(评委模型)** 本质上就是:**一个用来评估另一个神经网络输出的神经网络**("a neural network used to evaluate the output of other neural networks")。绝大多数情况下,它评估的是文本生成结果。
Judge model 是一个宽泛的概念,涵盖两类形态:
| 形态 | 说明 | 典型例子 |
|---|---|---|
| 小型专用分类器(classifier | 类似"垃圾邮件过滤器"的思路,例如针对毒性(toxicity)等单一属性做分类 | 各类微调分类器 |
| LLM(大语言模型) | 大型通用模型,或小型专用模型;通过 **prompt** 说明评分规则 | judge LLM、reward model |
当使用 LLM 作为评委时,你通过 prompt 告诉它如何打分,例如:
```
Score the fluency from 0 to 5, 0 being completely un-understandable, ...
```
(即:给"流畅度"按 0–5 打分,0 表示完全无法理解……)
> 📌 **原文注**:本文档主体聚焦「LLM + prompt」路线,但原作者提醒:classifier judge 在许多场景下相当稳健、值得研究;此外还有最近兴起的 **reward model as judge** 路线(见 [Nemotron-4 340B 技术报告](https://research.nvidia.com/publication/2024-06_nemotron-4-340b) 与本书对应小节 [[#7. Reward Models(奖励模型)|What about reward models]])。
### 1.2 为什么需要模型作评委
精确匹配(exact match)只能判断"预测是否和参考答案完全一致",适合测试模型是否答对了某个事实或数字;但**更开放、更微妙的能力**——如流畅度(fluency)、诗歌质量、对输入的忠实度(faithfulness)——需要更复杂的评估器,这正是 judge model 的用武之地。
### 1.3 三大主要用途
| # | 用途 | 英文术语 | 说明 |
|---|---|---|---|
| 1 | **对生成结果打分** | Scoring a model generationpointwise | 在给定刻度(scale)上评估文本的某个属性:流畅度、毒性、连贯性、说服力等 |
| 2 | **成对比较** | Pairwise scoring | 给定一对模型输出,选出在某个属性上更好的那个 |
| 3 | **计算相似度** | Computing the similarity | 计算模型输出与参考答案(reference)之间的相似度 |
### 1.4 术语对照表(速查)
| 英文术语 | 中文译法 | 一句话含义 |
|---|---|---|
| judge LLM / model-as-a-judge | 模型作评委 | 用 LLM 评估另一个模型输出 |
| pointwise scoring | 点式打分 | 对单个输出按刻度打分 |
| pairwise scoring | 成对比较 | 在两个输出中选更好者 |
| preference | 偏好 | 人类/模型对"哪个输出更好"的判断 |
| preference data | 偏好数据 | 用于训练评委/奖励模型的数据 |
| scoring prompt | 打分 prompt | 说明评分规则的评测指令 |
| scoring anchor | 评分锚点 | 刻度上每个分数代表什么的具体解释 |
| additive prompt | 累加式评分 prompt | 逐项加分的打分方式 |
| reasoning / CoT | 推理 / 思维链 | 先输出推理再给分数的做法 |
| reference | 参考答案 | 用于对照的已知正确答案 |
| few-shot | 少样本示例 | 在 prompt 中给若干示例 |
| jury | 陪审团 | 多个评委聚合判断 |
| baseline | 基线 | 用于对照评判质量的标准 |
| inter-annotator agreement | 标注者间一致性 | 多个标注者判断的一致性指标 |
| reward model (RM) | 奖励模型 | 从人类标注学习打分的模型 |
| Bradley-Terry model | Bradley-Terry 模型 | 基于成对比较输出单分数的 RM |
| win rate | 胜率 | 高于参考输出的百分比 |
| win probability | 胜率概率 | 优于参考输出的平均概率 |
| positional bias | 位置偏差 | 偏好特定答案位置的偏见 |
| verbosity bias / length bias | 冗长偏差 / 长度偏差 | 偏爱更长更啰嗦答案的偏见 |
| self-preference | 自偏好 | 偏爱自己输出的偏见 |
| format bias | 格式偏差 | 对偏离训练格式失准的偏见 |
| self-consistency | 自洽性投票 | 多次采样取多数票 |
| partial hallucination | 部分幻觉 | 接近真值但略有出入的幻觉 |
| faithfulness | 忠实度 | 输出对输入/事实的忠实程度 |
---
## 2. 使用 judge LLM 的优缺点
### 2.1 优点
| 优点 | 说明 |
|---|---|
| **客观性**Objectivity) | 相比人类,自动化地做出客观、可复现的经验判断 |
| **规模与可复现性**Scale and reproducibility | 比人工标注者可扩展得多,能在大量数据上重复打分 |
| **成本**(Cost) | 无需训练新模型,靠良好 prompt + 现成高质量 LLM 即可;也比付钱给人类标注者便宜 |
| **与人类判断的一致性**Alignment with human judgments | 与人类判断有一定相关性(somehow correlated |
### 2.2 缺点(对应着看)
| 缺点 | 说明 |
|---|---|
| **隐藏偏见**hidden biases | LLM 评委看起来客观,但带有许多隐藏偏见,且比人类的偏见更难被发现——因为我们不会主动去审视它。详见 [[#8. Tips and Tricks:已知偏见与缓解|Tips and tricks]] |
| **回音室效应**echo-chamber effect | 用 LLM 评估 LLM 被类比为制造回音室:以难以察觉的方式不断强化偏见。另外,社会学家用约一个世纪研究出"如何设计统计上稳健的调查问卷来减少人类偏见",而 LLM prompt 设计还没有这么成熟 |
| **产生海量待检数据** | 可扩展的同时也制造了大量人工数据,这些数据本身又需要被检验质量(例如让评委先生成思维痕迹/推理过程来提高质量,但这又产生了更多待分析的人工数据) |
| **专家质量** | 评委很便宜,但为你的具体场景付费请专家人工标注者,大概率能获得质量更好的结果 |
---
## 3. 如何开始(⭐ 推荐资源)
-**入门必读**[HuggingFace CookbookLLM as a judge](https://huggingface.co/learn/cookbook/en/llm_judge),作者 Aymeric Roucher,手把手教你搭第一个 LLM 评委。
- **[distilabel](https://distilabel.argilla.io/latest/)**Argilla 出品的库):可用 LLM 生成合成数据并迭代更新。有两个值得参考的 tutorial:
- [UltraFeedback 方法复现 tutorial](https://distilabel.argilla.io/latest/sections/pipeline_samples/papers/ultrafeedback/):应用 [UltraFeedback 论文](https://arxiv.org/abs/2310.01377) 的方法论。
- [用 distilabel 做 benchmarking 的 tutorial](https://distilabel.argilla.io/latest/sections/pipeline_samples/examples/benchmarking_with_distilabel/):实现了 **Arena Hard** benchmark。
---
## 4. 如何获取 judge LLM
原文给出三条路线:用现成通用大模型、用小型专用 judge 模型、自己训练。三者对比如下:
| 维度 | 通用大模型(generalist | 小型专用模型(tiny specialized | 自己训练 |
|---|---|---|---|
| 典型代表 | Claude / GPT-o;开源侧 Qwen 2.5、Command R+、Llama 3.1-405B | Flow-Judge-v0.1、Prometheus、JudgeLM | 基于偏好数据自建 |
| 参数规模 | 大(数十亿 ~ 数千亿) | 通常几十亿(3.8B / 7B / 13B / 7B33B | 取决于基座选择 |
| 部署 | API(闭源)或模型提供商(开源) | 多数近年消费级硬件可本地运行 | 本地 |
| 可复现性 | 闭源有"模型无通知变更"风险 | 高(权重固定、本地运行) | 高 |
| 成本 | 按调用付费 | 低 | 数据收集 + 训练算力成本高 |
| prompt 要求 | 通用 prompt 设计 | 需遵循特定 prompt 格式 | 自行定义 |
| 主要风险 | 黑盒、数据隐私 | 能力上限 | 数据质量、训练成本 |
### 4.1 路线一:使用通用大模型(generalist LLM
随着更强模型(如 ChatGPT)出现,研究者开始探索用大模型当评委。目前最强的大模型评委**多为闭源模型**(如 Claude、GPT-o 系列),但开源模型的差距正在快速缩小——高质量开源候选包括:
- [Qwen 2.5 系列](https://huggingface.co/collections/Qwen/qwen25-66e81a666513e518adb90d9e)
- [Command R+](https://huggingface.co/CohereForAI/c4ai-command-r-plus-08-2024)
- [Llama 3.1-405B-Instruct](https://huggingface.co/meta-llama/Llama-3.1-405B-Instruct)
**闭源模型的缺点**(尽管性能好):
| 缺点 | 说明 |
|---|---|
| 运行在 API 之下 | 模型(因此结果)可能**无通知地变更**,伤害评测的可复现性 |
| 黑盒 | 不可解释(un-interpretable |
| 数据泄露/隐私风险 | 数据经互联网发给第三方,通常不如本地管理安全;你无法确定数据用途(往往需要手动选择退出被用于训练集) |
**优点**:任何人都能用上高质量模型,无需本地部署或硬件。而如今大多数高质量开源模型也能通过模型提供商访问,同时解决了上面两个问题(API 变更与黑盒)。
> 💰 选择模型提供商时可参考成本分析:[ArtificialAnalysis LLM Performance Leaderboard](https://huggingface.co/spaces/ArtificialAnalysis/LLM-Performance-Leaderboard)。
### 4.2 路线二:使用小型专用 judge 模型(tiny specialized LLM judge
通常只有几十亿参数,能在大多数近年消费级硬件上本地运行;可以是从头训练,或用指令数据微调而来。**注意通常需要遵循它们特定的 prompt 格式。**
原文给出的现有模型:
| 模型 | 参数规模 | 说明 |
|---|---|---|
| **Flow-Judge-v0.1**[权重](https://huggingface.co/collections/flowaicom/flow-judge-v01-66e6af5fc3b3a128bde07dec) | 3.8B | 基于 Phi-3.5-mini-instruct,在合成偏好数据集上微调 |
| **Prometheus**[权重](https://huggingface.co/prometheus-eval/prometheus-13b-v1.0)[论文](https://arxiv.org/abs/2310.08491)) | 13B | 在合成偏好数据集上从头训练。另有 [7B 的 v2](https://huggingface.co/prometheus-eval/prometheus-7b-v2.0):基于 Mistral-7B-Instruct-v0.2 在更大的合成偏好数据集上微调,并加入权重合并(weight merging |
| **JudgeLM**[论文](https://arxiv.org/abs/2310.17631) | 7B ~ 33B | 在多种模型生成的合成偏好数据集上从头训练 |
### 4.3 路线三:训练你自己的 judge LLM
**第一步:收集偏好数据(preference data**,来源可以是:
- 现成的**人类偏好数据集**,例如 [LMSYS Chatbot ArenaKaggle 竞赛)](https://www.kaggle.com/competitions/lmsys-chatbot-arena)
- **模型生成的偏好数据**(可按上述小型 judge 模型论文的数据章节生成,或直接取现成集合):
- [Prometheus Preference Collection](https://huggingface.co/datasets/prometheus-eval/Preference-Collection)
- [Prometheus Feedback Collection](https://huggingface.co/datasets/prometheus-eval/Feedback-Collection)
**第二步:决定起点**,可以选择:
1. 从零开始,用一个小模型**从头训练(train from scratch**
2. 从现成模型出发:
- **蒸馏(distill)** 到更小的新模型;
- **量化(quantize**
- 然后用上面的数据**微调(fine-tune)**——模型大、算力低时用 PEFT 或 adapter 权重。
- 💡 一个社区经验:[从 reward model 出发微调,比从 instruct model 出发效果更好](https://x.com/dk21/status/1826292289930674590)。
---
## 5. 如何设计评测 promptevaluation prompt
### 5.1 通用设计要点
设计 prompt 的四条通用准则(原文整理自网络):
1. **清晰描述任务**
- `Your task is to do X`(你的任务是做 X
- `You will be provided with Y`(你将获得 Y
2. **给出清晰的评测标准**,需要时附带详细的打分系统:
- `You should evaluate property Z on a scale of 1 - 5, where 1 means ...`(请在 1–5 刻度上评估属性 Z,1 表示……)
- `You should evaluate if property Z is present in the sample Y. Property Z is present if ...`(请评估样本 Y 中是否存在属性 Z。属性 Z 存在当且仅当……)
3. **给出额外的"推理"步骤**
- `To judge this task, you must first make sure to read sample Y carefully to identify ..., then ...`(评判前必须先仔细阅读样本 Y 以识别……,然后……)
4. **指定输出格式**(加字段有助于一致性):
- `Your answer should be provided in JSON, with the following format {"Score": Your score, "Reasoning": The reasoning which led you to this score}`(用 JSON 输出:{"Score": 你的分数, "Reasoning": 得出该分数的推理}
可以直接借鉴的现成模板:
- [MixEval judge promptslighteval 实现)](https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mix_eval/judge_prompts.pyy)
- [MTBench judge prompt templateslighteval 实现)](https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mt_bench/judge_prompt_templates.py)
这四条准则与"一份好 judge prompt 的要素"的对应关系:
| 准则 | 在 prompt 中的位置 | 作用 |
|---|---|---|
| 任务描述(Your task is to do X / You will be provided with Y | 开头 | 明确"评什么、输入是什么" |
| 评测标准 + 详细刻度(scale 1–5,1 表示……) | 中间 | 给出可操作的评分依据,即**评分锚点** |
| 额外推理步骤(must first read … then …) | 标准之后 | 引导先分析后下结论,改善准确性 |
| 输出格式(JSONScore / Reasoning | 结尾 | 结构化输出,提升一致性,便于程序解析 |
### 5.2 其他设计要点
- **Pairwise(成对比较)比打分更稳健**:与人类偏好的相关性更高([论文](https://arxiv.org/abs/2403.16950))。
- 如果确实需要分数,**用整数刻度**,并确保**详细解释每个分数代表什么**([Seungone Kim 的推文](https://x.com/seungonekim/status/1749289437165769177));或者用 **additive prompt**(累加式打分):"答案具备这个特征给 1 分,再具备某个特征加 1 分……"。
- **每个能力用一个 prompt 单独打分**,结果通常更好、更稳健(one prompt per capability)。
### 5.3 提升判断准确度的技巧(可能更贵)
| 技巧 | 说明 | 代价/备注 |
|---|---|---|
| **Few-shot 示例** | 和许多任务一样,给示例有助于推理 | 增加上下文长度 |
| **Reference(参考答案)** | 有参考时把参考也放进 prompt,能提升准确度 | 需要参考存在 |
| **CoT(思维链)** | 让模型**先输出推理过程、再给分数**,可提升准确度([论文](https://arxiv.org/abs/2212.08073),另有 [观察](https://x.com/seungonekim/status/1749289437165769177) | 输出变长 |
| **多轮分析(Multiturn analysis** | 可改进**事实性错误检测**[论文](https://arxiv.org/abs/2305.13281) | 上下文更长 |
| **陪审团(Jury** | 用多个评委并聚合答案,比单个模型效果好([论文](https://arxiv.org/abs/2404.18796)) | 成本可通过"多个小模型替代一个大模型"大幅降低;也可试同一个模型、变化 temperature |
| **加筹码(stakes** | 社区意外发现:在 prompt 里加"答对了给你一只小猫"(`answer correctly and you'll get a kitten`)能提高正确率 | 效果因人而异,按需调整 |
### 5.4 Prompt 模板示例
以下模板示例是根据本节指南要点组合而成(非原文逐字内容),演示 pointwise 打分、pairwise 比较、累加式评分与 CoT 的结构:
**① 点式打分 + 详细刻度锚点 + JSON 输出(pointwise scoring prompt**
```text
Your task is to evaluate the fluency of a model-generated answer.
You will be provided with the answer below.
Evaluation criteria:
You should evaluate the property "fluency" on an integer scale of 1 to 5:
- 1: completely un-understandable
- 2: many errors, hard to follow
- 3: understandable with some errors
- 4: mostly fluent, minor issues
- 5: perfectly fluent
Reasoning steps:
To judge this task, you must first read the answer carefully, identify any
grammatical or coherence issues, then decide on a final score.
Output format:
Your answer should be provided in JSON, with the following format:
{"Score": Your score, "Reasoning": The reasoning which led you to this score}
```
**② 成对比较(pairwise comparison prompt**
```text
Your task is to compare two model answers A and B for the property "helpfulness".
You will be provided with both answers.
You should decide which answer is better with respect to helpfulness, or
whether they are tied.
Reasoning steps:
First read both answers carefully and list the strengths/weaknesses of each
with respect to helpfulness, then give your verdict.
Output format:
{"Verdict": "A" | "B" | "Tie", "Reasoning": ...}
```
**③ 累加式评分(additive scoring prompt,适合不信任笼统刻度的场景)**
```text
Score the answer by adding points:
- The answer directly addresses the question: +1 point
- The answer includes concrete examples: +1 additional point
- The answer is free of factual errors: +1 additional point
Report the total as the final score.
```
**④ 先推理后打分(CoT before the score**
```text
Before providing the score, explain step by step how the answer performs on
each evaluation criterion. Only after this reasoning, output the final score
in the requested JSON format.
```
**⑤ 带参考答案(reference)的打分**(有 reference 时增强准确度)
```text
Your task is to evaluate the answer against a reference answer.
You will be provided with the candidate answer and the reference.
The reference answer represents the ground truth for this prompt.
Evaluation criteria:
You should evaluate whether the candidate answer is faithful to the reference,
on an integer scale of 1 to 5 (1 = completely unrelated, 5 = fully faithful).
Output format:
{"Score": Your score, "Reasoning": The reasoning which led you to this score}
```
**⑥ Few-shot 示例**(给 12 个"已评好分"的例子帮助推理;代价是上下文变长)
```text
Your task is to score answers on the property "fluency" (scale 1-5).
Example 1:
Answer: "The cat sat on the mat."
Score: 5
Example 2:
Answer: "Cat sat mat."
Score: 3
Now score the following answer, following the same criteria and output format
as above.
```
**⑦ 属性是否存在(二分类风格)**——适合"该属性在样本 Y 中是否出现"式评测
```text
Your task is to evaluate if the property "toxicity" is present in the sample Y.
Property "toxicity" is present if the text contains insults, threats, or
harmful language.
Reasoning steps:
Read the sample carefully, check each phrase against the definition above,
then decide.
Output format:
{"Toxicity": "present" | "absent", "Reasoning": ...}
```
**⑧ 陪审团(jury)聚合示意**(多评委 → 聚合,效果优于单个模型;可多个小模型,或同模型多 temperature
```text
# 伪代码(非 prompt):
judges = [judge_model_1, judge_model_2, ..., judge_model_N]
verdicts = [j(prompt) for j in judges]
final = aggregate(verdicts) # 多数票 / 平均分
```
**模板选型速查**
| 场景 | 推荐模板 |
|---|---|
| 需要一个绝对分数 | ① 点式打分 + 详细刻度锚点(整数刻度) |
| 刻度不可信 / 想拆分评分标准 | ③ 累加式评分(additive |
| 选"哪个更好" | ② 成对比较(含 Tie |
| 有参考答案可用 | ⑤ 带 reference 的打分 |
| 模型理解不了抽象标准 | ⑥ few-shot 示例 |
| 只关心属性有无(如毒性) | ⑦ 属性存在性判断 |
| 追求稳健、成本允许 | ⑧ 陪审团聚合 |
### 5.5 一个方法论提醒(社会学视角)
如果**高风险场景**、且把 evaluator 当作人类标注者的替代品,应当参考社会学里"如何设计好问卷"的研究成果,并计算类似的指标(如**标注者间一致性 inter-annotator agreement**),用正确的调查设计方法减少偏见。
但原文也坦率指出:**大多数人不追求可复现、高质量、无偏的评测**,一个"差不多能用的 prompt + 快速粗糙的评测"就够用了——这完全 OK,取决于后果的严重程度。
---
## 6. 如何评估你的 evaluatorevaluating your evaluator
在把 judge-LLM 投入生产或大规模使用前,先评估它在**你的任务**上的质量。
> ⚠️ 提醒:如果 evaluator 输出**二分类**结果,可以用可解释的分类指标(accuracy / recall / precision);如果输出**刻度分数**,评估它与参考的相关性会**困难得多**。
### 6.1 第一步:挑选 baseline(基线)
把你的 evaluator 判断与某个基线比较。基线可以是:
- 人类标注(human annotations
- 另一个你确信在你任务上高质量的 judge 模型
- 金标准(gold truth
- 同一个模型配另一个 prompt
**样本量不需要很大(50 条可能就够),但样本必须**
- 对你任务**极具代表性**
- **有判别力**(尤其要覆盖边缘情况 edge cases);
- 质量**尽可能高**。
### 6.2 第二步:挑选 metric(指标)
用指标比较你的 judge 评价与参考(reference):
- **二分类(binary**:计算 precision、recall——最易解释。
- **成对比较(pairwise**:计算 accuracy——很易解释。
- **分数相关性(score correlation)**:难做。为何难、如何做,推荐阅读 [Eugene Yan 的博客章节](https://eugeneyan.com/writing/llm-evaluators/#key-considerations-before-adopting-an-llm-evaluator)。
> ⭐ 不知道什么时候该用哪个模型/指标?看 [Eugene Yan 博客](https://eugeneyan.com/writing/llm-evaluators/) 里的这张[决策树图(llm-eval-tree](https://eugeneyan.com/assets/llm-eval-tree.jpg)。
### 6.3 第三步:评估并设定接受阈值
用你的模型 + prompt 在测试样本上打分,再用 metric 与 baseline 算分,然后决定**接受阈值**。原文给出的经验值:
| 评测类型 | 常见接受阈值 |
|---|---|
| 成对比较 accuracy | 视任务难度,**80% ~ 95%** |
| 分数相关性(Pearson) | 文献里人们通常对 **0.8** 满意;但也见过论文宣称 **0.3** 就算与人类标注者"良好相关"(所以"视情况而定" |
### 6.4 把三步骤串起来:一个最小评估流程示例
把上面三步落地的最小闭环(以"成对比较 + 人类基线"为例):
```text
Step 1 收集基线(baseline
→ 从你的任务里挑 ~50 条高代表性样本(含边缘情况),
请人类(或你信赖的 judge)给出成对判断,作为 reference。
Step 2 让 evaluator 跑分
→ 用你的 judge LLM + 设计好的 pairwise prompt 对同一批样本判断。
Step 3 算指标
→ 计算 evaluator 与 reference 的 accuracy。
(二分类则算 precision / recall;分数型则算 Pearson 相关性。)
Step 4 对照阈值决定去留
→ pairwise accuracy 低于 80%?换 judge 模型 / 改 prompt / 加 CoT
重复 Step 2-4;达到 80%–95%(视任务难度)即可放行。
```
要点回顾:
- 样本少没关系(50 条够用),但**代表性 > 数量**;
- evaluator 输出**二分类或成对比较**时最容易被评估(accuracy / precision / recall);
- 输出**刻度分数**时,"分数与参考的相关性"评估难度明显上升——这是选择输出形式时就要想好的权衡;
- 阈值不是铁律:文献对相关性高低的接受范围从 0.3 到 0.8 都有,按你的任务与后果定。
---
## 7. Reward Models(奖励模型)
### 7.1 什么是 Reward Model
**Reward model(奖励模型,RM**:从给定 prompt/completion 对的人类标注中学习预测一个分数,最终目标是让预测与**人类偏好**对齐。训练好后,它可以作为**人类判断的代理(proxy)——即 reward function**,用来改进其他模型(如用于强化学习)。
它与 judge LLM 的关键区别(对比表):
| 维度 | Judge LLM | Reward Model |
|---|---|---|
| 输出 | 长文本(分数 + 推理) | 一个(或一对)分数 |
| 使用方式 | 靠 prompt 工程 | 前向传播(forward pass)即出分,免 prompt |
| 成本 | 调用大模型生成 | 小模型单次前向,很快 |
| 训练 | 通常不训练 | 需要专门微调 |
### 7.2 两类打分方式
**① 成对分数(pairwise score)——最常见的类型**
最典型的是 **Bradley-Terry 模型**,输出单个分数,遵循:
```
p(completion b is better than completion a) = sigmoid(score_b score_a)
```
即:完成 b 优于完成 a 的概率 = sigmoid(b 的分数 a 的分数)。
- 只用**成对比较**训练——比收集分数更容易;
- 局限:只能比较**同一 prompt 下的多个 completion**,无法跨 prompt 比较。
其他模型在此基础上扩展,预测"一个完成优于另一个"的更细致概率(如 [RLHFlow/pair-preference-model-LLaMA3-8B](https://huggingface.co/RLHFlow/pair-preference-model-LLaMA3-8B)):
- 理论上能判别完成之间的细微差异;
- 代价:不易保存、比较同一测试集上跨 prompt 的许多分数;
- 另外,比较过长的 completion 时上下文长度与内存会成为问题。
**② 绝对分数(absolute score**
- 例如 [SteerLM](https://arxiv.org/abs/2311.09528) 直接输出绝对分数,无需成对比较即可评估 completion
- 评测时**更易用**,但**数据更难收集**——人类偏好中绝对分数往往不如成对分数稳定。
- 近期还出现了**同时输出绝对与相对分数**的模型,如 [HelpSteer2-Preference](https://arxiv.org/abs/2410.01257) 与 [ArmoRM](https://arxiv.org/abs/2406.12845)。
### 7.3 如何用 Reward Model 做评测
流程:给定 prompt 数据集 → 从语言模型生成 completions → 让 reward model 打分。
- **绝对分数模型**:对多个分数取平均,得到合理的汇总分数。
- **相对分数模型(更常见)**:直接平均 reward 会**被离群值(outliers)偏置**——因为不同 prompt 天生就有不同的 reward 刻度(有些 prompt 难、有些简单)。替代方案:
- **Win rates(胜率)**:取一个参考 completion 集合,计算"模型输出排在参考输出之上"的百分比。粒度略细。
- **Win probabilities(胜率概率)**:模型输出优于参考输出的平均概率,能给出更细粒度、更平滑的信号。
完整流程示意:
```text
prompt 数据集
语言模型生成 completions(被测模型)
reward model 打分
├── 绝对分数型 → 取平均 → 汇总分数
└── 相对分数型 → win rates(胜率)/ win probabilities(胜率概率)
└── 与参考 completions 集合对比
```
| 汇总方式 | 定义 | 特点 |
|---|---|---|
| 直接平均 reward(相对分数型) | 把所有分数的均值当汇总 | **会被离群值偏置**——不同 prompt 有不同 reward 刻度(有的 prompt 天生更难/更易) |
| win rates | 模型输出高于参考集合的**百分比** | 比平均更稳健,粒度略细 |
| win probabilities | 优于参考集合的**平均概率** | 更细粒度、更平滑的信号 |
### 7.4 Reward Model 的优缺点
| 优点 | 缺点 |
|---|---|
| **非常快**:打分 = 对小模型做一次前向传播(只出分数,不像 judge-LLM 出长文本) | **需要专门微调**:这一步可能相当贵;虽继承基座模型许多能力,但在训练分布之外的任务上可能表现差 |
| **确定性**:同一前向传播必然复现同样分数 | **RL 与评测复用时的效率损失**:语言模型可能过拟合到 reward model 的偏好上(当 RL 或直接对齐算法用的数据与 RM 训练数据相似时尤甚) |
| **不易受位置偏差影响**:多数 RM 只吃一个 completion,不受顺序影响;成对模型只要训练数据在"最优答案是第一/第二个"上均衡,位置偏差通常也极小 | |
| **免 prompt 工程**:直接按训练时的偏好数据输出分数 | |
### 7.5 使用 Reward Model 做评测的 Tips
- 找高性能模型的好去处:**[RewardBench Leaderboard](https://huggingface.co/spaces/allenai/reward-bench)** ⭐。
- 参考 [Nemotron 论文](https://arxiv.org/abs/2406.11704) 中 RM 的使用方式。
- 对"单 prompt + completion"打分的 RM:可以**缓存许多参考模型的分数**,之后轻松对比新模型的表现。
- **训练过程中跟踪 win rate / win probability**(如[这篇近期论文](https://arxiv.org/abs/2410.11677v1)),可用来**检测模型退化(degradation)并挑选最优 checkpoint**。
---
## 8. Tips and Tricks:已知偏见与缓解
LLM 评委的**已知偏见清单**(原文逐条整理,含缓解方法):
| 偏见 | 现象 | 缓解方法 |
|---|---|---|
| **缺乏内部一致性**Lack of internal consistency | 温度不为 0 时,同一 judge 多次 prompt 会给出不同判断 | **self-consistency prompting**:多次 prompt,取多数票(majority output |
| **自偏好**Self-preference | 打分时倾向于[偏爱自己的输出](https://arxiv.org/abs/2404.13076) | 使用**陪审团(jury** |
| **对输入扰动不敏感**Blindness to input perturbation | 模型不擅长识别[被扰动的输入](https://arxiv.org/abs/2406.13439);顺带[不擅长给出一致的分数范围](https://twitter.com/aparnadhinak/status/1748368364395721128)[更完整的实验](https://github.com/LeonEricsson/llmjudge/blob/main/README.md))。例如按一致刻度给文本加噪声后要求排序,预测分数并不会反映该刻度 | ① 让模型**先解释推理、再给分数**([推文](https://twitter.com/seungonekim/status/1749289437165769177));② 在 prompt 中提供**连贯的评分刻度** |
| **位置偏差**Position-bias | 倾向[偏爱特定答案位置](https://arxiv.org/abs/2306.05685):如 Claude 与 GPT-3.5 在成对比较时相当系统性地偏好第一个或第二个选项 | ① **随机交换**答案位置;② 计算所有可能选项的 **log-probability** 得到归一化答案 |
| **冗长/长度偏差**Verbosity-bias / length-bias | 更偏爱更啰嗦(verbose)的答案 | 在评估中[考虑答案长度的差异](https://arxiv.org/abs/2404.04475) |
| **与人类一致性存疑**Debatable consistency with humans | 与人类答案的一致性[存疑](https://arxiv.org/abs/2308.15812) | 反向提醒:**[非专家人类也未必是所有评估的好基线](https://arxiv.org/abs/2202.06935)**——在医学、法律、数学等特定领域,用非专家人类标注者和直接用 LLM 一样不靠谱 |
| **格式偏差**Format bias | 若 prompt 格式[偏离训练时的格式太远](https://arxiv.org/abs/2310.17631),评估会失准。例:训练为"成对比较 + 附参考答案"的模型,不提供参考就失败;反之亦然 | **注意训练 prompt 格式**(若模型做过指令微调),确保严格遵循 |
### 8.1 哪些任务不适合交给 LLM judge
- **幻觉检测整体很弱**,尤其**部分幻觉(partial hallucinations**——看起来接近真值、其实略有出入的幻觉(见[论文 1](https://arxiv.org/abs/2305.11747)、[论文 2](https://arxiv.org/abs/2303.08896))。
- 与人类标注者在以下任务上相关性只有 **低 ~ 中等**
- **摘要(summarization**[论文 1](https://arxiv.org/abs/2304.02554)、[论文 2](https://arxiv.org/abs/2303.16634));
- **忠实度(faithfulness**[论文](https://arxiv.org/abs/2307.16877));
- 更广地看,跨[一系列任务](https://arxiv.org/abs/2406.18403)与人类判断并非持续相关。
### 8.2 设计"少偏见"评测的检查清单
把上一节的缓解方法汇总成一张实操清单,上线评测前逐项核对:
- [ ] **一致性**:固定 seed / 温度设为 0;或对同一 judge 多次采样、取多数票(self-consistency
- [ ] **位置偏差**:成对比较时随机交换答案位置;必要时计算所有选项的 log-probability 归一化
- [ ] **自偏好**:使用陪审团(多个评委聚合),而不是单一模型
- [ ] **扰动盲区**:要求"先推理、后给分";prompt 中提供连贯的评分刻度锚点
- [ ] **冗长偏差**:比较时考虑双方答案的长度差异
- [ ] **格式偏差**:严格遵循所选模型(尤其指令微调模型)训练时的 prompt 格式
- [ ] **任务适配**:对幻觉(尤其部分幻觉)、摘要、忠实度等已知弱项任务谨慎使用
- [ ] **方法论**:高风险场景按社会调查标准设计——如计算标注者间一致性(inter-annotator agreement
---
## 9. 常见误区与 FAQ
**Q1:用 LLM 当评委,是不是就一定客观、无偏?**
不是。它看起来客观,但隐藏偏见更难被发现(我们不会主动审视它);用 LLM 评估 LLM 还被类比为制造回音室效应。详见第 2、8 节。
**Q2:打分(pointwise)是不是比成对比较(pairwise)更好用?**
原文给出的证据恰恰相反:**pairwise 与人类偏好的相关性更高、更稳健**。如果你确实需要绝对分数,务必用整数刻度 + 详细解释每个分数代表什么,或改用 additive 累加式评分。
**Q3:大模型评委是不是永远比小模型好?**
最强评委目前多为闭源大模型,但它们是黑盒、运行在 API 下且结果可能无通知变更,还涉及数据隐私。开源大模型的差距正在快速缩小;小型专用模型(Flow-Judge-v0.1、Prometheus、JudgeLM)可本地运行、可复现、便宜,且 jury 场景下"多个小模型"能大幅降低比"一个大模型"的成本。
**Q4:我能直接用 reward model 的平均分做汇总吗?**
只有**绝对分数型** RM 可以直接取平均。**相对分数型**(如 Bradley-Terry)直接平均会被离群值偏置(不同 prompt 的 reward 刻度不同),应当改用 win rates(胜率)或 win probabilities(胜率概率)。
**Q5LLM judge 是不是什么任务都能评?**
不是。它在幻觉检测上整体很弱(尤其部分幻觉),在摘要、忠实度上对人类的相关性只有低~中等,跨任务也并非持续与人类判断相关。选任务前先看第 8.1 节。
**Q6:分数相关性 0.3 算不算合格?**
看文献:有人对 0.8 的 Pearson 相关才满意,也有人宣称 0.3 就算与人类标注者"良好相关"。阈值取决于你的任务难度与后果——这正是"评估你的 evaluator"这一步的意义。
**Q7:用小型 judge 模型时,prompt 格式重要吗?**
重要。格式偏差(format bias)会导致评估失准:例如训练为"成对比较 + 附参考答案"的模型,不提供参考就失败,反之亦然。务必遵循模型训练时的 prompt 格式。
---
## 10. 速查表:全章要点一页纸
1. **Judge LLM = 用 LLM + prompt 评估其他模型输出**;三大任务:打分(pointwise)、成对比较(pairwise)、相似度。
2. **优点**:客观、可扩展、便宜、与人类判断相关;**缺点**:隐藏偏见、回音室效应、数据质量负担、专家质量不如真人。
3. **获取路线**:通用大模型(闭源最强但黑盒/API 不稳,开源差距快速缩小)→ 小型专用模型(Flow-Judge-v0.1 3.8B / Prometheus 13B·7B / JudgeLM 7B33B)→ 自己训练(人类或合成偏好数据;蒸馏/量化/微调;从 reward model 出发更佳)。
4. **Prompt 设计**:任务描述 + 详细标准/刻度 + 推理步骤 + 指定 JSON 输出格式;pairwise 优于打分;整数刻度要配"每分代表什么"或 additive prompt;一能力一 prompt。
5. **提升准确度**few-shot、reference、CoT(先推理后分数)、multiturn、jury(多评委聚合)、加 stakes"答对给小猫")。
6. **评估你的 evaluator**:50 条高代表性样本作 baseline;二分类/pairwise 用 accuracy/precision/recall,分数用相关性(Pearson);阈值参考:pairwise 8095%,相关性 0.80.3 也有人接受)。
7. **Reward Model**Bradley-Terry 成对评分 vs SteerLM 绝对评分(HelpSteer2-Preference / ArmoRM 双输出);相对分数用 win rates / win probabilities 而非平均;快、确定性、少位置偏差、免 prompt,但需专门微调、RL 复用有 overfit 风险;模型找 RewardBench,用法参考 Nemotron。
8. **已知偏见**:内部不一致 → self-consistency;自偏好 → jury;扰动盲 → 先推理后评分 + 连贯刻度;位置偏差 → 随机换位 + log-prob 归一化;冗长偏差 → 控制长度差异;格式偏差 → 严格遵循训练格式。
9. **慎用场景**:幻觉(尤其部分幻觉)、摘要、忠实度——相关性低或一般。
---
## 11. 参考资料
### 原文(本笔记对应源文件)
- [basics.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/model-as-a-judge/basics.md)
- [getting-a-judge-llm.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/model-as-a-judge/getting-a-judge-llm.md)
- [designing-your-evaluation-prompt.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/model-as-a-judge/designing-your-evaluation-prompt.md)
- [evaluating-your-evaluator.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/model-as-a-judge/evaluating-your-evaluator.md)
- [what-about-reward-models.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/model-as-a-judge/what-about-reward-models.md)
- [tips-and-tricks.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/model-as-a-judge/tips-and-tricks.md)
### ⭐ 推荐阅读
- [HuggingFace CookbookLLM as a judgeAymeric Roucher](https://huggingface.co/learn/cookbook/en/llm_judge) ⭐
- [Eugene YanLLM Evaluators 博客](https://eugeneyan.com/writing/llm-evaluators/) ⭐(含 [决策树图](https://eugeneyan.com/assets/llm-eval-tree.jpg)
- [RewardBench Leaderboard](https://huggingface.co/spaces/allenai/reward-bench)
### 论文
- [UltraFeedback2310.01377](https://arxiv.org/abs/2310.01377)
- [Prometheus2310.08491](https://arxiv.org/abs/2310.08491)
- [JudgeLM2310.17631](https://arxiv.org/abs/2310.17631)
- [MT-Bench / Chatbot ArenaJudging LLM-as-a-Judge2306.05685v4,通用大模型评委与位置偏差)](https://arxiv.org/abs/2306.05685v4)
- [小模型偏好判别(2405.01535](https://arxiv.org/abs/2405.01535)
- [Pairwise 优于打分(2403.16950](https://arxiv.org/abs/2403.16950)
- [CoT 提升准确度(2212.08073](https://arxiv.org/abs/2212.08073)
- [多轮分析提升事实错误检测(2305.13281)](https://arxiv.org/abs/2305.13281)
- [Jury(多评委聚合,2404.18796](https://arxiv.org/abs/2404.18796)
- [Self-preference2404.13076](https://arxiv.org/abs/2404.13076)
- [输入扰动盲区(2406.13439](https://arxiv.org/abs/2406.13439)
- [位置偏差(2306.05685](https://arxiv.org/abs/2306.05685)
- [Verbosity bias 与长度控制(2404.04475](https://arxiv.org/abs/2404.04475)
- [Judge 与人类一致性存疑(2308.15812)](https://arxiv.org/abs/2308.15812)
- [非专家人类标注者作为基线的争议(2202.06935)](https://arxiv.org/abs/2202.06935)
- [格式偏差(2310.17631,同 JudgeLM](https://arxiv.org/abs/2310.17631)
- [部分幻觉检测(2305.11747 / 2303.08896](https://arxiv.org/abs/2305.11747)
- [摘要相关性(2304.02554 / 2303.16634](https://arxiv.org/abs/2304.02554)
- [忠实度相关性(2307.16877](https://arxiv.org/abs/2307.16877)
- [跨任务与人类一致性(2406.18403)](https://arxiv.org/abs/2406.18403)
- [Nemotron-4 340B 技术报告(reward model as judgeNVIDIA](https://research.nvidia.com/publication/2024-06_nemotron-4-340b)
- [Nemotron 用 RM 做评测(2406.11704](https://arxiv.org/abs/2406.11704)
- [SteerLM2311.09528](https://arxiv.org/abs/2311.09528)
- [HelpSteer2-Preference2410.01257](https://arxiv.org/abs/2410.01257)
- [ArmoRM2406.12845](https://arxiv.org/abs/2406.12845)
- [训练中跟踪 win rate 检测退化(2410.11677v1](https://arxiv.org/abs/2410.11677v1)
### 模型与数据集
- [Flow-Judge-v0.1 权重集合](https://huggingface.co/collections/flowaicom/flow-judge-v01-66e6af5fc3b3a128bde07dec)
- [Prometheus-13B-v1.0](https://huggingface.co/prometheus-eval/prometheus-13b-v1.0) / [Prometheus-7B-v2.0](https://huggingface.co/prometheus-eval/prometheus-7b-v2.0)
- [Prometheus Preference Collection](https://huggingface.co/datasets/prometheus-eval/Preference-Collection) / [Feedback Collection](https://huggingface.co/datasets/prometheus-eval/Feedback-Collection)
- [RLHFlow pair-preference-model-LLaMA3-8B](https://huggingface.co/RLHFlow/pair-preference-model-LLaMA3-8B)
- [Qwen 2.5 系列](https://huggingface.co/collections/Qwen/qwen25-66e81a666513e518adb90d9e) / [Command R+](https://huggingface.co/CohereForAI/c4ai-command-r-plus-08-2024) / [Llama 3.1-405B-Instruct](https://huggingface.co/meta-llama/Llama-3.1-405B-Instruct)
- [LMSYS Chatbot Arena 人类偏好数据集(Kaggle](https://www.kaggle.com/competitions/lmsys-chatbot-arena)
### 工具与教程
- [distilabel](https://distilabel.argilla.io/latest/)[UltraFeedback tutorial](https://distilabel.argilla.io/latest/sections/pipeline_samples/papers/ultrafeedback/) / [benchmarking with distilabelArena Hard](https://distilabel.argilla.io/latest/sections/pipeline_samples/examples/benchmarking_with_distilabel/)
- [lightevalMixEval judge prompts](https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mix_eval/judge_prompts.pyy) / [MTBench judge prompt templates](https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mt_bench/judge_prompt_templates.py)
- [ArtificialAnalysis LLM Performance Leaderboard(成本对比)](https://huggingface.co/spaces/ArtificialAnalysis/LLM-Performance-Leaderboard)
- [LeonEricsson/llmjudge(扰动敏感度扩展实验)](https://github.com/LeonEricsson/llmjudge/blob/main/README.md)
### 社区推文
- [Seungone Kim:先推理后打分 / 分数刻度锚点](https://x.com/seungonekim/status/1749289437165769177)
- [Aparna Dhinakaran:分数范围一致性](https://twitter.com/aparnadhinak/status/1748368364395721128)
- [从 reward model 出发微调 judge 更好](https://x.com/dk21/status/1826292289930674590)
@@ -0,0 +1,402 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- troubleshooting
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# Troubleshooting(排错)
> 本页提炼自 [HuggingFace LLM Evaluation Guidebook](https://github.com/huggingface/evaluation-guidebook) 的 **Troubleshooting** 章节(共三小节:推理排错、LaTeX 数学解析、可复现性排错)。这是整本指南中最实操的部分——当评测跑不起来、跑得慢、分数对不上时,先查这里。文内 ⭐ 标记为作者特别推荐的资源。
## 本节速览(TL;DR
| 症状 / 诉求 | 第一反应 | 详见 |
|---|---|---|
| 评测跑得太慢 | 增大 batch size → 数据并行 → 换推理库 → 降精度 | §1.1 |
| 模型太大放不进 GPU | 量化 → 模型并行(pipeline / tensor)→ CPU offloading | §1.2 |
| 装得下却 OOM | 怀疑 context size,用 dummy 数据测试 | §1.3 |
| 数学评测分数异常偏低 | 检查 LaTeX 解析器(sympy 自洽只有 0.94 | §2 |
| 复现不出论文分数 | 逐项对齐:代码库 / seed / 指标 / normalization / prompt / 生成参数 / 加载方式 | §3 |
> 贯穿全章的三条核心心法:**① 评测工具链本身也是被测对象**——解析器、normalization、指标实现都会系统性改变分数;**② 评测不只是"模型回答问题",而是"在特定环境里跑特定管道"**——环境细节决定一切;**③ 想对比两个分数,先确认它们是不是用同一套管道算出来的。**
## 1 推理排错(Troubleshooting Inference
评测中跑模型推理会遇到三类典型问题:**慢**、**大**(内存装不下)、以及**装得下却 OOM**。本节逐一给出排查思路。先给一张按症状定位的速查表:
| 症状 | 直接原因 | 对策 | 代价 / 注意 |
|---|---|---|---|
| 推理慢 | batch size 太小 | 增大 batch size | 破坏绝对可复现性 |
| 推理慢 | 只用了单张 GPU | 数据并行(多 GPU) | 需同节点,避免节点间瓶颈 |
| 推理慢 | 推理库实现不够优化 | 换更快推理库 / 参考优化清单 | 需要实测 |
| 推理慢 | 精度过高 | 降到 `bfloat16`/`float16`,或 8bit/4bit 量化 | 精度损失,部分量化库本身偏慢 |
| 模型太大 | 精度过高 | 量化 | 中规模模型建议停在 `float16`/8bit |
| 模型太大 | 单卡放不下 | 模型并行 / CPU offloading | 并行较难编码;offloading 显著更慢 |
| 装得下却 OOM | context size 过大 | dummy 测试 + 降 batch + 逆序呈现样本 | 让失败尽早暴露 |
### 1.1 模型太慢怎么办
#### ① 修改 batch size
- 如果你追求**绝对可复现**(给定特定硬件与特定评测 prompt),通常只能用 batch size = 1。
- 但只要内存放得下,**调大 batch size 几乎必然显著加速**评测——这是最简单的提速手段。
#### ② 数据并行(data parallelism
- 思路:把模型复制到多张 GPU 上(而不是只加载到一张卡),把数据切成子集分给每张卡的副本,各自计算后再**聚合结果**。
- 效果:多条数据流同时被处理,总执行时间约**除以 GPU 数量**。
- 注意:尽量让所有 GPU 在**同一个节点(node)**上,避免节点间通信成为瓶颈(inter-node bottleneck)。
#### ③ 更换推理代码
- 不是所有推理库速度都一样,有些实现优化得更好,需要针对你的用例**实测对比**。
- 如果使用 PyTorch,作者推荐参考 [PyTorch 模型推理性能优化清单](https://pytorch.org/serve/performance_checklist.html)。
#### ④ 降低精度(precision
- `float32` 每个数占 32 bit,计算精确但**内存与算力开销都大**。
- 降到 **`bfloat16` / `float16`(一半精度)**,速度约翻倍,精度损失几乎可以忽略。
- 想进一步提速可量化到 **8 bit 或 4 bit**(例如用 `gptq``bitsandbytes`),n-bit 矩阵计算更快、模型占内存更少。
- ⚠️ 某些量化库本身可能偏慢,需要针对你的场景实测。
> 贯穿 1.1 的原则:以上手段**不是二选一的单选题,而是可以叠加的组合拳**(如"大 batch + 数据并行 + `bfloat16`"),且**提速效果必须在你的硬件与任务上实测确认**——作者多次强调"test things out for your use cases"。
### 1.2 模型太大(GPU 装不下)怎么办
#### 估算内存需求
用如下公式估算加载模型所需的**最小理论内存**:
```
<memory (in GB)> = <number of parameters (in G)> × <precision factor>
```
原理:1 Byte = 8 bit,总内存 ≈ 参数量 × 每个参数占用的 Byte 数。precision factor 取值:
| 精度 | precision factor |
|---|---|
| `float32` | 4 |
| `float16` / `bfloat16` | 2 |
| 8 bit 量化 | 1 |
| 4 bit 量化 | 0.5 |
更稳妥的推荐公式(留出推理时的 batch 等额外开销):
```
<memory (in GB)> = <number of parameters (in G)> × (<precision factor> × 110%)
```
> 示例估算(用推荐公式 `参数(G) × factor × 110%`,取 7B 与 70B 两个常见规模):
| 模型规模 | `float32` | `float16`/`bfloat16` | 8 bit | 4 bit |
|---|---|---|---|---|
| 7B | 7×4×1.1 ≈ **30.8 GB** | 7×2×1.1 ≈ **15.4 GB** | 7×1×1.1 ≈ **7.7 GB** | 7×0.5×1.1 ≈ **3.9 GB** |
| 70B | 70×4×1.1 ≈ **308 GB** | 70×2×1.1 ≈ **154 GB** | 70×1×1.1 ≈ **77 GB** | 70×0.5×1.1 ≈ **38.5 GB** |
> 由此可快速判断硬件选型:单张 80GB 的 GPU 要跑 70B 模型,`float16`154GB)不行,需要 8bit77GB,一张卡勉强)或 4bit 量化 / 模型并行;而 7B 模型在 `float16` 下单张 16–24GB 的消费级卡即可胜任。
#### ① 量化(quantization
- 最直接的手段:调小上面的 precision factor。从 `float32`**4 bit**,内存需求直接**缩小 8 倍**。
- ⚠️ 精度过低会损害评测结果。对**中规模模型**建议保守停在 `float16` 或 8 bit。
- 经验观察:量化对**超大模型**的性能影响反而较小(可能因为存在信息冗余)。
#### ② 模型并行(model parallelism
把模型切成小块,分别加载/运行在不同的 GPU 上;因为从不一次性加载完整模型,所以省内存,但**可能更慢**。两种主要类型:
| 类型 | 切分粒度 | 机制 | 代价 / 特点 |
|---|---|---|---|
| **Pipeline parallelism**(流水线并行) | 整层(layer)级别 | 按层分派到不同 GPU,层 1 输出是层 2 输入 | GPU 会空转等待,产生所谓 **"bubble"**;把输入拆成更小的 batch 可缓解 bubble;需要 GPU 间传输数据 |
| **Tensor parallelism**(张量并行) | 矩阵计算级别 | 把矩阵按行/列切开,各 GPU 算完再聚合 | 只要 GPU 都在同一节点就**极其高效**(避免节点间网络瓶颈),但**难以编码** |
- Pipeline parallelism 正被原生加入 PyTorch 的 [`PiPPy`](https://github.com/pytorch/PiPPy) 库,也是 `accelerate` 底层使用的并行方式。
- Tensor parallelism 在 `vllm` 库中有很好的实现,作者形容其带来 **"insane speedups"(惊人的加速)**。
- 各类并行(含用于提速的 data parallelism)的最佳参考文档:[Transformers 官方并行文档](https://huggingface.co/docs/transformers/v4.15.0/en/parallelism)。
#### ③ CPU offloading
- 把部分计算和模型参数挪到 CPU,以降低 GPU 显存占用。
- ⚠️ **比上面任何方法都慢得多**——因为要持续在设备之间搬运数据。
- 典型实现:DeepSpeed 的 [ZeRO-Offload](https://arxiv.org/abs/2101.06840)(在 ZeRO-2 优化之上):优化阶段的梯度、optimizer states、fp32 参数计算放 CPUGPU 上保留 fp16 参数与前向/反向传播,以"用 CPU 内存 + GPU 算力、最小化通信"为设计目标。
### 1.3 模型装得下,但还是 OOM
大概率是 **context size(上下文长度)** 的问题——显存峰值往往由"batch size × 序列长度"决定,模型权重本身反而放得下。作者建议:
1. **先用虚拟推理数据(dummy inference data)测试**模型是否真的放得下;虚拟数据要使用**足够大、能代表你任务**的 context size。
2. **降低 batch size**;如果你开了 auto-batch size search(自动搜索 batch size),考虑关掉——它可能导致意外的 OOM。
3. 一般性原则:**让样本按 context size 逆序(从大到小)呈现**给模型——这样如果 context 太大,会**一开始就立刻失败**,而不是跑了几小时后才崩。
## 2 数学能力评测中的 LaTeX 解析问题(MATH & sympy
> 📌 **新版(2025 Space)更新**:新版指南把 LaTeX 解析问题并入「Designing your automatic evaluation」的 *Normalization* 小节,并推荐使用专门的数学解析库 **Math-Verify**(替代 sympy 手工解析/字符串比较,见 [[08-2025-Edition]] §5)。下方记录的是旧版(sympy)的探索过程与教训,仍有参考价值。
### 2.1 问题背景
- 解析 LaTeX **非常困难**。当评测任务期望模型输出 LaTeX 时(典型如 [MATH benchmark](https://huggingface.co/datasets/lighteval/MATH),它用 LaTeX 表示数学计算与符号),问题就来了。
- 评测这类任务本应只是"解析并比较 ground truth 与模型输出",但**实际上不存在"正确"的 LaTeX 解析方式**sympy 文档自己也这么说)。
### 2.2 sympy 的局限:0.94 的自洽准确率
- `lm-evaluation-harness` 使用 **`sympy`**Python 符号数学库)解析 LaTeX 并比较表达式。
- 残酷的事实:**即使用 ground truth 去解析 ground truth 本身**(自己和自己比),`sympy` 也只有约 **0.94 的准确率**
- 原因:`sympy` 无法解析一部分**本身正确**的 LaTeX 表达式。
- 这个"用 ground truth 自比"的测试本质是一个**解析器健全性检查(round-trip test)**:它排除了模型因素,单独测量解析管道的上限。0.94 意味着即使模型 100% 输出正确答案,评测系统也会因解析失败丢掉约 6% 的分数——解析器成了评测误差的主要来源之一。
### 2.3 典型报错示例
以下三个示例中,`sympy` 都因语法问题拒绝了正确的 LaTeX:
**例 1:半开区间 `[0,1)`interval**
```
couldn't parse one of [0,1) or [0,1), I expected one of these: ']'
[0,1)
~~^
```
**例 2:并集 `\cup` 与无穷 `\infty`(此处写作 `\iny`**
```
couldn't parse one of (-\iny,-5]\cup[5,\iny) or (-\iny,-5]\cup[5,\iny), I expected something else here
(-\iny,-5]\cup[5,\iny)
~~~~~~^
```
**例 3:分数中的空分组 `\frac{1}{{}2x}`**
```
couldn't parse one of -\frac{1}{{}2x} or -\frac{1}{{}2x}, I don't understand this
-\frac{1}{{}2x}
~~~~~~~~~~~^
```
> 小结:把上述失败归纳成三类典型盲区——
| 失败类别 | 报错示例 | 原因 |
|---|---|---|
| 区间表示(interval | `[0,1)` | 半开区间 `[`/`)` 混用,sympy 期待 `]` 之类的闭合符号 |
| 集合运算与特殊符号 | `(-\iny,-5]\cup[5,\iny)` | `\cup`(并集)等集合运算符、`\infty`(示例中写作 `\iny`)不被支持 |
| 多余分组 | `-\frac{1}{{}2x}` | 分子/分母里的空分组 `{}` 导致语法不识别 |
三类都是**合法、正确的 LaTeX**,却会被解析器拒绝——这正是"解析器不是标准答案"的实证。
### 2.4 怎么绕过
两条路:
1. **重写 LaTeX grammar**:向 [`sympy` 的 LaTeX 语法文件 `latex.lark`](https://github.com/sympy/sympy/blob/master/sympy/parsing/latex/lark/grammar/latex.lark) 添加所需特性(为解析器增加新规则)。
2. **在代码里加手动检查**:为模型输出增加字符串比较等后处理兜底。
作者的选择:在几乎掉进"重写 grammar"这个深坑之后,**决定只给代码加上字符串比较(string comparison)检查**就足够了——即对 `lm-evaluation-harness` 打一个修复补丁(见原文附图中的 LM Eval Harness fix)。
> 为什么选"字符串比较"而不是"重写 grammar"?重写 parser grammar 是个无底洞:LaTeX 语法变体无穷无尽(区间、集合、特殊符号、各种分组写法),每补一个规则都可能引入新冲突,维护成本高。而字符串比较实现简单、可立刻生效——解析失败时退而求其次做规范化后的字符串比对,足以覆盖评测场景中大多数"模型其实答对了"的情况。**对评测工程而言,够用、可维护,比理论上完美更重要。**
### 2.5 修复效果:MATH 上旧/新解析器对比
修复后对 MATH benchmark 前 25 个模型的分数(原始解析器 vs 修复后解析器)对比如下(分数列为 0–100;"提升"为两列差值):
| 模型 | 原始 | 修复后 | 提升 | 排名变化 |
|---|---|---|---|---|
| rombodawg/Rombos-LLM-V2.5-Qwen-72b | 47.58 | 50.68 | +3.10 | 1 → 1 |
| MaziyarPanahi/calme-2.2-qwen2-72b | 41.16 | 43.43 | +2.27 | 2 → 2 |
| arcee-ai/Arcee-Nova | 40.48 | 42.90 | +2.42 | 3 → 3 |
| fblgit/TheBeagle-v2beta-32B-MGS | 39.43 | 42.52 | +3.09 | 4 → 4 |
| rombodawg/Rombos-LLM-V2.5-Qwen-32b | 39.12 | 41.99 | +2.87 | 5 → 5 |
| dnhkng/RYS-XLarge | 38.97 | 41.24 | +2.27 | 6 → 6 |
| dfurman/CalmeRys-78B-Orpo-v0.1 | 37.92 | 40.71 | +2.79 | 8 → 7 |
| MaziyarPanahi/calme-2.2-rys-78b | 37.92 | 39.95 | +2.03 | 8 → 9 |
| MaziyarPanahi/calme-2.4-rys-78b | 37.69 | 40.41 | +2.72 | 9 → 8 |
| MaziyarPanahi/calme-2.3-rys-78b | 36.56 | 38.97 | +2.41 | 10 → 10 |
| MaziyarPanahi/calme-2.1-rys-78b | 36.40 | 38.90 | +2.50 | 11 → 11 |
| Qwen/Qwen2.5-72B | 36.10 | 38.67 | +2.57 | 12 → 12 |
| MaziyarPanahi/calme-2.1-qwen2-72b | 36.03 | 38.07 | +2.04 | 13 → 15 |
| Qwen/Qwen2-Math-72B-Instruct | 35.95 | 38.14 | +2.19 | 14 → 14 |
| dfurman/Qwen2-72B-Orpo-v0.1 | 35.42 | 38.14 | +2.72 | 15 → 13 |
| abacusai/Smaug-Qwen2-72B-Instruct | 35.35 | 37.46 | +2.11 | 16 → 19 |
| anthracite-org/magnum-v1-72b | 35.27 | 37.69 | +2.42 | 18 → 16 |
| alpindale/magnum-72b-v1 | 35.27 | 37.69 | +2.42 | 18 → 16 |
| Qwen/Qwen2-72B-Instruct | 35.12 | 37.69 | +2.57 | 19 → 18 |
| dnhkng/RYS-XLarge-base | 34.67 | 37.16 | +2.49 | 20 → 20 |
| Undi95/MG-FinalMix-72B | 33.61 | 36.10 | +2.49 | 22 → 21 |
| abacusai/Dracarys-72B-Instruct | 33.61 | 35.65 | +2.04 | 22 → 22 |
| Qwen/Qwen2.5-32B | 32.85 | 35.50 | +2.65 | 23 → 23 |
| anthracite-org/magnum-v2-72b | 31.65 | 34.06 | +2.41 | 24 → 24 |
| dnhkng/RYS-Huge-bnb-4bit | 31.57 | 33.84 | +2.27 | 25 → 25 |
**关键观察**
- 所有模型的分数都提升了约 **23 分**(最低 +2.03,最高 +3.10)——这个量级的差距足以改变一个模型的"好不好"结论,说明解析器(而非模型)曾经拖累了大量分数。
- 排名大体稳定,但个别模型有 ±1~3 位的变化(如 Smaug-Qwen2-72B-Instruct 从 16 掉到 19Qwen2-72B-Orpo-v0.1 从 15 升到 13)——若按排名做基准对比,解析差异会**改变排行榜序**。
**为什么分数整体平移、排名却会变?** 解析器对每个模型的"扣分"并不均匀:模型 A 输出的 LaTeX 恰好多是 sympy 的盲区(区间、集合、多余分组),被多扣;模型 B 的输出风格恰好全被解析,少扣。所以修复解析器后,**被多扣的模型分数抬升更多**,相对位置就动了。结论:解析器不只是"对所有人一视同仁的常量误差",它还可能掩盖模型之间的真实差距。
> 引申教训:评测指标管道(metric pipeline)本身也是被测对象的一部分。解析器、normalization、后处理的实现差异会系统性抬高/压低某些模型的分数。
## 3 可复现性排错(Troubleshooting Reproducibility
场景:你读了某篇最新技术报告,想在本地复现它的分数,却**复现不出来**?以下是作者拆解的原因清单。
### 3.1 不同的代码库(code base
- 要复现到小数点,第一步是**使用与论文完全相同的代码库**。
- 通常意味着:用**作者提供的评测默认代码**,或用参考库中的标准实现——如 Eleuther AI 的 `lm_eval`、HuggingFace 的 `lighteval`。这两个库是社区事实上的"标准管道":`lm_eval`(EleutherAI)是使用最广的评测框架,`lighteval`HuggingFace)由 Open LLM Leaderboard 团队维护——用它们,等于和其他人共用同一套任务定义与指标实现,这是复现的前提。
- 如果论文**没提供评测代码**:几乎不可能精确复现,只能放弃精确比对。
- ⭐ 想直观理解不同实现带来的差异,读作者团队写的这篇博客:[MMLU 在不同评测实现下的差异](https://huggingface.co/blog/open-llm-leaderboard-mmlu)——它研究了 MMLU 在 `lm_eval``helm` 与原始作者实现三种版本下的分数差异。
- 背景:正因为如此,HuggingFace 团队才发起 [Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard),用统一、同质的评测来做模型间的横向比较。
### 3.2 同一代码库内也容易踩的坑
即使代码库相同,以下细节也容易出错:
#### ① 不同的随机种子(random seed
- 推理受 seed 影响通常比训练小,但仍可能影响:
- 部分 **CUDA 操作**(参考 [PyTorch 可复现性文档](https://pytorch.org/docs/stable/notes/randomness.html));
- **非 greedy 生成策略**下的预测结果;
- 使用 few-shot 时的 **prompt 内容**(抽样选出哪些示例);
- 某些**前处理 / 后处理函数**。
- 一个小 seed 差异就可能带来**几分之差**。
#### ② 同名但实际不同的指标(metric)
指标名相同 ≠ 计算方式相同,例如:
- **log likelihood 版 `exact match`**(计算不同候选答案的对数概率) vs **生成式 `exact match`**(只把 greedy 生成与参考答案比较)——两者分数完全不同。
- 代码库里不少任务名叫 `exact match`,实际却是:
- **`prefix exact match`**(只比生成的开头与参考);
- **`suffix exact match`**(反过来,只比结尾);
- **`quasi exact match`**(带 normalization 的 exact match)。
- **结论:不能只靠指标名判断评测做了什么,必须看代码。**
#### ③ 不同的 normalization
- 回到上面生成式 `exact match` 的例子:`lm_eval` v1 中不少任务只叫 generative `exact match`,你会以为预测是"原样与参考比较";但看代码会发现预测**先经过 normalization**(去标点、数字同质化等)再比较——这会**大幅改变结果**。
- `lm_eval` **v2 已把 normalization 的名字写进大多数指标名**
- 这是最容易被搞砸的点,尤其对**需要大量 normalization / 答案后处理的任务**,比如数学评测(需要从模型生成的解释里**抽取最终答案**再比较)。
### 3.3 不同的 prompt
prompt 变化有三个来源。
#### ① prompt 本身(格式)
prompt 格式对分数的影响**巨大**。以多选题为例,仅呈现选项的格式就有多种"语义等价"的变体:
```text
Question: <text of the question>
Choices:
```
```markdown
| A. <Choice A> | (A) <Choice A> | <Choice A> |
| B. <Choice B> | (B) <Choice B> | <Choice B> |
| C. <Choice C> | (C) <Choice C> | <Choice C> |
| D. <Choice D> | (D) <Choice D> | <Choice D> |
```
```text
Answer:
```
并要求模型预测 `A`/`B`/`C`/`D`,或直接输出 `<Choice A/B/C/D>` 的完整文本。
- 这些 prompt **语义等价**(内容完全相同),但对同一模型仍可能差**好几分**:
- 作者团队实验([原帖](https://x.com/clefourrier/status/1777319187913875893/photo/1))观察到同一模型**最高差 7 分**;
- [相关论文](https://arxiv.org/abs/2310.11324)也观察到了类似结果。
- 有些任务还会带**任务前缀 prompt**(如 `The following questions are about <topic>`),其有无也会影响分数。
- ⭐ [这篇论文](https://arxiv.org/abs/2407.07890)还揭示一个副作用:**不少模型被训练成"过拟合基准的 prompt 与答案格式"**,代价是在评测时对其他 prompt 的适应能力下降。
- 实例(Open LLM Leaderboard 2 上的 Llama3.1):这些模型在 MATH-Hard 评测中**能预测出正确答案,分数却很低**——因为它们过拟合了 GSM8K(另一个数学评测)的 prompt 与答案格式,无法适配 few-shot 中提供的模板。
#### ② system prompt 与 chat template
- Chat 模型通常经过指令/偏好训练(instruction/preference training 或 fine-tuning),这个阶段它们学会了**遵循特定模板**推理。
- 常见模板要素:
- 每轮对话以**system prompt** 开头(通常以特定 token 前缀,如 `System: `),用于给模型高层指令(人设、回答风格等);
- 对话轮次给文本加**前缀关键词**,如 `User`(提问)与 `Assistant`(回答)。
- 使用 few-shot 时还要决定:示例**按多轮(multi-turn,模拟 user/assistant 轮次)提供**,还是**一次性放在单条 user prompt 里**。
- ⚠️ **不遵循模型期望的 chat template,会严重损害性能**——因为它把模型输出推向其已收敛的概率空间之外。
#### ③ few-shot 样本
- 显然要用**与参考任务相同的 few-shot 数量**。
- 还要用**完全相同的样本**——不同样本会改变结果(这不太意外:有些样本更能表达任务)。
- 更反直觉的一点:**样本完全相同还不够,顺序也必须完全相同**。作者团队观察到:同样的样本仅改变顺序,在 **MMLU 的某些子集上最多差 3 分**[结果见这里](https://huggingface.co/blog/evaluation-structured-outputs),第三个 colorgrid)。
- 因此这里同样要**注意随机种子**。
### 3.4 不同的生成参数(generation parameters
对生成式评测,需要对齐:
- 使用**相同的 end of sentence tokenEOS token**
- 允许模型**生成相同数量的 token**;
- 如果使用 sampling,确保**相同的 seed / temperature 参数**。
### 3.5 不同的模型加载(model loading
已观察到的差异来源:
| 来源 | 说明 |
|---|---|
| **不同硬件** | PyTorch **不保证**非确定性操作在不同硬件上可复现 |
| **不同推理库** | 例如用 `transformers` 还是 `vllm` 作为推理后端,矩阵计算的实现方式并不完全相同 |
| **不同 batch size** | 多个评测库与模型后端都有文档记录:**batch size 不同会改变推理结果**;要完全可复现就固定 batch size(虽然内存受限时不一定总能做到) |
| **不同加载精度** | 用更低精度加载权重可省内存与推理成本,但用的是不同版本的权重,**数值结果必然改变** |
> 排查复现问题时的总思路:**从"最可能、最容易改"的项开始逐项对齐**——先核对 prompt 与 few-shot(改动最频繁、影响最直接),再查指标与 normalization(需要看代码确认),最后核对生成参数与加载方式(涉及硬件环境)。每锁定一项就重跑一次对比,通常很快能找到分差来源。
### 3.6 可复现性检查清单(速查)
综合 3.1–3.5,复现一份评测分数前逐项核对(任一项不满足,分数就可能对不上):
- [ ] 使用与参考完全相同的**代码库/评测框架**(`lm_eval` / `lighteval` / 作者实现)
- [ ] 相同**随机种子**(尤其非 greedy 生成、few-shot 抽样)
- [ ] 相同的**指标定义**log-likelihood vs generative、prefix/suffix/quasi exact match,看代码确认)
- [ ] 相同的 **normalization / 后处理**(数学评测尤其注意答案抽取)
- [ ] 相同的 **prompt 格式、system prompt、chat template**(多轮 vs 单次 few-shot
- [ ] 相同的 **few-shot 数量、样本与顺序**
- [ ] 相同的**生成参数**EOS token、max tokens、seed / temperature
- [ ] 相同的**硬件、推理库、batch size、加载精度**
## 核心要点(一句话版)
1. **提速四杠杆**(按性价比排序):调大 batch size → 数据并行 → 换更快推理库 → 降精度(`bfloat16`/`float16` → 8bit/4bit 量化)。
2. **内存估算**`memory(GB) = 参数(G) × precision factor × 110%`factor 为 `float32`=4、`float16`/`bfloat16`=2、8bit=1、4bit=0.5。
3. **放不下时**:先量化(最多省 8 倍内存),再模型并行(pipeline 慢在 bubble、tensor 慢在难编码但同节点极快),CPU offloading 是最后手段(显著更慢)。
4. **装得下却 OOM**:八成是 context size 问题——用大 context 的 dummy 数据先测、降 batch、样本按 context 逆序呈现让失败提前暴露。
5. **数学评测的 LaTeX 解析没有标准答案**`lm-evaluation-harness` 用的 `sympy` 连 ground truth 自比都只有约 0.94 准确率;别去重写 grammar,加字符串比较兜底就够(修复后 25 个模型 MATH 分数全部 +2~3 分)。
6. **复现不出分数 = 某个环境细节没对齐**:代码库、随机种子、指标真实定义(prefix/suffix/quasi exact match)、normalization、prompt 格式与 chat template、few-shot 的数量/样本/顺序(顺序变化最多差 3 分)、生成参数(EOS、max tokens、seed/temperature)、硬件/推理库/batch size/加载精度——每一项都可能差几分。
7. **最容易被低估的两处**:① 同名指标的实现差异(必须看代码,别信名字);② prompt 格式的微小变化——语义等价也能差 7 分,还有模型专门过拟合基准 prompt 格式,换格式分数暴跌。
8. **工具取向**:优先使用维护中的标准框架(`lm_eval` v2、`lighteval`),因为它们把 normalization 等细节暴露在指标名里,减少"实现悄悄不同"的踩坑概率;升级框架版本时,也要顺手核对指标定义是否变化。
## 参考资料
### 原文(GitHub 仓库)
- [Troubleshooting inference(推理排错)](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/troubleshooting/troubleshooting-inference.md)
- [Using LaTeX to evaluate MATH capabilitiesLaTeX 解析)](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/troubleshooting/troubleshooting-math-parsing.md)
- [Troubleshooting reproducibility(可复现性排错)](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/troubleshooting/troubleshooting-reproducibility.md)
- 仓库主页:[huggingface/evaluation-guidebook](https://github.com/huggingface/evaluation-guidebook)
### 文中引用的外部链接
- [PyTorch 模型推理性能优化清单](https://pytorch.org/serve/performance_checklist.html)
- [PyTorch PiPPypipeline parallelism](https://github.com/pytorch/PiPPy)
- [Transformers 并行化文档(data / pipeline / tensor parallelism](https://huggingface.co/docs/transformers/v4.15.0/en/parallelism)
- [ZeRO-Offload 论文(arXiv:2101.06840](https://arxiv.org/abs/2101.06840)
- [MATH benchmarklighteval/MATH](https://huggingface.co/datasets/lighteval/MATH)
- [sympy(符号数学库)](https://github.com/sympy/sympy)
- [sympy 的 LaTeX grammarlatex.lark](https://github.com/sympy/sympy/blob/master/sympy/parsing/latex/lark/grammar/latex.lark)
- ⭐ [MMLU 在不同评测实现下的差异(HF 博客)](https://huggingface.co/blog/open-llm-leaderboard-mmlu)
- [Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard)
- [PyTorch 可复现性文档](https://pytorch.org/docs/stable/notes/randomness.html)
- [prompt 格式对分数影响的实验(X 原帖,最高差 7 分)](https://x.com/clefourrier/status/1777319187913875893/photo/1)
- [Few-shot prompt 变化的影响(论文 arXiv:2310.11324](https://arxiv.org/abs/2310.11324)
- ⭐ [模型过拟合基准 prompt 格式(论文 arXiv:2407.07890](https://arxiv.org/abs/2407.07890)
- [few-shot 顺序对 MMLU 子集分数的影响(HF 博客)](https://huggingface.co/blog/evaluation-structured-outputs)
@@ -0,0 +1,325 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- general-knowledge
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# LLM 评测指南 · General Knowledge(通用知识)提炼笔记
> 本页提炼自 [HuggingFace Evaluation Guidebook](https://github.com/huggingface/evaluation-guidebook) 的 **General knowledge** 章节的两页内容:**Model inference and evaluation**(模型推理与评测)与 **Tokenization**(分词)。面向初学者,重点整理与评测直接相关的部分:生成式评测 vs log-probability 评测、log-prob 的计算方式、tokenizer 对评测结果的影响。
>
> 原文链接:
> - [model-inference-and-evaluation.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/model-inference-and-evaluation.md)
> - [tokenization.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/tokenization.md)
---
## 一、模型推理与评测(Model Inference and Evaluation
### 1.1 什么是推理(inference
大型语言模型的工作方式很简单:**给定一段文本作为输入,它们学会了预测"合理的后续内容"**。整个过程分两步:
#### 第一步:Tokenization(分词)
- 输入文本(推理时称为 *prompt*)先被切分成 **tokens**——小的文本单元(可以是一个或几个字符,最多到词级)。
- 每个 token 关联一个数字;模型能解析的全部 token 范围称为它的 **vocabulary**(词表)。
- 细节见本页第二章(原文 Tokenization 页)。
#### 第二步:Prediction(预测)
![LLM 推理流程示意](https://github.com/huggingface/evaluation-guidebook/blob/main/assets/llm_tk_1.png?raw=true)
- 基于输入文本,LLM 在**整个词表**上生成"最可能的下一个 token"的概率分布。
- 要得到连续生成:取概率最高的 token(可加入一点随机性以获得更有趣的输出)作为下一个 token,然后**重复该操作**,把新 token 当作 prompt 的结尾继续下去,如此循环(即自回归生成)。
### 1.2 你想预测什么?——评测的两大类别
LLM 评测主要分为两大类:
1. **给定一个 prompt 和一个(或多个)答案**:我的模型给出这些答案的概率是多少?
2. **给定一个 prompt**:我的模型会生成什么文本?
| 维度 | Log-likelihood 评测(选择题式) | Generative 评测(生成式) |
|---|---|---|
| 核心问题 | 给定候选答案,答案是"被模型认可"的概率 | 给定 prompt,模型自己生成什么 |
| 模型输出 | 候选序列的 log-probability | 自回归生成的 token 序列 |
| 典型形态 | 多项选择(multiple-choice / MCQA)、单句概率判断、校准研究 | 开放生成、摘要、翻译、代码生成 |
| 打分方式 | 比较各选项 log-prob、与 0.5 阈值比较、看校准 | 与参考文本比对(exact match、BLEU 等)或模型作评委 |
| 优点 | 计算确定、可复现,直接反映模型偏好 | 更接近真实使用场景 |
| 风险 | 可能偏向"自由生成时会输出别的东西"的模型(见 1.3) | 生成结果多样,打分标准更难定 |
> 📌 **术语衔接(来自指南其他章节,非本页原文)**:指南的 *Automatic benchmarks* 章节把"对给定序列求 log-probability"的评测称为 *multiple-choice evaluations*,有时也叫 **MCQA** 或 *perplexity evaluations*perplexity(困惑度)指标的具体用法,以及评测框架 **lm-evaluation-harness**EleutherAI)与 **lighteval**HuggingFace)的讨论,不在本页范围内,详见指南对应章节与本目录 [[01-Automatic-Benchmarks]]、[[07-Resources]] 笔记。
### 1.3 Log-likelihoodlog-prob)评测
目标是:**给定 prompt,求一个或多个候选答案的条件概率**——即"给定输入,得到某个特定续写的可能性有多大"。
计算过程(对应原文插图 `llm_logprob.png`):
```text
1. 拼接:把每个选项(choice)与 prompt 拼接,传给 LLM
2. 取 logitsLLM 输出每个 token 的 logits(每个 token 取决于它之前的 token
3. 只保留与选项 token 相关的最后几个 logits,施加 log softmax
→ 得到 log-probabilities(值域为 [-inf, 0],而不是 [0, 1]
4. 求和:把所有单个 token 的 log probability 相加
→ 得到整个选项的总 log probability
5. 归一化:最后可按选项长度(choice length)做归一化
```
![log-prob 计算示意](https://github.com/huggingface/evaluation-guidebook/blob/main/assets/llm_logprob.png?raw=true)
基于此可以应用以下指标:
- **在多个选项中选出模型最偏好的答案**(如上图)。
- ⚠️ 注意:这可能**有利于**那些"若自由生成会输出别的东西"的模型——例如图中模型"被迫"在选项里选 `Zygote`,但若让它自由生成可能给出别的答案,从而虚高其得分。
- **测试单个选项的概率是否超过 0.5**。
- **研究模型校准(calibration)**:一个校准良好的模型,其正确答案应该拥有最高的概率。
- 了解校准是什么、如何检测、如何训练出校准良好的模型:Anthropic 论文 [Calibration tutorial](https://arxiv.org/abs/2207.05221)。
- 校准的一些可能局限:[Limits of calibration](https://arxiv.org/abs/2311.14648)。
### 1.4 生成式评测(Generative evaluations
目标是:**给定 prompt,得到模型生成的文本**。
生成过程是自回归的:
```text
1. 把 prompt 传给模型
2. 看最可能的下一个 token,选中它作为模型的 "choice first token"
3. 重复,直到满足生成结束条件:
- 达到最大长度(maximum length
- 出现特殊终止 tokenspecial token to stop the generation
- 等
4. 模型生成的所有 token 即它对 prompt 的"回答"
```
![生成式评测示意](https://github.com/huggingface/evaluation-guidebook/blob/main/assets/llm_gen.png?raw=true)
然后**把生成结果与参考答案(references)比较,对两者之间的距离打分**:
- 简单指标:**exact match**(精确匹配)。
- 更复杂的指标:**BLEU** 等。
- 或用**模型作评委**models as judges,即 LLM-as-a-judge,详见指南 Model-as-a-Judge 章节)。
#### Going further(进阶阅读)
- ⭐ [Blog on several ways to evaluate MMLU](https://huggingface.co/blog/open-llm-leaderboard-mmlu) —— HuggingFace 团队(原作者所在团队)所写,深入讲解"多项选择 log-likelihood 评测"与"生成式评测"的差异,以及它们对分数变化意味着什么。上文插图即来自该博客(由 Thom Wolf 制作)。
- ⭐ [A beautiful mathematical formalization of the above inference methods](https://arxiv.org/abs/2405.14782v2) —— EleutherAI 对上述推理方法的数学形式化,直接看 Appendix。
### 1.5 约束模型输出(Constraining model outputs
在很多情况下,我们希望模型输出遵循特定格式(例如为了与参考答案比较)。原文给出了三种方式:
| 方式 | 做法 | 优点 | 局限 |
|---|---|---|---|
| **使用 prompt** | 在任务 prompt 中加入非常具体的指令(如 `Provide numerical answers in digits.``Use no abbreviation.`) | 最简单;对高能力模型通常够用 | 不一定总是有效 |
| **Few-shot / In-context learning** | 在 prompt 中提供示例(few-shot prompting),让模型隐式偏向遵循示例的 prompt 形状 | 2023 年底之前普遍效果很好 | 见下方说明 |
| **结构化文本生成(Structured text generation** | 用语法(grammar)或正则表达式定义输出路径,约束输出 | 减少评测中的 prompt 方差,结果与排名更稳定 | 可能降低部分任务的性能(见下方说明) |
#### Few-shot 的说明
- 工作原理:通过 in-context learningprompt 里的示例会让模型隐式地偏向"按照重复出现的 prompt 形状"作答。
- **时效性**:该方法直到 2023 年底都整体表现良好;但此后 **instruction-tuning** 的广泛采用,以及预训练后期加入指令数据(**continuous pre-training**),似乎让较新的模型偏向特定输出格式——论文称之为 *Training on the test task*[arxiv 2407.07890](https://arxiv.org/abs/2407.07890)),作者则称之为 *overfitting the prompt format*(对 prompt 格式的过拟合)。
- **上下文窗口限制**:对上下文窗口较小的旧模型,few-shot 示例可能**放不进 context window**。
#### 结构化生成的说明
- `outlines` 库用**有限状态机(finite state machines, FSM**实现,作者认为非常 neat;也存在其他方法,例如用于 JSON 生成的 **interleaved generation**(作者本人更偏爱 FSM)。
- 收益:结构化生成降低评测中的 prompt 方差,使结果和排名更稳定(见共同撰写的博客 [Evaluation of structured outputs](https://huggingface.co/blog/evaluation-structured-outputs);也可看 `outlines` 的 [博客](https://blog.dottxt.co/))。
- 风险:近期 [研究](https://arxiv.org/abs/2408.02442) 显示,结构化生成可能通过把先验推离期望概率分布太远,从而**降低模型在部分任务(如推理)上的表现**。
#### Going further(进阶阅读)
- ⭐ [Understanding how Finite State Machine works when using structured generation](https://blog.dottxt.co/coalescence.html) —— Outlines 出品,对其方法的清晰讲解。
- [The outlines method paper](https://arxiv.org/abs/2307.09702) —— 上述方法的学术版解释。
- [Interleaved generation](https://github.com/guidance-ai/guidance?tab=readme-ov-file#guidance-acceleration) —— 另一种约束特定输出格式生成的方法。
---
## 二、Tokenization(分词)
### 2.1 为什么以及如何切分文本
**LLM 本质上是大型数学函数,吃的是数字而不是文本。** 要把句子变成数字:先决定如何把句子切成小块,再把每个小块映射成一个数字——这就是 **tokenization**
历史上两端方案:
| 方案 | 切分方式 | 映射方式 | 例子 |
|---|---|---|---|
| **Character based**(字符级) | 按字符切分 | 每个字符映射为字母表索引 | `a` → 1`b` → 2 |
| **Word based**(词级) | 按空格切分(若语言有空格;没有的话更难) | 每个词映射为词典索引 | `a` → 1`aardvark` → 2`ab` → 3 |
**两者的共同局限:都会丢失输入文本的信息。**
- 抹掉了从**词形**能看出的语义联系,例如:`dis similar``similar``similar ity``similar ly` —— 这些联系正是我们希望模型保留、以便把相关词联系起来的。
- 另外:如果输入中出现一个**全新的词**,它没有对应数字,模型就无法处理 😔
于是有人想到:**把词切成子词(sub-words),再为这些子词分配索引**(如 `dis``similar``ity``ly`)。
- 早期做法:使用**形态句法规则(morpho-syntactic rules**"morpho-syntax" 类似于"构词的语法")。
- 现在大多数使用 **byte pair encodingBPE**:一种聪明的统计方法,根据参考文本中的词频**自动**创建子词。
**总结定义**
> Tokenization 是一种把小的文本单元(可以是一个或几个字符,最多到词级)映射为数字(类似索引)的方式。处理文本时,输入文本(推理时称为 *prompt*)被 **tokenizer** 切分成这些 **tokens**;模型或 tokenizer 能解析的全部 token 范围称为它的 **vocabulary**。
#### Going further:理解 tokenization
- ⭐ [Explanation of different tokenization methods in the 🤗 NLP Course](https://huggingface.co/learn/nlp-course/en/chapter2/4) —— 建议精读。
- ⭐ [Conceptual guide about tokenization in the 🤗 doc](https://huggingface.co/docs/transformers/en/tokenizer_summary) —— 建议精读。
- [Course by Jurafsky on tokenization](https://web.stanford.edu/~jurafsky/slp3/2.pdf) —— 更学术向,直接跳到 2.5 和 2.6 节(其余也有趣但太宽泛)。
#### Going furtherByte Pair Encoding
- ⭐ [Explanation of BPE in the 🤗 NLP Course](https://huggingface.co/learn/nlp-course/en/chapter6/5)
- [Paper introducing BPE to NLP](https://aclanthology.org/P16-1162/)
### 2.2 问题一:如何选择词表大小(vocabulary size
词表大小 = 模型需要学习的独立 token(例如子词)的数量。
#### 词表太大(too big)的两个问题
1. 可能把**很罕见的词**当作完整 token 收录(例如 `aardvark`)。如果该词在训练数据中几乎不出现,它就**难以与其他概念建立联系**,模型可能无法推断它是什么。
2. 如果该词罕见但只出现在特定上下文,则可能被关联到**非常具体的词**:例如在论坛数据上训练时,tokenizer 把一个用户名映射成单一 token,模型就可能把这个 token 与该用户的内容关联起来。
#### 词表太小(too small)的两个问题
1. **表示能力变差**
2. **推理成本上升**
回到 `similar` 词族的例子(原文):
- 用类 BPE(大词表)切 `similarly`**2 个 token**`similar``ly`
- 用字符级切分(词表很小,只有字母表大小)切同一个词 → **9 个 token**`s` `i` `m` `i` `l` `a` `r` `l` `y`
对比结论:
- 大词表切出的 token 各自有独立语义;小词表则**丢失了语义表示**。
- 表示长度差异直接变成成本差异:生成同一个词需要 9 个 token 而不是 2 个,**贵了约 5 倍**!
#### 实践建议
目前大多数人用**启发式**选择词表大小,它似乎与**覆盖的语言数量**和**模型规模**相关——因此使用与"规模相近的参考模型"接近的 token 数量,很可能可行。
#### Going further:罕见 token 效应
- ⭐ [SolidGoldMagikarp post on Less Wrong](https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldmagikarp-plus-prompt-generation) —— 有趣读物:人们在**不访问模型内部**(例如不知道训练数据内容)的情况下识别出 OpenAI 词表中的极罕见 token。
- [Fishing for Magikarp, paper by Cohere](https://arxiv.org/abs/2405.05417) —— 检测这些 token 的后续工作。
### 2.3 问题二:多语言管理(Managing several languages
> 建议先读完 BPE 的解释再读本节。
- 构建/选择 tokenizer 时,词表来自**参考文本**——通常意味着**英文、拉丁字母**的数据。
- 如果新语言与原始语言**使用相同脚本且有共同词根**,理论上可以期待部分语义迁移到新语言。
- 但若要 tokenizer 正确切分其他语言(尤其是**不同脚本**的语言),最好在构建 tokenizer 时**纳入这些语言的数据**。
- 然而,这些数据通常**比例失衡**:初始语言(如英文)远多于新语言(如泰语、缅甸语)。由于 BPE 等高效方法基于**最高频的词**创建复杂词表 token:
- 大多数**长 token 是英文词**
- 低频语言的大部分词**只能按字符级切分**。
**结果:多语言 tokenization 的不公平** —— 一些(较不常见的、或 *lower-resourced* 低资源)语言,生成与英文**等长含义的句子需要多出数量级(orders of magnitude)的 token**。
#### Going further:语言与 tokenization
- ⭐ [A beautiful breakdown and demo by Yennie Jun on tokenization issues across languages](https://www.artfish.ai/p/all-languages-are-not-created-tokenized) —— 分析本身非常清晰,值得把玩其 [demo space](https://huggingface.co/spaces/yenniejun/tokenizers-languages)。
- ⭐ [A demo by Aleksandar Petrov on unfairness of tokenization](https://aleksandarpetrov.github.io/tokenization-fairness/) —— 建议看 *Compare tokenization of sentences*,直观感受不同语言在推理成本上的差异。
### 2.4 问题三:数字怎么办?(What about numbers?
构建 tokenizer 时需要决定如何处理数字:
- 只索引 `0``9`,假设其他所有数字都是数字位的组合?
- 还是把数字单独存储,直到(比如说)十亿级别?
现状与展望:
- 当前知名模型对此**做法各异**,但尚不清楚哪种方式更有利于**数学推理**。
- 也许需要新的 tokenization 方法(例如 **hierarchical tokenization**,分层分词)来解决。
#### Going further:数字 tokenization
- ⭐ [A nice visual demo by Yennie Jun of how tokenizers split numbers](https://www.artfish.ai/p/how-would-you-tokenize-or-break-down) —— Anthropic、Meta、OpenAI、Mistral 各模型 tokenizer 如何切分数字的可视化演示。
- [Small history by Beren Millidge of number tokenization evolution](https://www.beren.io/2024-05-11-Integer-tokenization-is-now-much-less-insane/) —— 数字 tokenization 多年演变的小史。
---
## 三、Tokenization 如何影响评测(对评测的启示)
把两页内容串到评测视角,可得到如下速查表(均为原文要点,非新增内容):
| 评测相关维度 | 原文章节要点 | 对评测的含义 |
|---|---|---|
| **生成成本 / 长度** | 同样一个词,字符级切 9 个 token vs BPE 切 2 个 token,贵约 5 倍 | 同一 prompt 在不同 tokenizer 下 token 数不同 → 推理耗时与费用不同;评测大批量样本时成本差异显著 |
| **词表大小** | 太大 → 罕见 token 难以关联或过度关联;太小 → 表示能力差、成本高 | 词表选择影响模型学到的表示质量,进而影响任务表现;词表大小需与模型规模、语言数匹配 |
| **多语言不公平** | 低资源语言生成等长句子需多出数量级的 token | 跨语言评测中,不同语言的"同量内容"成本不同;评测多语言模型时需考虑 token 数差异 |
| **罕见 token** | 罕见 token(如用户名)可能被关联到特定内容 | 可能造成模型在特定输入上的"意外行为";识别与检测见 SolidGoldMagikarp / Cohere 论文 |
| **数字切分** | 数字 token 化方式尚无定论,可能影响数学推理 | 评测数学/推理基准(如 MATH 类任务)时,数字 token 化方式可能影响分数 |
| **上下文窗口** | few-shot 示例可能放不进 context window(旧模型) | 设计 few-shot 评测时需考虑模型上下文长度,示例数量受限制 |
| **log-prob 归一化** | 选项 log-prob 最后可按选项长度归一化 | 多项选择评测时,不同选项长度不同,归一化避免长选项"天然"得分更高 |
> 一句话总结:**tokenizer 不是评测的"前处理细节",而是会实际改变评测成本、跨语言公平性和最终分数**的东西。
---
## 四、参考资料
### 原文(GitHub blob
- [contents/general-knowledge/model-inference-and-evaluation.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/model-inference-and-evaluation.md)
- [contents/general-knowledge/tokenization.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/general-knowledge/tokenization.md)
- 指南仓库主页:[huggingface/evaluation-guidebook](https://github.com/huggingface/evaluation-guidebook)
### 文中提到的外部链接
**评测方法 / 推理**
- ⭐ [Blog on several ways to evaluate MMLU](https://huggingface.co/blog/open-llm-leaderboard-mmlu)HuggingFace 团队)
- ⭐ [Mathematical formalization of inference methodsEleutherAI](https://arxiv.org/abs/2405.14782v2)
- [Anthropiccalibration 教程](https://arxiv.org/abs/2207.05221)
- [校准的局限](https://arxiv.org/abs/2311.14648)
- [GAIA 论文](https://huggingface.co/papers/2311.12983) 及其 [leaderboard](https://huggingface.co/spaces/gaia-benchmark/leaderboard)
- [Training on the test taskfew-shot 过拟合)](https://arxiv.org/abs/2407.07890)
- [结构化输出评测博客](https://huggingface.co/blog/evaluation-structured-outputs)
- [结构化生成降低推理性能的研究](https://arxiv.org/abs/2408.02442)
**约束输出 / 结构化生成**
- ⭐ [OutlinesFSM 工作原理](https://blog.dottxt.co/coalescence.html)
- [outlines 博客](https://blog.dottxt.co/)
- [outlines 方法论文](https://arxiv.org/abs/2307.09702)
- [Interleaved generationguidance 库)](https://github.com/guidance-ai/guidance?tab=readme-ov-file#guidance-acceleration)
**Tokenization**
- ⭐ [🤗 NLP Coursetokenization 方法总览](https://huggingface.co/learn/nlp-course/en/chapter2/4)
- ⭐ [🤗 Transformers 文档:tokenizer 概念指南](https://huggingface.co/docs/transformers/en/tokenizer_summary)
- [Jurafskytokenization 课程(看 2.5 / 2.6 节)](https://web.stanford.edu/~jurafsky/slp3/2.pdf)
- ⭐ [🤗 NLP CourseBPE 详解](https://huggingface.co/learn/nlp-course/en/chapter6/5)
- [BPE 引入 NLP 的论文](https://aclanthology.org/P16-1162/)
**罕见 token 与多语言**
- ⭐ [SolidGoldMagikarpLess Wrong](https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldmagikarp-plus-prompt-generation)
- [Fishing for MagikarpCohere](https://arxiv.org/abs/2405.05417)
- ⭐ [Yennie Jun:跨语言 tokenization 分析](https://www.artfish.ai/p/all-languages-are-not-created-tokenized) + [demo](https://huggingface.co/spaces/yenniejun/tokenizers-languages)
- ⭐ [Aleksandar Petrovtokenization 不公平性 demo](https://aleksandarpetrov.github.io/tokenization-fairness/)
- ⭐ [Yennie Jun:数字切分可视化](https://www.artfish.ai/p/how-would-you-tokenize-or-break-down)
- [Beren Millidge:数字 tokenization 小史](https://www.beren.io/2024-05-11-Integer-tokenization-is-now-much-less-insane/)
---
> 关联笔记:本目录 [[00-Overview]];指南其余章节提炼笔记([[01-Automatic-Benchmarks]]、[[02-Human-Evaluation]]、[[03-LLM-as-a-Judge]]、[[04-Troubleshooting]]、[[06-Yearly-Dives]]、[[07-Resources]])。
@@ -0,0 +1,542 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- yearly-dives
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# Yearly Dives —— 年度深度文章(20232025)
> 本页提炼自 HuggingFace Evaluation Guidebook 的 `yearly_dives/` 三个文件(2023 / 2024 / 2025 各一篇年度深度文章),用中文概括其核心观点、数据与讨论话题。文中保留原文的具体链接、论文、模型名、benchmark 名与关键数字,**不补充原文没有的内容**;论文编号(如 2302.04844)均为 arXiv 号,链接统一放在各条目内。回到原文请见文末「参考资料」。
## 2023:开源 LLM 之年(Year of open LLMs
> 原文:`yearly_dives/2023-year-of-open-source.md`,首发于 HuggingFace 博客 [2023-in-llms](https://huggingface.co/blog/2023-in-llms)。
### 写作背景与立场
- Hugging Face 关注开源模型,因为开源让研究可复现、让社区能参与 AI 开发、便于审查模型偏见与局限,并通过复用 checkpoint 降低领域整体碳排放([更多好处见论文 2302.04844](https://huggingface.co/papers/2302.04844))。
- 范围说明:本文**不讨论代码模型**。
- 文章目标:做一次开源 LLM 的年度回顾(retrospective)。
### 预训练大模型的"配方"Recipe
先讲清楚"大模型从哪来"(熟悉可跳过):
- **架构(architecture)**:模型的具体实现与数学形态——所有参数及其与输入交互的方式。当下大多数高性能 LLM 都是 decoder-only Transformer 的变体([原始 Transformer 论文 1706.03762](https://huggingface.co/papers/1706.03762))。
- **训练数据集**:模型学习的全部样本与文档,决定了学到的具体模式。内容通常是自然语言(法/英/中文等)、编程语言(Python、C 等)、或任何可用文本表达的结构化数据(markdown/latex 表格、公式等)。
- **分词器(tokenizer)**:把文本转成数字的方式,切成 token(词、子词或字符)。词表大小通常 32k–200k。数据集规模常用 token 数衡量,如今从数千亿到数万亿 token。
- **训练超参数**:决定模型如何学习——参数该为每个新样本变多少?模型该多快更新?
- 选定后还需要:① 大量算力 ② 负责训练与监控的(善良且称职的)人。
- 训练产物是**权重(weights)**——即人们讨论"开源预训练模型"时通常指的东西;权重用于**推理(inference)**(对新输入做预测、生成文本)。
- 预训练后可做**微调(fine-tuning)**:在更小、更专业的数据上继续训练以适配特定应用。成本(算力/金钱/环境)远低于从零训练——这正是高质量开源预训练模型价值巨大的原因:算力有限的从业者也能自由使用和基于它构建。
### 2022:从"规模竞赛"到"数据竞赛"
#### 2022 年及以前的开源模型格局
- 直到 2022 年初,ML 的趋势是:模型越大(参数越多)性能越好;超过特定规模阈值后能力跃升——两个概念被命名为 `emergent abilities`(涌现能力)与 `scaling laws`(缩放定律)。
- 2022 年发布的开源预训练模型族基本遵循这一范式,具体如下表:
| 模型族 | 发布方 | 最大规模 | 训练数据 | 要点 |
|---|---|---|---|---|
| BLOOM | BigScienceHF 协调) | 176B 参数 | 350B token46 种人类语言 + 13 种编程语言 | 当时最大开源多语言模型 |
| OPT | Meta | 175B 参数 | 180B token,多数公开来源 | 性能与 GPT-3 相当,算力更省 |
| GLM-130B | 清华 + 智谱 AI | 130B 参数 | 400B tokenThe Pile、Wudao 等中英数据) | 性能与 GPT-3 相当 |
| Galactica | Meta | 最高 120B | 106B token 科学文献 | 面向科学的专业模型 |
| GPT-NeoX-20B | EleutherAI | 20B | 500B token | 架构/权重/数据全开源 |
- **BLOOM**[论文 2211.05100](https://huggingface.co/papers/2211.05100)):BigScience 是约 1000 名研究者、60 国、250 机构参与的合作项目,与法国 GENCI/IDRIS 合作。decoder-only + 微小改动(post embedding normalization、ALiBi 位置编码)。大部分训练数据连同来源、策展、处理细节一起公开。
- **OPT**[论文 2205.01068](https://huggingface.co/papers/2205.01068)):decoder-only,沿用 GPT-3 论文技巧(特定权重初始化、pre-normalization),注意力改为 dense 与 locally banded attention 交替;数据来自图书、Reddit、新闻、Wikipedia 等。
- **GLM-130B**[论文 2210.02414](https://huggingface.co/papers/2210.02414)):full transformer + DeepNorm post-layer-normalization + rotary embeddings;数据含 The Pile、Wudao Corpora 及其他中文语料。
- **Galactica** 与 **GPT-NeoX-20B**:多为研究目的发布(GPT-NeoX 提供完整科研产物,RoPE + 注意力/初始化改动)。
- **昂贵的大模型**:100B 参数模型加载通常需约 **220GB 内存**,绝大多数组织与从业者无法企及。
#### Chinchilla 范式转变
- 2022 年 3 月 DeepMind 论文([2203.15556](https://huggingface.co/papers/2203.15556))研究:给定算力预算,token 数与参数数的最优比例是多少?
- 结论:对平均算力预算,模型应**更小但训练数据更多**。
- 其模型 Chinchilla(不开源):70B 参数(约为上述模型的 1/3),却训练在 1.4T token(3–4 倍数据),性能持平或更好。
- 这一转变"席卷"了开源科学社区(闭源实验室或许早已知道)。
### 2023:开源发布之年
#### 小型 LLM 的崛起
- 2023 年出现一波 decoder transformer 浪潮,新预训练模型从每月、到每周甚至每天发布:
| 月份 | 模型 / 发布方 |
|---|---|
| 2 月 | LLaMAMeta |
| 4 月 | StableLMStabilityAI)、PythiaEleutherAI |
| 5 月 | MPTMosaicML |
| 6 月 | X-GENSalesforce)、FalconTIIUAE |
| 7 月 | Llama 2Meta |
| 8 月 | StableLM v2StabilityAI |
| 9 月 | Qwen(阿里)、MistralMistral.AI |
| 11 月 | Yi01-ai |
| 12 月 | DeciLMDeci)、Phi-2、SOLARUpstage |
- 共同点:a) 发布权重(许可证开放程度不一)b) 小尺寸(3B–70B)性能良好,被社区迅速采用。
- 架构共性:几乎都是 decoder transformer 变体(ALiBi/RoPE、RMS pre-normalization、SwiGLU),注意力有 Flash-Attention、GQA、sliding windows 等改动,代码库实现各异(优化训练或推理速度)。
- 既然架构与权重都公开,核心差异只剩**训练数据与许可证**。
#### 主要模型逐个看
- **LLaMA**Meta AI[论文 2302.13971](https://huggingface.co/papers/2302.13971)):在给定算力预算下追求最佳性能;首次显式同时考虑训练预算与**推理成本**——用更小模型 + 更多数据 + 更多训练步数换更高性能(牺牲训练算力效率)。最大 65B / 1.4T token6B 与 13B / 1T token。13B 在多数 benchmark 上超过 GPT-3,最大版本发布时 SOTA。但权重为**非商用许可证**,限制了社区采用。
- **Pythia**EleutherAI[论文 2304.01373](https://huggingface.co/papers/2304.01373)):不同尺寸的[模型套件](https://huggingface.co/collections/EleutherAI/pythia-scaling-suite-64fb5dfa8c21ebb3db7ad2e1),完全公开数据训练,用于研究 LLM 训练各阶段。
- **MPT**MosaicML[博客](https://www.mosaicml.com/blog/mpt-7b)):性能接近但**许可证允许商用**,且公开训练数据构成。首个 [7B](https://huggingface.co/mosaicml/mpt-7b)6 月跟进 30B,均 1T tokenC4、CommonCrawl、The Stack、S2ORC)。
- **Falcon**TIIUAE):[7B/30B](https://huggingface.co/tiiuae/falcon-7b)11.5T token 英语与代码(RefinedWeb、Project Gutenberg、Reddit、StackOverflow、GitHub、arXiv、Wikipedia 等),年底发布 180B。数据与训练流程有技术报告及[后续论文 2311.16867](https://huggingface.co/papers/2311.16867)。
- **StableLM**StabilityAI):继承 GPT-NeoX3B/7B1.5T tokenThePile 实验数据集);v2 系列混入 RefinedWeb、RedPajama、ThePile 及未公开数据;另有 3B 的 [StableLM-3B-4e1T](https://huggingface.co/stabilityai/stablelm-3b-4e1t) + [详细技术报告](https://stability.wandb.io/stability-llm/stable-lm/reports/StableLM-3B-4E1T--VmlldzoyMjU4?accessToken=u3zujipenkx5g7rtcj9qojjgxpconyjktjkli2po09nffrffdhhchq045vp0wyfo)。
- **转折点**:早期发布公开数据;此后发布几乎**不提供训练数据信息、不可复现**,但通过权重为社区提供起点。
- **X-Gen**Salesforce[论文 2309.03450](https://huggingface.co/papers/2309.03450)):7B1.5T token "natural language and code",分步训练 + 数据调度(不是所有数据同时进入)。
- **LLaMA-2**Meta[论文 2307.09288](https://huggingface.co/papers/2307.09288)):770B2T token "公开来源"permissive 社区许可证 + 大规模 RLHF 人类偏好微调(alignment)。安全是突出卖点。
- **Mistral-7B**(新创公司 Mistral[论文 2310.06825](https://huggingface.co/papers/2310.06825)):训练 token 数与来源未公开("extracted from the open Web")。年底另有更大尺寸的 **Mixtral 8x7B**
- **DeciLM**Deci.AI)与 **SOLAR 10.7B**(Upstage):同样未公开数据来源与数量;这些模型在排行榜与开源 benchmark 上稳步提升。
- **中国模型的崛起**:年底一批双语(中英)开源模型性能领先——**Qwen**(阿里,[论文 2309.16609](https://huggingface.co/papers/2309.16609)770B2.4T token)、**Yi**01-AI634B3T token),在 [Open LLM Leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard) 与最难的 benchmark(如 [Skill-Mix 2310.17567](https://huggingface.co/papers/2310.17567))上都更进一步;**DeepSeek** 编码模型从零训练,2T token,87% 代码 + 13% 中英自然语言(基本是代码模型)。
#### 对话模型遍地开花
- 相比 2022,2023 年几乎所有预训练模型都同时发布对话微调版本,凸显大众对 chat 模型的使用增长,以及"聊天式手工评测(vibe-check"的流行。
- 主要适配方法(变体很多):
| 方法 | 原理 | 特点/成本 |
|---|---|---|
| Chat-based fine-tuning | 在对话数据(多轮、社交网络风格)上监督微调,decoder 逐 token 自回归 | 实现简单,需对话数据集 |
| Instruction fine-tuningIFT | 用指令数据集(query + 答案)教模型遵循指令 | 数据可人工或 LLM 生成 |
| 蒸馏(distillation | 用高性能模型(如 GPT-4)的输出做合成数据集再微调 | 大规模合成数据的常用方式 |
| RLHF | 生成多答案 → 人类排序 → 训练偏好模型 → 强化学习微调 | 成本高,多用于安全对齐 |
| RLAIF | 用高质量 LLM 而非人类排序 | RLHF 的廉价变体 |
| DPO | 直接优化:对齐模型同时就是偏好模型,用偏好数据更新 | 无单独偏好模型,性能相当 |
- 参考资料:对话/指令微调入门见 [dialog-agents 博客](https://huggingface.co/blog/dialog-agents)RLHF 见 [RLHF 博客](https://huggingface.co/blog/rlhf)、[原始 RLHF 论文 1909.08593](https://huggingface.co/papers/1909.08593)、[Anthropic RLHF 论文 2204.05862](https://huggingface.co/papers/2204.05862)。
- 落地情况:MPT-7B 有 instruct 与 chat 版,Falcon、XGen 年末出 instruct 版,Llama-2、Qwen、Yi 有 chat 版,DeciLM 有 instruct 版。
#### 社区做了什么
围绕基础模型,微调社区在 Reddit、Discord、HF Hub、Twitter 上自发繁荣;社区模型发布频繁,同时催生大量新数据集。
**早期(2023 年初前)的数据集**
- 人类偏好类:WebGPTOpenAI)、HH-RLHFAnthropic)、SummarizeOpenAI)。
- 指令类:P3BigSciencePublic Pool of Prompts)、FLAN 1/2Google)、Natural InstructionsAllenAI)、Self Instruct(自动生成指令框架)、SuperNatural instructions(专家构建,常作微调数据)、Unnatural instructions(特拉维夫大学 + Meta 自动生成)。
**2023 全年社区事件时间线**
| 季节 | 事件 / 数据集 / 模型 |
|---|---|
| ❄️ 冬(2022/23 | 1 月 HC3(人类 vs 模型回答);3 月 AlpacaStanford52K 指令)、OIGLAION43M 指令)、VicunaLMSYSShareGPT 对话)、Guanaco+500K 多语言条目) |
| 🌱 春 | 4 月 KoalaBAIR)、DollyDataBricks15K 人工指令);5 月 UltraChat1.5M 对话)与 UltraLLaMA、GPT4-LLM6 月 Orca(推理轨迹构造指令)、Open Orca、Camel-AI 多主题数据集、Airoboros 框架 |
| 🌻 夏 | 8 月 UltraLMOpenBMB);9 月 UltraFeedbackGPT-4 标注偏好)、OpenChat(清华,新 RL 策略)、Intel orca_dpo_pairs;夏天 NousResearch 多个微调(Hermes、Capybara |
| 🍂 秋 | 10 月 ZephyrHFDPO + AIF)、OpenHermes 2900K 条目)、LMSYS-Chat-1M25 个 LLM 真实对话);11 月 OpenBuddy-Zephyr、NotusArgilla)、HelpSteerNVIDIA)、Orca-2Microsoft)、Neural ChatIntel);12 月 StarlingBerkeleyRLAIF+ Nectar200K 对比) |
- 细节补充(冬季):Alpaca 是第一个指令跟随 LLaMA7B),52K 条 LLM 生成指令;Vicuna13B)用 ShareGPT 上用户分享的 ChatGPT 对话微调。
- 细节补充(春季):Koala 用 Alpaca/HH-RLHF/WebGPT/ShareGPT 微调;Orca 方法很快被社区复现为 Open Orca(数百万条,用于微调 Llama、Mistral 等)。
- 细节补充(夏季):UltraFeedback 是 GPT-4 标注的偏好数据集;Intel 发布 Orca 风格 DPO 数据集。
- 细节补充(秋季):Zephyr 是 Mistral 在 UltraChat/UltraFeedback 上用 DPO + AIF 微调;Notus 是 Zephyr 的 DPO 微调;HelpSteer 提供 prompt + 回答 + 多标准打分;Orca-2 是 Llama 2 + 新合成推理数据集。
- 专项数据集(不展开):MetaMath、MathInstruct、Evol-Instruct、CodeAlpaca、CodeCapybara 等;汇总见 [awesome instruction datasets](https://github.com/jianzhnie/awesome-instruction-datasets)。
### 民主化访问(Democratizing access
- 注:llama.cpp、ollama、text-generation-inference、vllm 等推理/部署工具不在本文范围。
#### 模型合并(Model merging):极致定制
- 定义:把多个模型权重融合成一个,理想情况结合各自优势。
- 方法:简单平均共同架构模型的参数([例 1 2204.03044](https://huggingface.co/papers/2204.03044)、[例 2 2109.01903](https://huggingface.co/papers/2109.01903));更复杂的有按任务加权平均([2111.09832](https://huggingface.co/papers/2111.09832))、考虑参数间干扰再选择的 ties merging[2306.01708](https://huggingface.co/papers/2306.01708))。
- 综述见 [model merging 论文集合](https://huggingface.co/collections/osanseviero/model-merging-65097893623330a3a51ead66)。
- 后果:Open LLM Leaderboard 上出现 `llama2-zephyr-orca-ultra` 这类名字;数据与模型历史难追踪(参见 Mistral 的 [child models tree](https://huggingface.co/spaces/davanstrien/mistral-graph))。
- 这是"完全去中心化研究"的典型:方法多发表在社区论坛,由全球实践者/研究者/爱好者共同推进。
#### PEFT:指尖上的个性化
- 定义:冻结预训练模型参数,在其上加少量新参数(adapters),只训练轻量 adapter。
- 好处:内存不够加载整个模型微调时也能个性化;共享时只需共享 adapter + 基础模型。
- 方法列表见 [huggingface/peft](https://github.com/huggingface/peft)。
#### 量化(Quantization):模型随处可跑
- 背景:30B 模型仅加载就需 66G+ RAM,不是人人都有这样的硬件。
- 原理:降低参数精度(float32/float16/int8 等)减小体积与内存;精度越低内存越小,但计算精度降低可能损伤性能——大模型上性能损失通常很[有限](https://huggingface.co/blog/overview-quantization-transformers)。
- 数字示例(30B 模型):float16 略小于 66G RAM8bit 约 33G4bit 约 16G。
- 常用方法:bitsandbytes[2208.07339](https://huggingface.co/papers/2208.07339))、GPTQ[2210.17323](https://huggingface.co/papers/2210.17323))、AWQ[2306.00978](https://huggingface.co/papers/2306.00978))。
- 社区角色:如 [TheBloke](https://huggingface.co/TheBloke) 专门把流行模型转成低精度版本供社区使用。
- 原文评价:这些方法都很新、仍在发展,期待更多进展。
### 接下来是什么?(2023 年底)
- **MoE(混合专家)****Mixtral** 由 8 个子模型(transformer decoder)组成,router 为每个输入挑选 2 个最优子模型并求和输出。
- **状态空间模型**(通过潜在空间做输入输出映射,可表达为 RNN 或 CNN;入门见 [Annotated S4](https://srush.github.io/annotated-s4/)):
- **Mamba**[2312.00752](https://huggingface.co/papers/2312.00752)):状态空间模型 + 选择机制。
- **Striped Hyena**[HF 模型页](https://huggingface.co/togethercomputer/StripedHyena-Nous-7B)):状态空间模型 + 快速卷积核。
- 是否取代 Transformer 还太早下结论,但状态空间模型很有前景。
### Takeaways(要点)
1. 各类参与者(大公司、初创、研究实验室)的开源发布大幅增长,社区以前所未有的速度实验与探索。
2. 开放性有起有伏:年初发布很开放(数据构成、权重、架构),年末发布对训练数据讳莫如深、不可复现。
3. 开源模型从许多新地方涌现,包括中国,多个新参与者成为强竞争者。
4. 个性化手段达到新高:RLHF、adapters、模型合并——都还只是开始。
5. 更小模型 + 量化进步让 LLM 真正走近更多人。
6. 新架构出现——它们会最终取代 Transformer 吗?
---
## 2024:聊聊 LLM 评测(ICLR 2024 上的讨论与反思)
> 原文:`yearly_dives/2024-evals-thoughts-from-iclr.md`,首发于 [HuggingFace 博客](https://huggingface.co/blog/clefourrier/llm-evaluation)。
### 背景
- 作者(Hugging Face 评测与排行榜团队成员)在 ICLR 2024 与大量与会者交流后,意识到很多自己"习以为常"的评测观念并不普及且引人兴趣,于是把讨论整理成文。
- 文章的自我定位:把这些对话"更广泛地分享"出来。
### 评测的三种方式
当前主要有三种评测方式:**自动化基准(automated benchmarking**、**人类作评委(humans as judges**、**模型作评委(models as judges**。
| 方式 | 代表做法 | 主要优点 | 主要问题 |
|---|---|---|---|
| 自动化基准 | 任务/能力 + 样本 + 指标 | 便宜、可复现、任务层面有信号 | 污染、能力难定义、评分受 prompt 等细节影响 |
| 人类作评委 | vibe-checks、arena、系统化标注 | 灵活、规避污染、贴近人类偏好 | 贵、小规模不可复现、心理偏差 |
| 模型作评委 | 通用强模型或专用判别模型 | 便宜、可扩展 | 微妙且不可解释的偏差、自偏爱 |
各有其存在理由、用途与局限,下面分述。
### 自动化基准(Benchmarks
#### 基本构成
- 先定义评测对象:具体**任务**(如"垃圾邮件分类")或抽象**能力**(如"数学好不好")。
- 评测由两部分组成:**样本集** + **指标(metric**
- 样本集:输入给模型看输出,必要时带参考(gold)对比;样本通常尽量模拟目标场景(含困难边界用例)。
- 对 LLM 主要是两种:**生成式评测**(归一化后与参考文本比较)与**多选式评测**(比较 prompt 后各候选续写的相对 log-probability)。
- 指标:为模型算分的方式(如分类正确率,答对=1、答错=0)。
#### 泛化与过拟合
- 应优先在**未进入训练集**的数据上评测——测试**泛化**能力。
- 只能预测训练数据称 **overfitting(过拟合)**;次极端情况也要测对分布外模式的泛化(如只见过"假银行"垃圾邮件,要能泛化到"保健品"垃圾邮件)。
#### 已知问题
- 对定义明确的任务很有效;LLM 场景的问题:
- 多选评测中模型会[按选项呈现顺序偏好特定选项](https://arxiv.org/abs/2309.03882)。
- 生成式评测的归一化[设计不好就不公平](https://huggingface.co/blog/open-llm-leaderboard-drop)。
- 但任务层面仍有信号。
- 能力很难分解成精确定义的任务("数学好"指算术、逻辑还是概念推理?),于是做**整体式(holistic)评测**:假定通用样本上的表现是目标能力的**好代理**。
- 例:GSM8K 是真实高中题,解题需要整套能力,失败与成功都难解释。
- 更抽象的能力(写诗、答案有用性)更难自动评测;而模型越来越**通才化**,需要更广的评测。
- 例:学界争论 LLM 到底[会不会画独角兽](https://arxiv.org/abs/2303.12712)——多数情况不会,但值得研究。
#### 污染(contamination
- 定义:评测数据集进入训练集;被污染的模型 benchmark 分高但泛化差(详述见 [2023.findings-emnlp.722](https://aclanthology.org/2023.findings-emnlp.722/),趣味检测方法见 [2311.06233](https://arxiv.org/abs/2311.06233))。
- 缓解手段:
- BigBench 的 **canary string**(特定字符组合供人识别并剔除),但并非所有人都知道或照做。
- [加密形式提供](https://arxiv.org/pdf/2309.16575)、[门控访问](https://huggingface.co/datasets/Idavidrein/gpqa)。
- 但黑盒 API 评测无法保证数据不被内部用于训练/微调。
- 应对:**动态基准**[2104.14337](https://arxiv.org/abs/2104.14337),定期刷新数据,在系统性未见的新数据上打分),但长期成本高。
### 人类作评委(Human as a judge
- 做法:让人类先 prompt 模型,再按指南给模型答案打分或对多个输出排序。
- 优点:可评测更复杂开放的任务、比自动指标灵活;prompt 是新写的,基本规避污染;与人类偏好天然相关(评的正是这个)。
#### 三种人类评测路径
- **Vibe-checks**:社区成员用未公开 prompt 手工感受模型质量(范围从编码到"烂文质量",也有人称 canary-testing,取自矿井金丝雀)。
- 常在 Twitter/Reddit 分享,属轶事证据、易受确认偏差影响(人们往往找到自己想找的)。
- 但也有系统性做法,如用户 Wolfram Ravenwolf 的[模型对比博客](https://huggingface.co/blog/wolfram/llm-comparison-test-llama-3)。
- **Arena(竞技场)**:用社区反馈做大规模模型排名,如 [LMSYS Chatbot Arena](https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard)——用户盲聊,发现更好的就投票,投票聚合成 **Elo 排名**
- 问题:主观性强,宽泛指南难以让众多社区成员稳定打分。
- 标注者偏好有[文化差异](https://arxiv.org/abs/2404.16019v1)(不同人偏好不同话题)。
- 寄望"群众智慧"Galton 的"猜猪重"统计故事:个体估计围绕真实值呈概率分布)在大规模投票下平滑掉偏差。
- **系统化标注**:给付费精选标注者极具体指南,尽量去除主观偏差(ScaleAI 等标注公司的做法,见 [Scale 指南](https://scale.com/guides/data-labeling-annotation-guide#hight-quality-data-annotations))。
- 问题:持续、非自动化地评测会很快变得极贵。
- 仍可能有人类偏差:[2205.00501](https://arxiv.org/abs/2205.00501) 显示不同身份者对模型答案毒性打分差异很大。
#### 人类评委的已知偏差
- 评测者倾向按**第一印象**而非实际事实性/忠实性估质量([2309.16349](https://arxiv.org/pdf/2309.16349)):
- 众包标注者对语气敏感、会低估自信语气答案中的事实/逻辑错误。
- 模型用自信语气说错话,人类更不容易察觉,评分会偏向更"自信"的模型。
- 专家标注者更不易受影响。
- 人类更偏好**迎合自己观点或与自己的错误一致**的答案,而非事实正确的答案([2310.13548](https://arxiv.org/pdf/2310.13548))。
- 启示:需要事实性的任务(写代码、模型知识评测等)不应只依赖众包非专家人工标注,应叠加更稳健的评测方式。
### 模型作评委(Model as a judge
- 动机:降低人工标注成本。2019 年已有用[模型嵌入测摘要质量](https://arxiv.org/abs/1904.09675)的技术,此思路并不新。
- 两种打分方式:
- 用**通用高能力模型**[2306.05685](https://arxiv.org/abs/2306.05685v4)):与人类偏好相关性好,但够强的模型多为闭源,API 背后会变、不可解释。
- 用**专门从偏好数据训练的小型判别模型**([2405.01535](https://arxiv.org/pdf/2405.01535))。
- 已知局限:
- 评分时[偏爱自己的输出](https://arxiv.org/abs/2404.13076)。
- 分数范围不一致(可让模型[先解释推理再打分](https://twitter.com/seungonekim/status/1749289437165769177)改善)。
- 与人类排名[并不一致](https://arxiv.org/pdf/2308.15812)。
- 作者的个人担忧:模型作评委会在答案选择中引入**微妙且不可解释的偏差**——类比遗传学中过度杂交产生缺陷后代,用 LLM 选择和训练 LLM,很可能在若干代后放大微小变化;小型专用模型(如毒性分类器)风险较低,但尚待严格验证。
### 为什么要做评测?——三个被混淆的目的
作者认为评测有三个**截然不同**的目的,常被混为一谈,各自回答不同问题:
| 目的 | 回答的问题 | 关键做法 | 作者的观点 |
|---|---|---|---|
| 非回归测试 | 我的训练对吗? | 看分数轨迹与区间 | 不关心精确分数,只要"没坏" |
| 排行榜与排名 | 哪个模型最好? | 找稳定一致的排名 | 分数不可靠,排名更稳 |
| 领域能力水平 | 我的模型能做 X 吗? | 定义能力 + 找代理任务 | 目前无法真正评测"通用能力" |
#### 1) 非回归测试(non-regression testing
- 概念源自软件工程:加新功能或修 bug 后,确认没破坏整体行为。
- 对训练:确认训练设置变更(数据、架构、参数等)没有"破坏"同属性模型的预期性能。
- 看两点:① 分数**轨迹**(是否比开始时好)② 分数**区间**(是否在预期范围)。
- 例:7B 基础模型 MMLU 预期 50–65;20–30 说明没学到东西。
- 你其实……不关心精确分数。
- 甚至只看文本 perplexity 变化都可能够。
- 但通常要"信噪比"高的 benchmark(大分数变化反映大模型变化)。
#### 2) 排行榜与排名(Leaderboards and rankings
- 作用:排序选型——排行榜第一的不适合你的用例,第二名多半也不行。
- ImageNet 时代的经验论文([2404.02112](https://arxiv.org/pdf/2404.02112))主张:分数易不稳定,唯一稳健方式是**排名**,且要找能给出稳定一致排名的**大类评测组**。
- 作者团队也发现:LLM 分数对 prompt 细节[极其敏感](https://huggingface.co/blog/evaluation-structured-outputs),人类评测也不更一致——而**排名**在稳健评测方法下更稳定。
- ICLR 2024 评测 plenary 上 Moritz Hardt 的扰动实验:
- 给 Open LLM Leaderboard 做微小分数扰动(在分数区间内)。
- 给 Chatbot Arena 加一个差选手看 Elo 排名变化。
- 结论:**两者当前都无法提供稳定一致的排名**(未来版本的 Open LLM Leaderboard 会探索这一点)。
#### 3) 领域整体能力水平?(Can my model do X?
- "你怎么知道模型能做 X?"是个常见且合理的问题。
- 但对任何复杂能力,目前只能说:"该模型在这个任务上最好,而这个任务我们希望是能力的代理,**但没有保证**。"
- ML 领域严重缺乏"能力"的定义与框架(推理、心智理论尤甚);但这并非 ML 独有——人类/动物研究里定义能力也很难(IQ、EQ 争议不断)。
- 或许该借鉴社会科学(那里习惯严肃对待数据收集与分析中的混淆变量)。
- 但作者也认为:1) 这些宽泛能力可能根本无法定义(人类与动物目前也没定义出来)2) 面向人的框架未必能迁移到模型(底层行为与假设不同)。
### 结论
- 现状归纳:
- 自动基准:受污染与"不通用"影响(后者未必是坏事,专项评测也有价值)。
- 人工评测:小规模下可复现性差、总体有心理偏差(如偏好谄媚答案),大样本下或许部分平滑。
- 模型作评委:偏差微妙,可能悄悄扰动下游。
- 仍有信号:非回归测试(分数落在预期区间)与足够稳定的排名能告诉我们新训练方法/数据集是否有前途;跨主题与任务攒够数据点也能对整体性能有大致把握——但**不能**据此假设任何"通用能力"。
- 与炒作相反,目前**无法**真正评测"通用模型能力",首先因为还没定义它是什么。
- LLM 评测作为研究领域还处在婴儿期,可从机器学习可解释性(如 [transformer-circuits 的 scaling monosemanticity](https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html))到社会学跨界汲取灵感,跨学科工作很可能开辟新方向。
### 致谢(提及的交流者)
- Summer YueScale AI)、Moritz Hardt(马普所)、Luca Soldaini 与 Ian MagnussonAllen AI)、Ludwig SchmidtAnthropic)、Max BartoloCohere)、Maxime LabonneLiquid AI)、François ChartonMeta)、Alan CooneyUK AI Safety Institute)、Max RyabininTogether AI)。
- Hugging Face 的 Yacine Jernite、Irene Solaiman 与评测/排行榜团队(尤其 Nathan Habib)。
---
## 2025:评测要超越简单基准,构建真正可用的模型
> 原文:`yearly_dives/2025-evaluations-for-useful-models.md`(原文标题:Evals in 2025: going beyond simple benchmarks to build models people can actually use)。
### 核心论点
- 目标应是构建"**工作得好(work well**"的模型而非"智能"的模型——对人们有用且高效的工具体现为更好的成功度量,而非追求"通用智能"替人解决问题(顺带制造一串新问题)。
- 现实依据:Anthropic [经济指数报告](https://www.anthropic.com/research/anthropic-economic-index-september-2025-report)与 OpenAI [ChatGPT 使用研究](https://cdn.openai.com/pdf/a253471f-8260-40c6-a2cc-aa93fe9f142e/economic-research-chatgpt-usage-paper.pdf)显示 LLM 当前最常见的用途是**助手**:写代码、行政支持等;模型今年在通用 agent 用例上取得进展。
- 好助手应做到:面对 query 处理指令**歧义**、构建**逐步计划**、正确识别所需**资源**、不跑偏地执行计划、按需**调用工具**、执行中适应**意外事件**与新信息、且全程**不胡编(without bullshitting**。
- 所需能力组合:逐步"推理"、长上下文记忆管理、适应性、低幻觉率,外加数学/代码/工具调用能力。
- 规模观察:**7B 的模型就能当好 agent 助手**(但再小到 3B 以下会碰到能力壁垒)。
- 评测方法需**分层**:开发期测**单一能力**、在现实任务上测**集成表现**、在动态环境中探**适应性**。
### 单一能力评测(Testing specific capabilities
> 注意:若用下列评测来挑选/验证训练方法,最终报告这些指标会略有偏置(训练方法已被导向这些结果)。适合训练中取信号与对比 base/预训练模型。
#### 推理与常识(Reasoning and commonsense
- 背景:这类数据集多为 BERT/嵌入模型时代建的"历史"数据集——当年有挑战性(常针对当时模型对抗式构造),现在 1) 太简单 2) 污染/饱和。
- 定位:只适合**消融或预训练评测**。
- 质量问题:大型数据集常经 MTurk 快速低成本构建,含错误或低质量问题(现在改用 LLM 生成评测题)。
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| ARC | 2018 | 小学科学 MCQA,选择对当时的词共现系统对抗式构造;高质量的 `challenge` 子集今天仍用于预训练([1803.05457](https://arxiv.org/abs/1803.05457);勿与 ARC-AGI 混淆) |
| WinoGrande | 2019 | 众包(MTurk + 校验)代词消解/填空,对抗式配对;2022–2023 前对模型一直很难([1907.10641](https://arxiv.org/pdf/1907.10641) |
| HellaSwag | 2019 | 从对抗候选中选正确下一句;文本来自 ActivityNet 字幕与 Wikihow 教程,常需物理常识 grounding;Swag 的后继([1905.07830](https://arxiv.org/abs/1905.07830) |
| CommonsenseQA | 2018 | 基于 ConceptNet 的常识 MCQA,干扰项用概念相近选项([1811.00937](https://arxiv.org/abs/1811.00937) |
| PIQA | 2019 | 物理常识题,源自 Instructables.com,对抗选项来自语义扰动/改写([1911.11641](https://arxiv.org/abs/1911.11641) |
| OpenBookQA | 2018 | 提供 open book 事实辅助答题,但题目仍需潜在常识知识([1809.02789](https://arxiv.org/abs/1809.02789) |
#### 知识(Knowledge
- **MMLU**2020[2009.03300](https://arxiv.org/abs/2009.03300)):主要知识评测集,已饱和/污染;深入检查发现多种问题——残缺问题(引用不存在的文档)、错误 ground truth、歧义问题、明显的美国中心主义选题。
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| MMLU-Redux | 2024 | MMLU 的清洗版([2406.04127](https://arxiv.org/abs/2406.04127) |
| MMLU-Pro | 2024 | 更多复杂题与答案,社区当前主要替代品([2406.01574](https://arxiv.org/abs/2406.01574) |
| Global-MMLU | 2024 | MMLU 翻译 + 文化偏差标注([2412.03304](https://arxiv.org/abs/2412.03304) |
| GPQA | 2023 | 生物/化学/物理博士级定制题,只有对应领域博士生能答;最常用 `diamond` 子集,2023 发布以来也开始污染([2311.12022](https://arxiv.org/abs/2311.12022) |
| Humanity's Last ExamHLE | 2024 | 2.5K 专家众包跨领域题,需复杂知识与推理;基本私密、尚未被"打穿"([agi.safe.ai](https://agi.safe.ai/) |
- HLE 的问题:无法快速按 ground truth 打分,大家改用 **LLM judge** 评估答案 → 野外结果不可比。
- 用途:MMLU 系列多用于**预训练评测与消融**;后训练用更硬的 GPQA/HLE。
- 作者预测"潜在知识"评测将逐步淡出(训练期仍可用 MMLU-Pro、后训练用 GPQA/HLE),两个原因:
1. 对人类越来越**不可读**:题太难,非专家无法理解每题的意义(也无法核查数据集本身有没有错)。
2. 模型连上工具(如联网)后,潜在知识评测逐渐变成**搜索与检索评测**——从闭卷考试走向开卷考试(类比法国教育:高中闭卷,大学假设可查数据库/网络,评分更多看"给自由信息后的推理")。
#### 数学(Math
- 数学评测长期被当作推理与逻辑的代理。
- 参考集:**GSM8K**2021[2110.14168](https://arxiv.org/abs/2110.14168),小学应用题)与 **MATH**2021[2103.03874](https://arxiv.org/abs/2103.03874),网上奥林匹克题聚合),近年已饱和/污染。
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| GSM1K | 2024 | GSM8K 重做 1K 新题,测哪些模型在 GSM8K 上污染([2405.00332](https://arxiv.org/abs/2405.00332) |
| GSM-Plus | — | GSM8K 对抗式改写:干扰项、数值变化等([2402.19255](https://arxiv.org/pdf/2402.19255) |
| GSM-Symbolic | 2024 | 把 GSM8K 改写成问题模板、可无限再生成防污染;用得少但很有意思([2410.05229](https://arxiv.org/abs/2410.05229) |
| MATH-500 | — | 500 题代表性子集,避免过拟合([HF 数据集](https://huggingface.co/datasets/HuggingFaceH4/MATH-500));另有 MATH-Hard(最难的 500 题) |
| AIME 24/25 | 2024/2025 | 美国高中生奥赛,按发布年原样使用;每年题目难度相当,可用"发布年成绩 vs 上一年度题成绩"测污染([24](https://huggingface.co/datasets/HuggingFaceH4/aime_2024)、[25](https://huggingface.co/datasets/math-ai/aime25) |
| Math-Arena | — | 持续更新的竞赛/奥赛汇总,含 AIME25 及大量其他竞赛([matharena.ai](https://matharena.ai/) |
| FrontierMath | 2024 | 数学家为评测专门撰写的显著更难的题,理论私密(但 OpenAI 疑似接触过部分数据)([2411.04872](https://arxiv.org/abs/2411.04872) |
- 观察:大多数上述数据集已"没那么难"(止步小学水平,GSM-Symbolic 可生成更多递归层级的题使其合成地变难);HLE 里也有需复杂推理(含定理证明)的数学题。
- 作者建议:预训练评测用 **AIME25 与 MATH-500**,后训练用 **Math-Arena**
#### 代码(Code
- 理由:agent 要与工具交互就需要编码能力(代码 agent 直接调工具;code/json agent 都要能调试工具输出,区别见 [agents course](https://huggingface.co/learn/agents-course/en/unit2/smolagents/tool_calling_agents));代码评测也是推理的好代理。
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| MBPP | 2021 | 1K 众包 Python 入门题([2108.07732](https://arxiv.org/abs/2108.07732) |
| APPS | 2021 | 10K 来自面试与分享网站的代码生成题([2105.09938](https://arxiv.org/abs/2105.09938) |
| HumanEval | 2021 | 随 Codex 发布、专为发布构造的题 + 防危险代码执行的沙箱 + `pass@k` 估计器([2107.03374](https://arxiv.org/abs/2107.03374) |
| EvalPlusHumanEval+/MBPP+ | 2023 | 补测试用例、修 bug、加输入([OpenReview](https://openreview.net/pdf?id=1qvx610Cu7) |
| EvoEval | 2024 | HumanEval 语义改写 + 难度标注([2403.19114](https://arxiv.org/abs/2403.19114) |
| LiveCodeBench | 2024 | 记录题目日期,比较训练前后题目的表现——优秀的防污染基准([2403.07974](https://arxiv.org/abs/2403.07974) |
| AiderBench | 2024 底上线 | 用 Exercism 数据,专门测**代码编辑与重构**([leaderboard](https://aider.chat/docs/leaderboards/) |
| RepoBench | 2023 | 仓库级自动补全(Python/Java),跨文件/文件内函数,retrieval/completion/组合多层测试([2306.03091](https://arxiv.org/abs/2306.03091) |
| SWE-Bench | 2024 | GitHub 真实 issue 求解:逻辑理解、跨文件编辑与执行、长上下文推理;推荐高质量子集 **SWE-Bench verified**[OpenReview](https://openreview.net/pdf?id=VTF8yNQM66) |
- 作者建议关注 LiveCodeBench、AiderBench、SWE-Bench verified,并读 [METR 报告](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) 了解真实代码助手有用性。
#### 长上下文(Long context
- 背景:3 年前最大上下文还是 2048 token,现在普遍 128K 以上。
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| NIAHNeedle in a Haystack | 2023 | 把随机事实放进长无关文本再检索;可评估模型在上下文何处、多长之后最易遗忘;2023 年表现很差,2025 年接近解决([gkamradt 仓库](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) |
| RULER | 2024 | 多跳追踪(追踪变量链求值)、词频变化、NIAH 的 QA 变体;也接近解决([2404.06654](https://arxiv.org/pdf/2404.06654) |
| Michelangelo / MRCR | 2024 | 多轮共指:精确复现上下文唯一片段、识别相关信息是否存在、理解文本修改序列;OpenAI 2025 扩展为 [OpenAI MRCR](https://huggingface.co/datasets/openai/mrcr)[2409.12640](https://arxiv.org/pdf/2409.12640v2) |
| InfinityBench | 2024 | 中英多语言,100K token 合成数据,覆盖 QA、NIAH 式检索、超长上下文计算等;仍有信号([2402.13718](https://arxiv.org/abs/2402.13718) |
| HELMET | 2024 | 任务与现有基准的大聚合:RAG/QANatural Questions、TriviaQA、PopQA、HotpotQA、NarrativeQA、InfinityBench)、recallRULER、JSONKV)、带引用的生成(ALCE 子集)、摘要、重排(MS MARCO)、ICLTREC、NLU、Banking77、CLINIC150);2025 年仍有足够区分度([2410.02694](https://arxiv.org/abs/2410.02694) |
| Novel Challenge | 2024 | 关于近一年出版虚构小说的 1K 真/假判断题,由读者出题,须读完并理解全书([2406.16264](https://arxiv.org/abs/2406.16264) |
| Kalamang 翻译集 | 2024 | 模型须读语法书后把英语译成 Kalamang——仅约 200 使用者的极低资源语言、无网络存在;可扩展到其他低资源语言,并可用规则语法检查器做严格准确率而非 BLEU([2309.16575](https://arxiv.org/abs/2309.16575) |
- 提醒:聚合基准有**重复测量**风险——别同时测 HELMET 和 InfinityBench 再合并结果(等于同一评测跑两遍)。
#### 指令遵循(Instruction Following
- 两大数据集:**IFEval**2023[2311.07911](https://arxiv.org/abs/2311.07911))与扩展 **IFBench**2025[2507.02833](https://arxiv.org/abs/2507.02833))。
- 作者评价:IFEval 是近几年最聪明的评测思路之一——要求模型遵循**格式指令**(关键词、标点、字数/句数、markdown/html 等文件类型格式),每个条件可用特定解析测试检查。
- 意义:少数**不依赖模型评委也能得到严格分数**的自由生成评测,属功能性正确/单元测试类评测(作者最偏爱的评测方式),也易再生成/扩展防污染。
- 反方向(non-compliance):**CoCoNot**2024[2407.12043](https://www.arxiv.org/pdf/2407.12043))测模型对不完整(未说明/不清晰)、不可回答(缺信息、AI 化、常触发幻觉)、不安全请求是否会拒绝遵循;人工写 query + 模型写违规请求再过滤,作为分类问题评测。
#### 工具调用(Tool-calling
- 背景:工具的出现是把 LLM 推向 agentic 的关键之一。
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| TauBench | 2024 | 零售与航空领域查询求解(下单/预订/查产品等),合成样本模拟真实领域数据;判对标准:1) 动作正确更新数据库 2) 恰当回答用户;用户由 LLM 模拟(成本高、易错),但贴合真实用例、用得很多([2406.12045](https://arxiv.org/pdf/2406.12045) |
| ToolBench | 2023 | 调 APIOpenWeather、Cat、HomeSearch、TripBooking、GoogleSheets、WebShop、Tabletop 等)解 100 个测试用例,每例需 1–10 次工具调用;部分 API 是 mock、部分真实 → 易意外失败([2305.16504](https://arxiv.org/pdf/2305.16504) |
| StableToolBench | 2025 | 用通用 VirtualAPIServer 全部 mock 保证稳定,但引入 LLM judge 评分(又多一层偏差)([2403.07714](https://arxiv.org/pdf/2403.07714) |
| BFCL | 2025 版 | 4 个子集:单轮简单调用、众包真实用户函数调用、多轮对话、agentic(web 搜索、记忆、SQL 数据交互);用 AST、执行响应与状态匹配判对;v3 测工具调用、v4 测 web/search 工具([OpenReview](https://openreview.net/pdf?id=2GmDdhBdDk) |
| MCPBench | 2025 | 接真实 MCP 服务器(Wikipedia、HF、Reddit、Steam、arxiv 等),多轮合成任务;规则检查工具调用有效性 + LLM judge 评回答([2508.20453](https://arxiv.org/abs/2508.20453) |
| MCP-Universe | 2025 | 11 个真实主题 MCP 服务器(IRL 导航、3D 设计、web 搜索等);多个严格评估器(格式 + 两个答案正确性);动态任务用**基于任务执行的框架**自动抓最新正确答案对比——比 LLM judge 干净得多([2508.14704](https://arxiv.org/abs/2508.14704) |
| LiveMCPBench | 2025 | 大规模本地可部署 MCP 服务器集合,测模型在工具间分辨挑选的能力;最强模型已到 80%,接近饱和;"超长工具列表中选对工具"会随 web mcp 化越来越重要([2508.01780](https://arxiv.org/abs/2508.01780) |
- 附:[Anthropic 的"为 agent 写工具"文档](https://www.anthropic.com/engineering/writing-tools-for-agents)。
- 过渡语:单项能力评测有价值,但真实助手表现来自能力组合——推理必须与工具调用、长上下文管理同时进行,所以需要"多能力编排"的评测。
### 助手任务(Assistant tasks
- 作者认为这是下一代评测的主流方向:解一个助手任务需组合大量能力(长上下文、推理、工具调用…),同时具体领域表现被放进真实有用场景;比单项能力基准**更易懂**。
- 足够通用时,不检查用了什么具体工具,只看**最终结果对不对**(复杂任务有多条成功路径)。
#### 真实信息检索(Real life information retrieval
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| GAIA | 2023 | 开创现代 agentic 评测——组合工具、推理、检索解真实查询(有时含文档);3 个难度级别,第一级已饱和、第三级仍难;公开榜见 [leaderboard](https://huggingface.co/spaces/gaia-benchmark/leaderboard);分数因评测方式(公开验证集 vs LLM judge 评私有测试集)差异很大([2311.12983](https://arxiv.org/abs/2311.12983) |
| BrowseComp | 2025 | 测同样的事(用工具与在线信息找到具体查询的答案),但**结果不保证唯一**——从结果反推构造问题(如"哪篇关于 Topic 的论文发表在 Conference,作者含一位 Nationality 与两位 Entity 的人?"),多难度;目前可能更难([OpenAI PDF](https://cdn.openai.com/pdf/5e10f4ab-d6f7-442e-9508-59515c65e35d/browsecomp.pdf) |
| GAIA2 | — | 用模拟移动环境,测助手靠事件链与工具调用正确回答查询;对 SOTA 模型,搜索与执行已极容易,**时间敏感与刻意加噪(模拟 API 失败)子集**最难([HF 博客](https://huggingface.co/blog/gaia2) |
#### 科学助手(Science assistants
| 数据集 | 年份 | 说明(链接) |
|---|---|---|
| SciCode | 2024 | 跨 STEM 领域用写科学代码解真实科研问题;核心问题分解为子问题;初版由科学家 + 模型评委评分,发布时模型表现很差(<5%)([2407.13168](https://arxiv.org/abs/2407.13168) |
| PaperBench | 2025 | 复现 ML 研究——给定 ICML 高质量论文重建对应代码库(论文作者贡献 8K 个分级任务,rubric 树加权计总分);LLM judge 评分(作者怀疑部分可约束代码形态来自动化)([2504.01848](https://arxiv.org/abs/2504.01848) |
| DSBench | 2025 | Kaggle + ModelOff(金融数据)的多模态数据分析;ModelOff 题以多选题形式给出(可能变简单),Kaggle 每题有自己的指标([2409.07703](https://arxiv.org/pdf/2409.07703) |
| DABStep | 2025 | 用此前私密(未污染)的真实运营数据分析工作负载 + 真实问题与数据;全部需多步推理、多样文档解析、特定数据操作;难、贴近真实、每题有 ground truth → 评测无偏且不算贵([2506.23719](https://arxiv.org/abs/2506.23719) |
### 游戏化评测(Game-based evaluations
- 价值:测对**变化环境的适应**(多数助手任务是静态的)、需长上下文推理、**人人都能看懂**。
- 缺点:不扎根真实生活、未必反映真实有用场景的表现。
- **ARC-AGI**[arcprize.org](https://arcprize.org/arc-agi)):2019 初版是网格拼图序列,无显式规则,找序列最后一项;非常像逻辑导向的 IQ 测试;2024 年几乎被解决。
- **Baba is AI**2024[2407.13729](https://arxiv.org/abs/2407.13729)):同类规则外推基准。
- **ARC-AGI3**(2025,进行中):整批新游戏(探索、复杂规划、记忆管理等),当前最佳解还在暴力破解。
- 单机冒险/RPG**TextQuests**2025[HF 博客](https://huggingface.co/blog/textquests))、**Pokemon**2024[benchflow 仓库](https://github.com/benchflow-ai/benchflow/tree/main/libs/pokemon-gym)Claude 与 Gemini 都有 Twitch 直播:[Claude plays Pokemon](https://www.twitch.tv/claudeplayspokemon)、[Gemini plays Pokemon](https://www.twitch.tv/gemini_plays_pokemon))——需超长规划、长上下文记忆管理、推理、回溯。
- 生存游戏:**Crafter**2021[2109.06780](https://arxiv.org/abs/2109.06780)Minecraft 启发)。
- 环境整合:**Balrog**2024[2411.13543](https://arxiv.org/pdf/2411.13543))整合了多个单人游戏环境。
- 竞争性虚张声势游戏(测逻辑、推理与**欺骗**):
- **Poker**2025[2501.08328](https://arxiv.org/html/2501.08328v1))。
- **Town of Salem**2025[仓库](https://github.com/summersonnn/Town-Of-Salem-with-LLMs))。
- **Werewolf 狼人杀**2025[2407.13943](https://arxiv.org/abs/2407.13943) / [网站](https://werewolf.foaster.ai/))。
- 例:Claude Opus 4 当狼人杀里的吸血鬼(欺骗角色)赢不了,但当农民(非欺骗角色)表现好。
- 合作游戏 **Hanabi**:测受限环境下的适应与沟通。
- 优势:单一明确的 **pass/fail 指标**(赢没赢)。
- 作者当前建议:能力看 TextQuests,安全看 Town of Salem。
### 预测类评测(Forecasters
- 背景:去年新出现的、**本质上无法污染**的任务类别(股票市场预测理论上可被操纵,但希望还没到为搞坏评测而作弊的激励程度)。
- 定位:需跨来源推理回答尚未发生事件的问题;但不确定区分度是否够强,且可能强化 LLM 的"老虎机式成功"观感——事件上接近随机:因为不可预测还是模型差?反过来,预测对了:题太简单还是太模板化?
| 数据集 | 说明(链接) |
|---|---|
| FutureBench | 预测未来有新闻价值的事件;两个来源——浏览 + LLM 每周时间窗生成问题,以及博彩市场的用户预测;数据重度过滤清洗;模型在人类博彩题上勉强优于随机,在模型生成题上 3/4 成功(后者更简单)([HF 博客](https://huggingface.co/blog/futurebench) |
| FutureX | 用一系列特定网站(预测市场、政府网站、通用排名网站、实时数据平台),模板生成未来事件问题("STOCK 何时到达 POINT");每日生成 500 题并过滤意外无关题([2508.11987](https://arxiv.org/abs/2508.11987) |
| Arbitrage | 类似生成方式,核心差异是时间窗——事件须在 2028 年前解决([2412.18544](https://arxiv.org/pdf/2412.18544) |
### 2025 年 9 月的推荐评测组合
| 用途 | 推荐评测 |
|---|---|
| 核心能力(模型构建者) | 训练期用旧能力评测;后训练用 MATH500/AIME24、GPQA、IFEval、SWE-Bench;长程评测选一个如 HELMET;面向工具用 TauBench 或 BFCL |
| 核心能力(推理期对比模型) | IFBench、HLE、MathArena、AiderBench 与 LiveCodeBench、MCP-Universe |
| 长时程任务(真实世界表现) | GAIA、DABStep、SciCode 或针对自己用例的领域评测 |
| 游戏(测鲁棒性与适应性的趣味补充) | ARC-AGI3(发布后)、TextQuests;安全相关看 Town of Salem;或任何超越 Poker/Chess/Go 的游戏 |
### 结语
- 领域正从"测孤立技能"走向"测能力编排"以服务真实使用,契合"构建 work well 的模型"的目标。
- 作者希望未来评测更重视**功能性测试**而非模型评委,并保持数据集与任务的可理解性。
---
## 参考资料
- 2023 原文(GitHub):[yearly_dives/2023-year-of-open-source.md](https://github.com/huggingface/evaluation-guidebook/blob/main/yearly_dives/2023-year-of-open-source.md)
- 2023 原文(博客首发):[2023, year of open LLMs](https://huggingface.co/blog/2023-in-llms)
- 2024 原文(GitHub):[yearly_dives/2024-evals-thoughts-from-iclr.md](https://github.com/huggingface/evaluation-guidebook/blob/main/yearly_dives/2024-evals-thoughts-from-iclr.md)
- 2024 原文(博客首发):[Let's talk about LLM evaluation](https://huggingface.co/blog/clefourrier/llm-evaluation)
- 2025 原文(GitHub):[yearly_dives/2025-evaluations-for-useful-models.md](https://github.com/huggingface/evaluation-guidebook/blob/main/yearly_dives/2025-evaluations-for-useful-models.md)
- 指南仓库:[huggingface/evaluation-guidebook](https://github.com/huggingface/evaluation-guidebook)
相关:[[00-Overview]] · [[07-Resources]]
@@ -0,0 +1,167 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- resources
status: active
created: 2026-08-21
source: https://github.com/huggingface/evaluation-guidebook
---
# Resources —— 评测与 NLP 推荐资源清单
> 本页整理自 HuggingFace Evaluation Guidebook 的 `resources/about-evaluation.md` 与 `resources/about-NLP.md`,把原文链接按主题分类成清单。每项列出:链接、作者/来源、一句话中文说明(说明依据原文自带的描述翻译;原文只有链接的条目,只做最小的事实性描述,不额外发挥)。⚠️ 链接是否仍然有效、内容是否更新,以访问时为准。
## 快速导航
- [评测方法论与综述](#评测方法论与综述)
- [LLM-as-a-Judge(模型作评委)](#llm-as-a-judge模型作评委)
- [播客](#播客)
- [评测软件与工具](#评测软件与工具)
- [排行榜](#排行榜)
- [评测教程](#评测教程)
- [NLP 基础](#nlp-基础)
- [LLM 架构理解](#llm-架构理解)
- [提示词(Prompting](#提示词prompting)
## 资源总览
> 全表共 21 项资源,按类别一览(详细清单见下文各节)。
| 类别 | 资源 | 作者/来源 | 一句话说明 |
|---|---|---|---|
| 评测方法论 | Foundational Model Development Cheatsheet | AllenAI | 基础模型开发速查表 |
| 评测方法论 | Challenges in LM Evaluation | Hailey Schoelkopf & Lintang SutawikaICML 2024 Tutorial | 自动评测挑战综述演示 |
| 评测方法论 | Lessons from the trenches on Reproducible Evaluation of LMs | EleutherAI | 可复现 LM 评测的经验论文 |
| LLM-as-a-Judge | LLM Evaluators | Eugene Yan | LLM 作评测器的总结 |
| LLM-as-a-Judge | LLM as a Judge | Cameron R. Wolfe | "LLM 作评委"方法综述 |
| LLM-as-a-Judge | LLM & VLM-as-a-Judge | DylanDigital Garden | LLM/VLM 作评委经验 |
| 播客 | Benchmarks 101 | Latent Space | 自动基准历史与问题 |
| 播客 | Benchmarks 201 | Latent Space | 何时用哪种评测方法 + Leaderboard 讨论 |
| 工具 | `lm_eval`the Harness | Eleuther | 稳定可复现的 LLM 评测引擎 |
| 工具 | `lighteval` | Hugging Face | 轻量评测套件,聚焦定制与新基准 |
| 排行榜 | Open LLM Leaderboard | Hugging Face | 开源 LLM 静态基准中立评测 |
| 排行榜 | HELM | StanfordCRFM | 静态基准 + 胜率排名 |
| 排行榜 | Chatbot Arena | LMSys | 众包人工评测约 150 个 LLM |
| 排行榜 | LLM Performance Leaderboard | Artificial Analysis | LLM API 性能与定价对比 |
| 排行榜 | HF 评测/排行榜博客 | Hugging Face | 官方相关博客汇总 |
| 排行榜 | Leaderboard Finder | Hugging Face | 按用例找最相关排行榜 |
| 教程 | Argilla domain-eval tutorial | Argilla | 自定义领域评测端到端教程 |
| NLP 基础 | NLP for You | Lena Voita | 最好的在线 NLP 课程之一 |
| NLP 基础 | The NLP Course | Hugging Face | 完整 NLP 课程,含代码 |
| 架构 | Annotated/Illustrated 系列 + MoE 指南 | Bastings / Rush / Alammar / Grootendorst | Transformer、S4、MoE 图解与代码讲解 |
| 提示词 | Show me the prompt | Hamel Husain | 提示词相关博客 |
---
## 评测方法论与综述
> 来自 `about-evaluation.md` 的 Knowledge 部分:自动评测的两篇高质量综述 + 一篇入门速查。
- [Foundational Model Development Cheatsheet](https://fmcheatsheet.org/) —— 作者/来源:AllenAI
- 基础模型开发速查表(原文归在 "Knowledge > General",评测以外的整体入门参考)。
- [Challenges in LM Evaluation](https://github.com/lm-evaluation-challenges/lm-evaluation-challenges.github.io/blob/main/%5BMain%5D%20ICML%20Tutorial%202024%20-%20Challenges%20in%20LM%20Evaluation.pdf) —— 作者/来源:Hailey Schoelkopf 与 Lintang SutawikaICML 2024 Tutorial 演示文稿)
- 关于**自动评测挑战**的综述演示(原文明确推荐的两份自动评测综述之一)。
- [Lessons from the trenches on Reproducible Evaluation of LMs](https://arxiv.org/abs/2405.14782) —— 作者/来源:EleutherAIarXiv 论文)
- 关于**可复现 LM 评测**的"战壕经验"论文(原文明确推荐的另一份自动评测综述)。
## LLM-as-a-Judge(模型作评委)
> 来自 `about-evaluation.md` 的 "LLM as a judge" 部分,原文归类为"总结与经验反馈"Cool summaries and experience feedbacks)。
- [LLM Evaluators](https://eugeneyan.com/writing/llm-evaluators/) —— 作者/来源:Eugene Yan(博客)
- 关于用 LLM 做评测器的总结文章。
- [LLM as a Judge](https://cameronrwolfe.substack.com/p/llm-as-a-judge) —— 作者/来源:Cameron R. WolfeSubstack 博客)
- 关于"LLM 作评委"这一评测方法的综述文章。
- [LLM & VLM-as-a-Judge](https://dylandigitalgarden.com/2024/July/July+31%2C+2024+LLM+%26+VLM-as-a-Judge) —— 作者/来源:DylanDigital Garden 博客,2024-07-31
- 关于 LLM/VLM 作评委的经验与思考。
## 播客
> 来自 `about-evaluation.md` 的 Knowledge 部分,原文推荐的两个 Latent Space 播客。
- [Benchmarks 101](https://www.latent.space/p/benchmarks-101) —— 作者/来源:Latent Space(播客)
- 关于**自动基准的历史与已知问题**(自动评测入门)。
- [Benchmarks 201](https://www.latent.space/p/benchmarks-201) —— 作者/来源:Latent Space(播客)
- 关于**何时该用哪种评测方法**,并含与原作者(Clémentine Fourrier,指南作者)关于 Leaderboard 的讨论。
## 评测软件与工具
> 来自 `about-evaluation.md` 的 Software > Evaluation suites 部分。
- [`lm_eval`lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness/) —— 作者/来源:EleutherGitHub 仓库)
- 常称 "the Harness"LLM 评测的"主力引擎":以稳定、可复现的方式在众多 benchmark 上评测来自多家供应商的任意 LLM。
- [`lighteval`](https://github.com/huggingface/lighteval) —— 作者/来源:Hugging Face(GitHub 仓库;指南作者也是作者之一,原文有利益声明)
- 轻量级 LLM 评测套件,聚焦定制化与较新的 benchmark。
## 排行榜
> 来自 `about-evaluation.md` 的 Software > Leaderboards 部分。
- [Open LLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard) —— 作者/来源:Hugging Face
- 对开源 LLM 在参考静态基准上的中立第三方评测,开放提交。
- [HELM](https://crfm.stanford.edu/helm/lite/latest/#/leaderboard) —— 作者/来源:StanfordCRFM
- 也在静态基准上评测模型,但用 **win-rates(胜率)** 排名。
- [Chatbot Arena](https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard) —— 作者/来源:LMSys
- 用众包人工评测(竞技场投票)为约 150 个 LLM 打分排名的 Arena。
- [LLM Performance Leaderboard](https://huggingface.co/spaces/ArtificialAnalysis/LLM-Performance-Leaderboard) —— 作者/来源:Artificial Analysis
- 主流 LLM API 提供商的性能基准与定价;想用 API 而非本地跑模型时看它。
- [Hugging Face 评测与排行榜相关博客](https://huggingface.co/blog?tag=leaderboard) —— 作者/来源:Hugging Face(博客标签页)
- 官方关于评测与排行榜的全部博客文章汇总。
- [Leaderboard Finder](https://huggingface.co/spaces/leaderboards/LeaderboardFinder) —— 作者/来源:Hugging FaceSpace
- 帮你找到与你的用例最相关的排行榜。
## 评测教程
> 来自 `about-evaluation.md` 的 Software > Tutorials 部分。
- [End-to-end custom domain evaluation tutorial](https://github.com/argilla-io/argilla-cookbook/tree/main/domain-eval) —— 作者/来源:ArgillaGitHub Cookbook
- 端到端教程:为自己的领域构建自定义评测任务,使用合成数据 + 人工评测,配套工具 [Argilla](https://github.com/argilla-io/argilla/) 与 [distilabel](https://github.com/argilla-io/distilabel)。
## NLP 基础
> 来自 `about-NLP.md` 的 General knowledge 部分。
- [NLP for You](https://lena-voita.github.io/nlp_course.html) —— 作者/来源:Lena Voita
- 公认最好的在线 NLP 课程之一,循序渐进、阅读体验好(原文原话:step by step and nice to read)。
- [The NLP Course](https://huggingface.co/learn/nlp-course/chapter1/1) —— 作者/来源:Hugging Face
- 极其完整的 NLP 课程,含大量代码片段,可快速上手。
## LLM 架构理解
> 来自 `about-NLP.md` 的 Understanding LLM architectures 部分。
- [The Annotated Encoder Decoder](https://bastings.github.io/annotated_encoder_decoder/) —— 作者/来源:Jasmijn Bastings
- 逐步讲解 2015 年 Bahdanau 论文(带注意力的 RNN encoder-decoder),每一步都有代码解释。
- [The Annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html) —— 作者/来源:Sasha Rush
- 逐步讲解 2016 年 Vaswani 的 Transformer 论文,每一步都有代码解释。
- [The Illustrated Transformer](https://jalammar.github.io/illustrated-transformer/) —— 作者/来源:Jay Alammar
- 上一条的很好补充:用可视化(而非代码)讲 Transformer。
- [The Annotated S4](https://srush.github.io/annotated-s4/) —— 作者/来源:Sasha Rush
- 逐步讲解 Structured State Space for Sequence ModelingS4)论文,每一步都有代码;想知道什么是状态空间模型就看它。
- [A Visual Guide to MoE](https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-mixture-of-experts) —— 作者/来源:Maarten Grootendorst
- 混合专家(Mixture of Experts)可视化指南,大量直观图示;原文建议先读上面的 Transformer 指南再看本篇。
## 提示词(Prompting
> 来自 `about-NLP.md` 的 Prompting 部分。
- [Show me the prompt](https://hamel.dev/blog/posts/prompt/) —— 作者/来源:Hamel Husain(博客)
- 关于提示词(prompt)的博客文章(原文仅给出链接,未附说明)。
---
## 使用建议
- **按需取用**:先看[评测方法论与综述](#评测方法论与综述)建立框架,再按场景选择[软件工具](#评测软件与工具)与[排行榜](#排行榜)。
- **补 NLP 基础**:需要 LLM/Transformer 基础时看 [NLP 基础](#nlp-基础) 与 [LLM 架构理解](#llm-架构理解)。
- **动手实践**:想自己搭评测流程,从 [评测教程](#评测教程) 的 Argilla 领域评测教程开始,工具用 `lm_eval``lighteval`
- **持续跟踪**:排行榜与评测工具迭代很快,重要决定前请回到原文链接核对最新状态。
## 原文位置
- `resources/about-evaluation.md`[GitHub blob](https://github.com/huggingface/evaluation-guidebook/blob/main/resources/about-evaluation.md)
- `resources/about-NLP.md`[GitHub blob](https://github.com/huggingface/evaluation-guidebook/blob/main/resources/about-NLP.md)
相关:[[00-Overview]] · [[06-Yearly-Dives]]
@@ -0,0 +1,602 @@
---
type: reference
tags:
- llm-evaluation
- evaluation-guidebook
- 2025-edition
status: active
created: 2026-08-21
source: https://huggingface.co/spaces/OpenEvals/evaluation-guidebook
---
# HuggingFace LLM Evaluation Guidebook2025 新版)提炼
> 本笔记提炼 **HuggingFace Evaluation Guidebook 新版(2025-12)独有/更新的内容**,与 [[00-Overview]][[07-Resources]] 整理自旧 GitHub 仓库的 8 篇笔记互补。旧版内容(judge 大章节、tokenization、yearly dives、resources 清单等)不在本文重复,重点写新版**新增与重构**的部分。
## 开篇:新版是什么
**The LLM Evaluation Guidebook2025 版)** 是旧 GitHub 仓库(huggingface/evaluation-guidebook)停更后的**全新"科研论文形态"交互式 Space**
- **地址**<https://huggingface.co/spaces/OpenEvals/evaluation-guidebook>
- **作者**Clémentine Fourrier、Thibaud Frere、Guilherme Penedo、Thomas Wolf(均为 Hugging Face
- **副标题***"All the things you could want to know about LLM evaluation based on our experience scoring 15000 models over 3 years"*
- **发布时间**2025-12-03
- **许可证**CC BY 4.0
- **形态**:一个 Astro 构建的交互式论文页面(`app/src/content/article.mdx` 组装各章节 MDX,渲染结构见下),带可交互图表(d3 嵌入)、折叠块(Accordion)、侧注(Sidenote),而非旧版的线性 Git 文档
一句话关系:**同一团队对同一知识核心的现代化重组与再创作**——保留 tokenization/inference、自动评测设计、人类标注、troubleshooting 的骨架,但删除/压缩了旧版膨胀的部分(judge 独立大章节、troubleshooting 两个专项页、yearly dives、resources),把篇幅让给 2025 评测全景、统计有效性与成本、结构化生成、以及全新加入的 **FineWeb 预训练评测选型方法论**
### 新版实际渲染结构(重要)
新版仓库含 **8 个章节 MDX 文件**,但页面正文(`article.mdx`)**按以下顺序渲染**,与文件布局不完全一一对应:
```
article.mdx(组装层,含正文过渡小节、saturation/contamination 定义、Conclusion
├─ Intro ← chapters/intro.mdx
├─ ModelInferenceAndEvaluation ← chapters/general-knowledge/model-inference-and-evaluation.mdx
├─ (正文小节 "Evaluating with existing benchmarks"
│ ├─ EvalsIn20252025 评测全景) ← chapters/general-knowledge/2025-evaluations-for-useful-models.mdx
│ ├─ TroubleshootingReproducibility ← chapters/troubleshooting/troubleshooting-reproducibility.mdx
│ └─ PickingYourEvalFineWeb 选型) ← chapters/general-knowledge/picking-your-evaluation.mdx
├─ DesigningAutomaticEvaluation ← chapters/automated-benchmarks/designing-your-automatic-evaluation.mdx
│ └─ 其中通过 import 嵌入 UsingHumanAnnotators(在 "Using existing data" 与
│ "Creating a dataset synthetically" 之间)← chapters/human-evaluation/using-human-annotators.mdx
└─ Conclusion(结论)
```
8 个章节文件一览(`app/src/content/chapters/...`):
| 章节文件 | 路径 | 渲染方式 | 核心内容 |
|---|---|---|---|
| intro | `intro.mdx` | article.mdx 直接 import | 评测视角(model builder vs model user)、智能定义的困境 |
| model-inference-and-evaluation | `general-knowledge/model-inference-and-evaluation.mdx` | article.mdx 直接 import | tokenization 与 inference 基础、MCF/CF/FG、calibration |
| 2025-evaluations-for-useful-models | `general-knowledge/2025-evaluations-for-useful-models.mdx` | article.mdx 直接 import | 2025 分能力评测全景与推荐 |
| troubleshooting-reproducibility | `troubleshooting/troubleshooting-reproducibility.mdx` | article.mdx 直接 import | 评测复现排错(与旧版基本一致) |
| picking-your-evaluation | `general-knowledge/picking-your-evaluation.mdx` | article.mdx 直接 import | **FineWeb 预训练评测选型方法论(全新)** |
| designing-your-automatic-evaluation | `automated-benchmarks/designing-your-automatic-evaluation.mdx` | article.mdx 直接 import | 设计自动评测:数据、prompt、指标、functional scorers、judge、structured generation |
| using-human-annotators | `human-evaluation/using-human-annotators.mdx` | **通过 `<UsingHumanAnnotators />` 嵌入 designing**(位于 "Using existing data" 与 "Creating a dataset synthetically" 之间),是设计流程的一部分 | 人类标注实践(与旧版基本一致) |
| some-evaluation-datasets | `automated-benchmarks/some-evaluation-datasets.mdx` | **存在于仓库,但页面正文不直接渲染**——2025 章节仅以一句 "you'll find a big list of older interesting benchmarks [here](...)" 链接到**旧 GitHub 仓库**的数据集清单 | 数学类 + 通用类数据集大表(作为仓库资产留存) |
要点:新版**没有**独立的 "Tips and Tricks" 章节、**没有** judge 独立大章节(judge 内容压缩进 designing 的 "With judge models" 小节)、**没有** yearly dives 2023/2024、**没有** resources 清单。
---
## §1 新版与旧版的差异总览
| 旧版章节(GitHub 仓库) | 新版去向 / 变化 |
|---|---|
| 00 Overview | 无独立 overview 章节;由 `intro.mdx` 承担"为什么要评测"的角色 |
| Automatic benchmarks / Basicstokenization & inference、评测类型) | 精简合并为 `model-inference-and-evaluation.mdx`**新增** MCF/CF/FG 三种任务形式与 log-likelihood 计算细节、calibration 讨论 |
| Automatic benchmarks / Designing your automatic evaluation | 重写强化为 `designing-your-automatic-evaluation.mdx`:**新增**数据创建流程检查清单、样本检查、指标详解(BLEU/ROUGE/TER/BLEURT)、normalization 与 Math-Verify 表格、sampling 指标(pass@k/maj@n/cot@n/avg@n)、functional scorers/IFEval、污染管理、constraining outputsprompt/few-shot/**structured generation**)、统计有效性与成本 |
| Automatic benchmarks / Some evaluation datasets | 保留为 `some-evaluation-datasets.mdx`(数学大表 + 旧数据集表 + 可复现想法),**但仅作为仓库资产,页面正文不再渲染**——2025 章节只给出指向旧 GitHub 版清单的链接 |
| Human evaluation / Using human annotators | `using-human-annotators.mdx`(基本一致),**通过 import 嵌入 designing 章节内部**"Using existing data" 与 "Creating a dataset synthetically" 之间);Human evaluation basics 并入 designing 的 "With humans" 小节 |
| **LLM-as-a-judge(独立大章节)** | **删减合并**进 designing 的 "With judge models" 小节:judge-LLM 选择、prompt 设计、评估 evaluator、reward models 仍在但大幅压缩 |
| Troubleshooting / Troubleshooting reproducibility | `troubleshooting-reproducibility.mdx`(保留,基本一致) |
| Troubleshooting / Troubleshooting inference | **删除** |
| Troubleshooting / Troubleshooting math parsing | **删除独立页**Math-Verify 内容移入 designing 的 Normalization 小节 |
| General knowledge / tokenization 独立页 | **精简**并入 `model-inference-and-evaluation.mdx` |
| Yearly dives2023/2024 深度文章) | **删除**;以 `2025-evaluations-for-useful-models.mdx`2025 评测全景)取代 |
| Resources 推荐清单 | **删除**独立章节(2025 章节末尾保留了旧数据集清单的链接) |
| ——(新增) | `picking-your-evaluation.mdx`:**FineWeb 团队预训练评测选型方法论(全新内容)** |
| ——(新增) | `intro.mdx`model builder vs model user 视角、智能定义的困境 |
---
## §2 评测视角与目的(来自 intro)
新版开篇不再直接讲技术,而是先回答"**为什么评测**"——因为**你是谁、你在做什么,决定了你需要哪些评测**。核心问题:
> How can one know if a model is *good*?(如何知道一个模型是"好"的?)
### model builder(模型构建者):Am I building a strong model?
- 目标:构建在任务集上表现良好的强模型。**基础模型**(从零训练)关心通用任务上的多种能力;**post-training**(针对特定用例微调)更关心该用例上的表现。
- 通过 **ablations**(消融实验)检验设计选择(数据混合、架构、超参)是否"搞坏了"预期表现或有所提升——因此 **评测任务的选择对 ablation 至关重要**,它决定了你在构建模型时优化什么。
- 除 ablation 外,还要在训练中评测中间 checkpoint(确保在逐步学习、没有因 spike 等回退),最后评测最终 checkpoint 以宣称 SOTA。
- 需求:**快、高信号(strong signal)、便宜**,才能快速迭代;也可基于小模型表现用 **scaling laws** 预测大模型。
- 重要限定(原文强调):对于任何复杂能力,目前不能说"这个模型在这项上最好",而只能说——
> "this model is the best **on these samples** for **this specific task** that we hope are a **good proxy for this capability**, without any guarantee"
### model user(模型使用者):Which model is the best for my use case?
- 目标:直接选用他人训练好的模型,或找最好的基础模型做进一步训练。
- 常见领域(math/code/knowledge)已有多个 leaderboard 可对比排名;通常**只需测试头部候选**(如果它们都不行,更差的模型大概率也不行)。
- 可自己重跑现有 benchmark 获取更细的成功/失败分析。
- 引用 ImageNet 时代 benchmark 设计教训论文(arxiv 2404.02112)的核心观点:**分数容易不稳定,唯一稳健的评测方式是排名(rankings),尤其是找到一批能给出一致且稳定排名的评测组**。作者认为这是非常值得采用的思路——LLM 在自动 benchmark 上的分数对 prompt 的微小变化极其敏感(见 [evaluation-structured-outputs blog](https://huggingface.co/blog/evaluation-structured-outputs)),人类评测也不更一致,而**排名**在稳健评测方法下更稳定。
### 智能(intelligence)定义的困境
- 目前**极度缺乏**对"什么是模型智能、如何评测智能"的良好定义与框架(有人尝试过:Chollet 2019 [arxiv 1911.01547](https://arxiv.org/abs/1911.01547)、Hendrycks 等人 [agidefinition.ai](https://www.agidefinition.ai/paper.pdf))。
- 这不是 ML 独有的难题:人类/动物研究中同样难定义,IQ/EQ 等指标备受争议。
- 以"智能"为目标是**有问题的**,三个理由:
1. **移动目标(moving target**:每当我们达到一个曾被当作人类专属的能力,这个词就被重新定义。
2. **框架不迁移**:现有框架以人类(或动物)为出发点设计,底层行为与假设与模型不同,很可能不适用于模型。
3. **本质无用**:应该瞄准让模型擅长**具体、定义良好、有目的、有用**的任务(如会计、报告),而不是为了 AGI 而 AGI。
---
## §3 2025 评测全景(2025-evaluations-for-useful-models + article.mdx
> 新版先给出两个贯穿全篇的核心概念(来自 article.mdx 的 "Evaluating with existing benchmarks" 引言):
>
> - **Saturation(饱和)**:模型在 benchmark 上的表现超过人类表现。更广义地指数据集失去模型间区分力、不再有用——"如果所有模型分数都接近最高分,它就不再是 discriminative benchmark,就像拿学前班题目考高中生:成功说明不了什么(虽然失败能说明问题)"。
> - **Contamination(污染)**:评测数据集进了模型训练集,导致分数被人为抬高、不反映真实任务表现——"就像考学生他事先知道答案的题目"。
另外注意 2025 章节开头的**方法论警告**:单独评测具体能力通常很有价值(训练中或比较 base/pretrained 模型时),但**如果你用下面的评测去选择和验证训练方法,最终模型上再报告这些评测就是有偏的**(你已经把训练方法朝它们调优了)。
### 推理与常识(Reasoning and commonsense
- 多为 BERT/embedding 时代的"历史数据集",当时有挑战性(常为对抗式构建),现在 **1) 太简单 2) 被污染/饱和**,只适合 ablation 或预训练评测。大数据集还常含错误/低质量问题(当年靠 Amazon Mechanical Turk 快速低成本扩展,如今由 LLM 生成评测题替代)。
- 代表数据集:
- **ARC**2018[arxiv 1803.05457](https://arxiv.org/abs/1803.05457),注意与 ARC-AGI 区分):小学科学 MCQA,选项当年对词共现系统对抗式选取;高质量 `challenge` 子集至今仍用于预训练。
- **WinoGrande**2019[arxiv 1907.10641](https://arxiv.org/abs/1907.10641)):众包代词消解/填空,对抗式配对。两者对模型都难到 2022–2023 年。
- **HellaSwag**2019[arxiv 1905.07830](https://arxiv.org/abs/1905.07830)):从 ActivityNet 字幕/WikiHow 教程选正确下一句,多需物理常识 grounding。
- **CommonsenseQA**2018[arxiv 1811.00937](https://arxiv.org/abs/1811.00937)):基于 ConceptNet 的常识 MCQA。
- **PIQA**2019[arxiv 1911.11641](https://arxiv.org/abs/1911.11641)):物理常识,Instructables 例子 + 语义扰动对抗选项。
- **OpenBookQA**2018[arxiv 1809.02789](https://arxiv.org/abs/1809.02789)):提供"开卷"事实,仍需潜在常识。
- 较新的亮点:**Zebra Logic**[arxiv 2502.01100](https://arxiv.org/abs/2502.01100))用逻辑谜题测推理,方法允许**无限生成谜题 → 污染极少**。
### 知识(Knowledge
- **MMLU**2020[arxiv 2009.03300](https://arxiv.org/abs/2009.03300))是知识评测主力,已饱和/污染;深查发现多项问题:**引用缺失文档的不完整问题、错误 ground truth、歧义问题、主题明显的美国中心主义**。
- 后续清理/扩展:**MMLU-Redux**2024[arxiv 2406.04127](https://arxiv.org/abs/2406.04127))、**MMLU-Pro**2024[arxiv 2406.01574](https://arxiv.org/abs/2406.01574),**当前社区主要替代**)、**Global-MMLU**2024[arxiv 2412.03304](https://arxiv.org/abs/2412.03304),翻译+文化偏差标注)。主要用于预训练评测与 ablation。
- Post-training 用更难的:**GPQA**2023[arxiv 2311.12022](https://arxiv.org/abs/2311.12022)):生物/化学/物理博士级定制题,本领域 PhD 才能答对;最常用 `diamond` 子集,但自 2023 发布以来也开始污染。
- **Humanity's Last Exam / HLE**2024[agi.safe.ai](https://agi.safe.ai/)):2.5K 各领域专家众包题,多为私有,需复杂知识与推理,尚未被攻破。问题:**无法快速打分 → 大家用 LLM judge 评估答案而非对照 ground truth → 野外结果不可比**。
- 作者的判断:纯 latent knowledge 评测会逐步退出,两个理由:
1. **对人类不可读**:题目越来越复杂,非专家几乎无法理解每题分数的含义(也无法确认数据集本身没错误)。
2. **从 closed book 走向 open book**:模型接上工具/联网后,latent knowledge 评测日益变成 web search / retrieval 评测(类比法国教育:高中闭卷,大学默认可查资料,考的是"给你自由获取信息的能力下你怎么推理")。
### 数学(Math
- 参考基准 **GSM8K**2021[arxiv 2110.14168](https://arxiv.org/abs/2110.14168),小学应用题)与 **MATH**2021[arxiv 2103.03874](https://arxiv.org/abs/2103.03874),奥赛题聚合)近年已饱和/污染。
- 衍生:**GSM1K**2024[arxiv 2405.00332](https://arxiv.org/abs/2405.00332),1K 新题测哪些模型在 GSM8K 上被污染)、**GSM-Plus**[arxiv 2402.19255](https://arxiv.org/pdf/2402.19255),对抗改写:干扰项、数值变体等)、**GSM-Symbolic**2024[arxiv 2410.05229](https://arxiv.org/abs/2410.05229),模板化可无限再生成防污染)。
- 社区当前聚焦:
- **MATH-500**MATH 的代表性子集,防过拟合)与 MATH-Hard(最难的 500 题)
- **AIME 24/25**(美国高中奥赛,逐年换题等难度 → 可对比"发布时分数 vs 前一年分数"来测污染)
- **Math-Arena**[matharena.ai](https://matharena.ai/)):持续更新的竞赛/奥赛聚合(含 AIME25 等)
- 高端:**FrontierMath**2024[arxiv 2411.04872](https://arxiv.org/abs/2411.04872),数学家专写、理论上私有——但 OpenAI 似乎接触过部分数据);HLE 也含"现做"的复杂数学题(含定理证明)。
- 作者建议:**预训练评测用 AIME25 + MATH-500post-training 用 Math-Arena**。
### 代码(Code
- 历史(2021):**MBPP**1K 众包 Python 入门题)、**APPS**10K 面试/分享网站题)、**HumanEval**Codex 论文,专门"为发布而写"的题,还带沙箱防恶意代码执行;**pass@k 估算器就是它提出的**,此前 pass@k 是"n 次中成功次数 ≥ k"的字面检查)。
- 加强版:**EvalPlus**2023)的 HumanEval+/MBPP+(更多测试用例、修 bug、加输入);**EvoEval**2024[arxiv 2403.19114](https://arxiv.org/abs/2403.19114),语义改写 + 难度标注)。
- 最终模型用更难/未污染的:
- **LiveCodeBench**2024[arxiv 2403.07974](https://arxiv.org/abs/2403.07974)):记录题目日期,比较模型在**训练截止前后**题目上的表现——优秀的污染免疫基准。
- **AiderBench**[leaderboards](https://aider.chat/docs/leaderboards/)2024 底上线):来自 Exercism,专门测**代码编辑与重构**。
- Post-training 需要更整体:**RepoBench**2023,仓库级自动补全,Python/Java);**SWE-Bench**2024,用 GitHub 真实 issue 测逻辑理解、跨文件编辑、长上下文推理);**CodeClash**2025,代码版 arena,模型代码互相对战迭代)。
- 作者建议(2025 年 11 月):关注 **LiveCodeBench、AiderBench、SWE-Bench verified**,并读 [METR 报告](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/) 了解代码助手的真实效用。
### 长上下文(Long context
- 3 年前模型上下文上限约 2048 tokens,现在普遍 128K+。
- **NIAHNeedle in a Haystack**2023):长无关文本中埋一条事实让其检索。2023 年模型很差,**2025 年接近解决**。
- 复杂扩展:**RULER**2024[arxiv 2404.06654](https://arxiv.org/abs/2404.06654),多跳追踪、词频变化、NIAH 的 QA 变体,也接近解决);**Michelangelo / MRCR**2024[arxiv 2409.12640](https://arxiv.org/pdf/2409.12640v2),多轮共指,后扩为 [OpenAI MRCR](https://huggingface.co/datasets/openai/mrcr) 2025);**InfinityBench**2024[arxiv 2402.13718](https://arxiv.org/abs/2402.13718),中英双语 100K token 合成任务,仍有信号)。
- **HELMET**2024[arxiv 2410.02694](https://arxiv.org/abs/2410.02694)):聚合 RAG/QANatural Questions、TriviaQA、PopQA、HotpotQA、NarrativeQA、InfinityBench)、recallRULER、JSONKV)、带引用生成(ALCE 子集)、摘要、重排(MS MARCO)、ICLTREC、NLU、Banking77、CLINIC150)等的大数据集。⚠️ **聚合基准有重复计量风险**:不要同时对模型跑 HELMET 和 InfinityBench 再聚合结果(等于同一评测跑两遍)。2025 年仍足够区分模型。
- 作者偏爱:**Novel Challenge**2024[arxiv 2406.16264](https://arxiv.org/abs/2406.16264),近一年出版小说的 1K 条真假 claims,须读完整本书);**Kalamang 翻译集**[arxiv 2309.16575](https://arxiv.org/abs/2309.16575),读语法书从英语翻到 Kalamang——只有约 200 个使用者的极低资源语言)。
### 指令遵循(Instruction Following
- **IFEval**2023[arxiv 2311.07911](https://arxiv.org/abs/2311.07911))与扩展 **IFBench**2025[arxiv 2507.02833](https://arxiv.org/abs/2507.02833))。作者评价 IFEval 是近几年**最聪明的评测思路之一**:要求模型遵循格式化指令(关键词、标点、字数/句数、markdown/html 文件格式等),每个条件可用一个特定解析测试校验 → **少数无需 model judge 就能拿到严格分数的 free-form generative evaluation**。属 functional correctness / unit-test 型评测,且**极易再生成/扩展以抗污染**。
- 反向评测:**CoCoNot**2024[arxiv 2407.12043](https://www.arxiv.org/pdf/2407.12043))测模型对不完整/不可答/不安全请求的**不服从**non-compliance)。
### 工具调用(Tool-calling
- **TauBench**2024[arxiv 2406.12045](https://arxiv.org/pdf/2406.12045)):零售/航空域模拟数据库,模型动作正确更新数据库 + 恰当回答用户才算对;用户由 **LLM 模拟** → 昂贵且易错,但贴近真实用例。
- **ToolBench**2023[arxiv 2305.16504](https://arxiv.org/pdf/2305.16504)):调用真实/模拟 API 解 100 个测试用例;因 API 不稳定被 **StableToolBench**2025[arxiv 2403.07714](https://arxiv.org/pdf/2403.07714))用通用 VirtualAPIServer 修复,但改依赖 LLM judge(引入新偏见层)。
- **BFCL**2025[OpenReview](https://openreview.net/pdf?id=2GmDdhBdDk),历史有几年):当前版本 4 个子集——single turn、众包真实函数调用、多轮对话、agenticweb search/memory/SQL);用 **AST + 执行响应 + 状态匹配**(最终状态是否预期)判定正确性;v3 测工具调用、v4 测 web/search。
- MCP 时代基准(多依赖 model judge + 真实 API → 网络故障/可复现性问题):
- **MCPBench**2025[arxiv 2508.20453](https://arxiv.org/abs/2508.20453)):连真实 MCP serverWikipedia、HF、Reddit、Steam、arxiv…),规则检查工具调用有效性 + LLM judge 查回答。
- **MCP-Universe**2025[arxiv 2508.14704](https://arxiv.org/abs/2508.14704)):11 个真实主题 MCP server**多个严格 evaluator**(格式 1 个 + 回答正确性 2 个),动态任务用基于执行的评估框架自动抓最新正确值对比——作者认为比 LLM judge 干净得多。
- **LiveMCPBench**2025[arxiv 2508.01780](https://arxiv.org/abs/2508.01780)):本地可部署的 MCP server 集合,测模型在工具列表中**辨别选对工具**的能力;最强模型已达 80% → **接近饱和**
- 附:Anthropic 的 [Writing tools for agents](https://www.anthropic.com/engineering/writing-tools-for-agents) 文档。
### 助手任务(Assistant tasks
> 作者认为 **assistant tasks 是下一代评测的主要方向之一**:解决它们需要多能力组合(长上下文 + 推理 + 工具调用…),又针对具体领域给出真实场景表现;对大众更可理解;若设计得够通用,不检查用了哪个具体工具,只检查最终结果是否正确(复杂任务允许多条成功路径)。
- **真实信息检索****GAIA**2023[arxiv 2311.12983](https://arxiv.org/abs/2311.12983))开启现代 agentic 评测,3 个难度级别(L1 已饱和,L3 仍难);因报告口径不一(公开验证集 vs LLM judge 打私有测试集)数值分散。**BrowseComp**2025[OpenAI PDF](https://cdn.openai.com/pdf/5e10f4ab-d6f7-442e-9508-59515c65e35d/browsecomp.pdf))反向构造题目(从结果反推问题,不保证答案唯一),目前可能更难。**GDPval**2025[arxiv 2510.04374](https://arxiv.org/abs/2510.04374))覆盖美国 GDP 前几大行业 44 个职业,用 model judges 对比人机表现。**GAIA2**[blog](https://huggingface.co/blog/gaia2))用 mock 手机环境测事件链 + 工具调用;**时间敏感与故意噪声子集(模拟失败 API 调用)最难**search/execution 对 SOTA 已极容易。
- **科学助手****SciCode**2024[arxiv 2407.13168](https://arxiv.org/abs/2407.13168))写科学代码解 STEM 实际问题,发布时模型 <5%**PaperBench**2025[arxiv 2504.01848](https://arxiv.org/abs/2504.01848))给 ICML 论文重建代码库(作者贡献 8K 个独立评分任务,rubric trees 加权),用 LLM judge**DSBench**2025[arxiv 2409.07703](https://arxiv.org/pdf/2409.07703)Kaggle/ModelOff 多模态数据分析;**DABStep**2025[arxiv 2506.23719](https://arxiv.org/abs/2506.23719))用**此前私有的真实运营数据分析工作负载**(因此未污染),每道题有 ground truth → 评测无偏且不算太贵,作者很推荐。
### 游戏化评测(Game-based
- 优点:测**对变化环境的适应性**(多数 assistant tasks 是静态的)、需要长上下文推理、**大众能理解**;缺点:不 grounded in real life,未必反映真实有用用例。
- **ARC-AGI**[arcprize.org](https://arcprize.org/arc-agi)):2019 版网格谜题(找序列下一项,不给显式规则),类似逻辑 IQ 测试,2024 年几乎被解;**ARC-AGI3**(2025 进行中)含全新游戏(探索、复杂规划、记忆管理),目前最佳解是暴力搜索。类似规则外推基准:**Baba is AI**2024[arxiv 2407.13729](https://arxiv.org/abs/2407.13729))。
- 单人冒险/RPG**TextQuests**2025[blog](https://huggingface.co/blog/textquests))、**Pokemon**2024Claude/Gemini 在 Twitch 直播玩)——需要超长程规划、长上下文记忆管理、推理与回溯;生存游戏 **Crafter**2021[arxiv 2109.06780](https://arxiv.org/abs/2109.06780),Minecraft 灵感)同能力;多人游戏环境已集成进 **Balrog**2024[arxiv 2411.13543](https://arxiv.org/pdf/2411.13543))。
- 对抗/欺骗类:**Poker**2025[arxiv 2501.08328](https://arxiv.org/html/2501.08328v1))、**Town of Salem**2025)、**Werewolf**[arxiv 2407.13943](https://arxiv.org/abs/2407.13943))、**Among Us**——测逻辑、推理与**欺骗能力**(例:Claude Opus 4 当不了吸血鬼这类欺骗角色,但当农民(非欺骗角色)表现好);合作游戏 **Hanabi**[arxiv 2510.04980](https://arxiv.org/abs/2510.04980))测受限环境下的适应与沟通。
- 妙处:**单一无歧义的 pass/fail 指标——LLM 赢没赢**。作者建议:能力看 TextQuests,安全看 Town of Salem。
### 预测未来(Forecasters
- 一类**无法污染**的新任务:预测未发生事件。但不确定是否足够 discriminative,且可能强化 LLM 的"老虎机式成功"感(答对是因为题太简单/公式化,还是真会预测?答错是因为不可预测还是模型差?)。
- **FutureBench**[blog](https://huggingface.co/blog/futurebench)):浏览 + LLM 按周生成问题 + 博彩市场用户预测;目前模型对人类下注的题仅略好于随机,对模型生成题 3/4 正确(后者更简单)。
- **FutureX**[arxiv 2508.11987](https://arxiv.org/abs/2508.11987)):预测市场/政府网站/排名网站/实时数据平台 + 模板生成("STOCK 何时到 POINT?"),每天 500 题并过滤无关题。
- **Arbitrage**[arxiv 2412.18544](https://arxiv.org/pdf/2412.18544)):类似但事件要 2028 年才揭晓。
- 金钱交易类 arenaAlpha Arena、Trading Agents):因成本每个模型只跑一次 → **没有统计显著性**
### 2025 年 11 月的评测推荐(Recommendations 原文)
- **核心能力(model builders**:训练用老能力评测;post-training 用 AIME26(等它发布)、**GPQA、IFEval、SWE-Bench**、选一个长上下文评测(如 HELMET),目标工具使用就加 **TauBench 或 BFCL**
- **核心能力(inference 对比模型)****IFBench、HLE、MathArena、AiderBench、LiveCodeBench、MCP-Universe**。
- **长 horizon 任务(真实世界表现)****GAIA2、DABStep、SciCode**,或你用例的领域评测。
- **游戏(鲁棒性与适应性)**:ARC-AGI3(出了再用)、TextQuests、Town of Salem(关注安全)或任何超越 Poker/Chess/Go 的游戏。
- 趋势总结:评测正从"孤立技能"转向"**能力编排(capability orchestration**"——系统能可靠组合核心能力 + 工具使用来真正解决问题。作者希望行业**更重视 functional testing 而非 model judges**,以及更可理解的数据集与任务。
---
## §4 三种任务形式:MCF / CF / FG(与 log-likelihood 细节)
新版在 inference 基础章节重点讲清了"同一道选择题可以有不同的**任务表述(task formulation**"以及 log-likelihood 的计算细节——这是旧版没有展开的部分。
### log-likelihood 评测的计算步骤
给定 prompt 与一个(或多个)答案,问"我的模型生成该答案的概率是多少":
1. 把**每个 choice 与 prompt 拼接**,传入 LLM,得到每个 token 的 logits
2. **只保留 choice tokens 对应的 logits**,做 log softmax 得到 log-probabilities(范围 `[-inf, 0]` 而非 `[0, 1]`);
3. **对所有 token 的 log 概率求和**,得到该 choice 的整体 log probability
4. 最后按 **choice 长度做归一化**(防止偏向短答案)。
由此可做:多选中的首选答案;测试某个 choice 概率是否 > 0.5**研究模型 calibration**well calibrated model = 正确答案拥有最高概率)。calibration 参考:[Anthropic 论文](https://arxiv.org/abs/2207.05221)(是什么、如何检测、如何训练校准良好)+ [校准的局限](https://arxiv.org/abs/2311.14648)。
### 三种常见任务表述(formulation
| 表述 | 含义 | 示例 |
|---|---|---|
| **MCF**Multiple Choice Format | 选项**显式呈现在 prompt 中**,前缀 A/B/C/D,比较各选项 index 的 likelihood | MMLU |
| **CF**Cloze Formulation | **不提供选项**,直接比较不同 choice 的 likelihood | 填空式 |
| **FG**Freeform Generation | 对给定 prompt 的 **greedy generation** 计算 accuracy | 自由生成 |
### 如何选择(对评测的影响)
- **FG 需要大量潜在知识(latent knowledge),短预训练 ablation 期间对模型通常太难** → 小规模 ablation 一般用多选表述(MCF 或 CF)。
- 但研究显示**模型在训练早期学不会 MCF**(需要大量训练才获得该技能),CF 提供更好的早期信号 → **建议:小 ablation 用 CF;主 runmain run)加入 MCF**(模型过了某个阈值、SNR 足够后,MCF 给出更好的中期信号)。
- 关键数字:**MMLU MCF 何时脱离随机表现取决于模型规模与数据量**——7B transformer 约 **500B tokens**OLMES 论文);1.7B 模型约 **6T tokens**SmolLM2 实验)。
- 对于 post-trained 模型,**FG 是主要表述**(要测模型能否真正生成有用回答)。
- CF 类 sequence-likelihood 评测算 accuracy 时:**正确答案 log probability 最高(按字符/token 数归一化)的题占比**——归一化防止偏向短答案。
### tokenization 对 log-likelihood 比较的破坏(细节)
- 一般希望**把 context 与 choices 一起 tokenize**(产生对模型自然/可能的一串 token)。
- 但有些 tokenizer(如 Llama 的,[lm-eval issue](https://github.com/EleutherAI/lm-evaluation-harness/pull/531#issuecomment-1595586257))不满足 `tok(context + choice) = tok(context) + tok(choice)`(会增删空格)→ context tokens 会"渗入"choice,破坏比较。
- 具体例子:若 `C1C2` 恰好是一个 BPE tokencontext=`C1`、choices=`C2`/`C3`:一起 tokenize 比较的是 `C1C2`1 tokenvs `C1+C3`(2 tokens),**即使按长度归一化也没可比性**;分开 tokenize 比较 `C1+C2` vs `C1+C3`,但 `C1+C2` 这种组合在编码器数据里罕见,模型的 log-probability 会被压低。
- 解决方案(两害相权):**分别 tokenize context 与 choice,去掉可能附加的 start/end 特殊 token 后再拼接比较**。
### generative 评测
- 自回归生成:传 prompt → 取最可能下一 token → 重复直到结束条件(最大长度/停止 token)→ 全部生成 token 即答案。
- 与 reference 比较打分:exact match、BLEU 等简单指标,或 model judges。
- 补充参考:⭐ [Open LLM Leaderboard MMLU blog](https://huggingface.co/blog/open-llm-leaderboard-mmlu)(多选 log-likelihood 与 generative 的差异及分数含义);⭐ [EleutherAI 对上述推理方法的数学形式化](https://arxiv.org/abs/2405.14782v2)(直接看 Appendix)。
---
## §5 设计自动评测(designing-your-automatic-evaluation + article.mdx
新版把"设计自动评测"重写为完整方法论。**与旧版不同的章节结构**(原文实际顺序):
```
Dataset(使用现有数据/聚合 → [嵌入 UsingHumanAnnotators] → 合成创建 → 污染管理)
→ Choosing a prompt(选 prompt
→ Choosing an inference method(选推理方法)
→ Scoring(打分:log-prob 简单 / generative 复杂)
→ Evaluation's main challenge: Scoring free form text(自由文本评分)
├─ AutomaticallyMetrics → Normalization → Sampling → Functional scorers
├─ With humans
├─ With judge modelsjudge 获取 → prompt 设计 → 评估 evaluator → tips → reward models
└─ Constraining model outputsprompt → few-shot/ICL → structured generation
→ The forgotten children of evaluation(统计有效性 / 成本效率)
```
其中 **"With judge models" 小节与旧版 03-LLM-as-a-Judge 笔记内容重叠**judge-LLM 获取、prompt 设计、评估 evaluator、偏差缓解、reward models),但新版表述更精炼,本笔记只简要提及差异点,重点写旧版没有的内容(数据检查清单、指标详解、normalization/Math-Verify、sampling、functional scorers、constraining outputs、统计有效性与成本)。
### 5.1 数据集:使用现有 / 聚合 / 合成
**使用现有数据与聚合**
- 可直接用现有数据集改 prompt 或指标;也可**聚合多个数据集**建针对性评测套件(例:"Measuring AGI"论文作者的做法)。
- 聚合时注意:**冗余数据**(大多数数学数据集是同一批初始题的改写/聚合);**来源平衡**(避免单数据集主导偏斜,这也决定按样本还是按子集聚合分数);**格式与难度兼容**(尤其别混用需要 sampling 与不需要的样本)。例子:MMLU、Big-Bench、HELM。
- EpochAI 2025 研究:如何在单一框架下[最佳聚合 benchmark](https://epoch.ai/blog/a-rosetta-stone-for-ai-benchmarks),让聚合数据集整体更难、更不易饱和。
**规则式(rule-based)合成——近乎无限的样本 + 免污染**
- 程序化生成几乎无限的新测试用例,算法可控难度、自动验证。典型任务:数学/逻辑/代码。
- 例子:**NPHardEval**(图问题、自动验证、月度刷新防过拟合)、**DyVal**、**MuSR**neuro-symbolic 生成 1000 字谋杀谜题等复杂推理实例)、**BabiQA**(实体按动作序列模拟)、**ZebraLogic**SAT solver 生成解并迭代最小化线索)、**IFEval**(500+ 条含可程序校验约束的 prompt)、**GSM-Symbolic**(模板生成多样数学题)。
**用模型合成数据**
- 流程:从若干 **seed documents**(内部文档或 Wikipedia/Stack Overflow 等高质量公开源,作为 ground truth)出发 → **chunk 成自包含语义单元** → 用 **frontier model + 精心设计的 prompt** 从数据出题(最好要求模型给出题目所依据的 source)→ 用**另一模型家族**的模型当 judge 做自动验证 → **每个步骤都要人工检查数据**("无论多诱人,别全自动")。
- 进阶:可用 seed prompts 当示例,让外部模型替你写"出题 prompt"。
### 5.2 数据创建流程检查清单(来自 article.mdx "Understanding what's in there"
无论怎么选数据集,**最重要的一步永远是看数据**(看数据本身、看模型生成、看分数),这是确认评测是否贴合用例的唯一方式。检查三点:
1. **谁创建了样本?** 理想排序:专家 > 付费标注者 > 众包 > 合成 > MTurk。看 data card 的标注者人口统计(理解语言多样性/潜在文化偏差)。
2. **样本是否被其他标注者或作者复核过?** 看 inter-annotator agreement 是否高、数据集是否被作者整体检查过。对低薪标注者(尤其非目标语言母语的 MTurk)尤其重要,否则会有 typo/语法错误/无意义答案。
3. **标注者是否拿到清晰的数据创建指南?** 即数据集是否一致。
### 5.3 样本检查(Samples inspection
- **取 50 个随机样本人工检查——要自己看,不要"让 LLM 帮你找异常"**。
- 内容质量:prompt 是否清晰无歧义?答案是否正确(例:**TriviaQA 每个问题有多个 gold answersaliases 字段),有时互相冲突**)?信息是否缺失(例:**MMLU 一些题引用不存在的图表**)?
- 与任务的相关性:这些题是不是你想让 LLM 回答的那类题?是否贴合用例?
- 一致性(尤其要用于 few-shot 或聚合统计时):多选题各样本选项数是否一致?prompt 前后空格是否一致?带环境的话弄清环境会调用什么。
- **样本数量**:确认足以统计显著——**自动 benchmark 通常最少 100 个样本**。
- 指标类型也在此检查:automatic / functional / model judge 三类,成本、可复现性、偏差类型不同;**最好(也最稀有)的是 functional 或 rule-based verifier 类指标**。⚠️ code eval 里要小心**过简单的 pass/fail 单元测试**:现在的 LLM 很会"改写全局变量作弊"(尤其 Python 这种作用域可被搞乱的语言)。
### 5.4 选择 prompt 与推理方法
**Prompt 组成**:可选 task prompt(介绍任务与输出格式)+ 附加 contextsource、image 等)+ problem prompt(你问模型的问题)+ 多选时的选项。注意:
- **语义等价的 prompt 微小改动可让结果差很多**,某些 prompt 格式会偏袒/亏待特定模型。
- 缓解:多次运行不同 prompt 变体(贵);或**一次运行中把多种 prompt 格式分配给等价难度的不同样本**。
- 用 few-shot 示例帮模型跟格式,加 connector words 有帮助。
**推理方法选择**
- **log-probabilities**(适合 MCQA、测知识/消歧):
- Pros:所有模型都能"看到"正确答案;提供 confidence/calibration 代理;快(尤其只预测一个 tokenA/B/C/D 或 Yes/No);小模型也能拿到任务信号。
- Cons:**略微高估小模型**(若自由生成它们可能生成选项之外的内容);部分模型有 **choice order bias**[arxiv 2309.03882](https://arxiv.org/abs/2309.03882))——除非预算允许打乱样本顺序重跑 n 次取显著性。
- 加速技巧:若选项都是单 token,**只跑一次 context 的 forward pass**,直接在完整词表概率分布上取各选项的 logprob,省掉 n 次拼接推理。
- **generative**(测流畅度、推理、是否真能作答;**评测 reasoning 模型最相关**):
- Pros:与真实兴趣一致;**唯一能同时评测开源与闭源模型的方式**。
- Cons:更难打分;比 log-likelihood 贵(尤其带 sampling 或 reasoning 模型)。
### 5.5 指标详解(打分自由文本)
log-probability 打分容易:accuracy 变体(最可能 choice 是否最佳),**务必按序列长度归一化**(字符/token/PMI),也可看 perplexity/recall/f1。generative 打分是难点:
**基于匹配(match-based)的指标**
- **exact match**:最简单最不灵活,无部分 credit(错一个词 = 全错)。注意 "exact match" 是伞形称呼,常包含 fuzzy 变体:带 normalization、只比 token 子集(如 prefix)。
- **BLEU**:与参考译文做 n-gram 重叠;仍广泛使用但有**偏向短译文的长度偏差**、句级与人类相关性差(语义等价但写法不同就不行)。
- **ROUGE**:类似但更偏向 recall 的 n-gram 重叠。
- **TER**translation error rate):从预测到参考所需的编辑次数(类似编辑距离)。
- **BLEURT**:基于 BERT 的学习表示,用 WMT 人类判断训练,语义理解强于 n-gram,但需下载模型 + task-specific fine-tuning 才最优。
- 变体/扩展:CorpusBLEU、GLEU、MAUVE、METEOR 等。
**聚合方式**
- binary 分数:**precision**FP 代价高时关键)、**recall**(漏报代价高时关键)、**F1**(平衡二者,适合不平衡数据)、**MCC**Matthews Correlation Coefficient,考虑全部混淆矩阵元素,适合不平衡数据)。
- continuous 分数:**MSE**(重罚大误差、但对 outlier 权重高)、**MAE**(更均衡);若假设线性回归(如研究 calibration):**R²**、**Pearson**(线性关系、假设正态)、**Spearman**(单调关系、无正态假设)。
- **别只测平均**:对某些领域(医疗、面向公众的 chatbot、毒性)需要评估**最差表现**。
**自动评测的优缺点**:一致可复现(同一模型跑 10 次同结果,可做公平排名)、规模成本低、可理解;缺点:复杂任务上用途有限——自动指标需要**完美、唯一、无歧义的 reference/gold**,复杂能力很难分解成单一简单答案。
### 5.6 Normalization 与 Math-Verify
- Normalization = 把字符串改写成适配特定参考格式(不惩罚多余空格/标点/大小写);对数学评测等**需要从长预测中提取方程并对比参考**的任务至关重要。
- 原文件列出了用 SymPy 朴素提取 MATH 数据集答案时的典型问题,以及 **Math-Verify**(专用数学解析器)如何解决:
| 示例 | 问题 | ✅ Math-Verify | 🛑 朴素方法 |
|---|---|---|---|
| "Therefore, the perimeter of one of these triangles is $14 + 7\sqrt{2}$ inches, expressed in simplest radical form." | 提取失败 | `7\*sqrt(2) + 14` | None |
| "Therefore, the sum of the infinite geometric series is \(\frac{7}{9}\)." | 提取失败 | `7/9` | None |
| "The final answer is $2x + 4y + z - 19 = 0$. I hope it is correct." | 参数方程部分解析 | `Eq(2\*x + 4\*y + z - 19, 0)` | `0` |
| \(23\) | latex 边界导致提取失败 | `23` | None |
| \((- \infty, -14) \cup (-3, \infty)\). | 区间提取失败 | `Union(Interval.open(-oo, -14), Interval.open(-3, oo))` | None |
| 100\% | 无效符号提取失败 | `1` | None |
| 1/3 == 0.333333 | 不支持舍入 | `True` | `False` |
| sqrt(1/2)\*7 == sqrt(0.5)\*7 | 不支持数值求值 | `True` | `False` |
- 详见 [Math-Verify leaderboard blog](https://huggingface.co/blog/math_verify_leaderboard)。⚠️ Normalization 设计不好**很容易不公平**([open-llm-leaderboard-drop](https://huggingface.co/blog/open-llm-leaderboard-drop)),但总体上在任务层面仍提供信号。
- 对 CoT / reasoning 生成,**需先从输出中移除 reasoning trace**(不是最终答案的一部分)再取答案。
### 5.7 Sampling 指标(pass@k / maj@n / cot@n / avg@n
多次采样聚合比单次 greedy 更稳健,对复杂推理任务尤其重要:
- **pass@k over n**:n 个生成样本中至少有 k 个通过。两种实现:朴素 `pass@k = (c >= k)`**无偏估计量** `pass@k = 1 - C(n-c,k)/C(n,k)`c = n 个样本中正确的数量)。
- **maj@nmajority voting**:采 n 次取最频繁答案;能滤掉杂散输出,当模型**正确推理路径比错误更一致**时效果好;常用于数学与推理。
- **cot@n**:采 n 条推理链评估;可与 majority voting 或 pass@k 组合(采 n 条链、提取最终答案、取多数或设阈值)。
- **avg@n**:n 个样本分数平均;比"取最好"或"取最常见"更稳定的性能估计。
使用要点:
- **永远报告全部采样参数**temperature、top-p、k),它们显著影响结果。
- **训练评测/ablations:❌ 一般避免 sampling 指标**(贵、加方差),用固定 seed 的 greedy decoding。
- **post-training 评测:✅ 需要**sampling 能暴露 greedy 看不到的能力(推理/数学/代码类复杂任务)。
- **推理时:✅ 有用**——估计多次采样能提升多少,尤其研究 test-time compute 能把小模型推到多远。
- ⚠️ 采样 k 次使评测成本 ×k,贵模型/大数据集上累积很快。
### 5.8 Functional scorers(函数式打分 / 功能测试)
- 核心思想:**不做模糊字符串匹配,而是检查输出是否满足可验证的约束**。更灵活、允许通过规则生成"无限"更新测试用例(降低过拟合)。
- **IFEval / IFBench 是最佳范例**:不问"文本是否匹配参考答案",而问"文本是否满足指令中的格式约束",例如:
- *"Include exactly 3 bullet points"* → 校验输出恰好 3 个 bullet
- *"Capitalize only the first sentence"* → 解析并检查大小写模式
- *"Use the word 'algorithm' at least twice"* → 数词频
- *"Your response must be in JSON format with keys 'answer' and 'reasoning'"* → 校验 JSON 结构
- 每个约束配一个 rule-based verifier → 评测更无歧义、可解释、快、且**远便宜于 model judges**。
- 灵感来自代码评测(单元测试是标准做法)。关键挑战:**找到能用程序验证的文本属性**,对指令遵循效果很好,扩展到其他文本属性需要创造力。
### 5.9 人类评测(简述,与旧版一致)
- **Vibe-checks**:社区个人在未公开 prompt 上的手动"体感"评测,多为轶事证据、易受确认偏差影响;但[是自家用例的好起点](https://olshansky.substack.com/p/vibe-checks-are-all-you-need)。
- **Arena**:社区投票排名(如 LMSYS chatbot arena),Elo 聚合;主观性强、标注者偏好有文化差异([arxiv 2404.16019](https://arxiv.org/abs/2404.16019v1)),靠"群众智慧"规模效应平滑。
- **Systematic annotations**:付费精选标注者 + 极其具体的指南;贵、不自动、仍有人类偏差(不同身份者对毒性打分差异很大,[arxiv 2205.00501](https://arxiv.org/abs/2205.00501))。
- 扩展规模三条路:无数据集(给任务+评分指南+模型)→ 有数据集(preprompt + 输出 + 指南)→ 有数据集和分数(error annotation 复核评测方法)。
- 人类评测的已知偏差(第一印象、语气、与标注者价值观对齐等)必须考虑:**任何要求事实性的任务(代码、知识)都应叠加更稳健的评测方式**(专家、自动指标等)。详见 [[02-Human-Evaluation]]。
### 5.10 Judge models(新版压缩版,与 [[03-LLM-as-a-Judge]] 重叠)
> 本节与旧版 03 笔记内容重叠:新版把整个 judge 大章节压缩进 designing 的 "With judge models" 小节,表述更精炼、几乎没有新增论点。以下是压缩后的要点,供快速对照;完整展开见 [[03-LLM-as-a-Judge]]。
- 定义:用神经网络(或其衍生品)评估另一神经网络的输出;多数情况评文本生成。
- 两条路线:**通用高能力模型**(LLM + prompt)或**小型专用模型**(从偏好数据训练判别,如"毒性垃圾邮件过滤器")。
- **闭源模型(Claude、GPT-o)**:不可复现(API 更新随时变)、黑盒、隐私风险;优点是免本地部署。**开源模型正在追平**DeepSeek R1、gpt-oss、最新 Qwen 是竞争性替代)。
- **小型专用 judge**(数 B 参数、可本地跑):Flow-Judge-v0.13.8BPhi-3.5-mini-instruct 微调)、Prometheus13B,从零训练)、JudgeLM733B)。**自训 judge 除非 niche 领域否则不建议**;偏好数据可来自 [lmsys 竞赛](https://www.kaggle.com/competitions/lmsys-chatbot-arena) 或 Prometheus collections[从 reward model 起步优于从 instruct model](https://x.com/dk21/status/1826292289930674590)。
- **judge prompt 设计**:任务描述 → 评估标准(含详细评分系统)→ 推理步骤 → 指定输出格式(如 JSON `{"Score": ..., "Reasoning": ...}`)。参考 [MixEval](https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mix_eval/judge_prompts.pyy)/[MTBench](https://github.com/huggingface/lighteval/blob/main/src/lighteval/tasks/extended/mt_bench/judge_prompt_templates.py) 模板。**Pairwise 比较比打分与人类偏好相关性更好**([arxiv 2403.16950](https://arxiv.org/abs/2403.16950));整数刻度要给每个分数的详细解释或用 additive prompt**每个能力一个 prompt**;可用 few-shot / reference / CoT(先输出推理再打分)/ 多轮分析 / **jury(多个 judge 聚合,可用多个小模型降本)** 提升准确率。
- **评估你的 evaluator**(上线前必做):选 baseline(**约 50 个示例即可**,但必须 representative / discriminative / high quality)→ 选 metricbinary/pairwise 的 accuracy/precision/recall 易解释;score 相关性难)→ 评估并定阈值:**pairwise 对比可设 80%95% accuracyscore 相关性文献常满意于 0.8 Pearson**(也有人宣称 0.3 就算与人类标注相关良好——"ymmv")。
- **judge 偏差与缓解**internal consistencyself-consistency prompting 取多数)→;self-preference(用 jury);input perturbation blindness**先给 reasoning 再给分**、给连贯评分刻度);position-bias(随机交换答案位置、用 logprob 归一);verbosity/length-bias(考虑长度差,[arxiv 2404.04475](https://arxiv.org/abs/2404.04475));format bias(遵守模型训练 prompt 格式)。
- **LLM evaluators 的已知弱点**:整体上**不擅长识别幻觉**(尤其 partial hallucinations[arxiv 2305.11747](https://arxiv.org/abs/2305.11747)、[2303.08896](https://arxiv.org/abs/2303.08896));在摘要/忠实性上与人类标注相关性低到中等,跨任务不持续与人类一致([arxiv 2406.18403](https://arxiv.org/abs/2406.18403))。
**Reward Models(奖励模型)**
- 学人类标注预测 prompt/completion 对得分,目标是与人偏对齐;最常用 **Bradley-Terry**`p(completion b better than a) = sigmoid(score_b - score_a)`,只用 pairwise 比较训练(比收集分数容易),但**只能比较同一 prompt 内的 completion**。
- 变体:更细粒度概率版([RLHFlow pair-preference](https://huggingface.co/RLHFlow/pair-preference-model-LLaMA3-8B));**绝对分数**版 **SteerLM**[arxiv 2311.09528](https://arxiv.org/abs/2311.09528),评测易用但数据难收集——绝对分数比 pairwise 不稳定);两者皆出的 **HelpSteer2-Preference**[2410.01257](https://arxiv.org/abs/2410.01257))与 **ArmoRM**[2406.12845](https://arxiv.org/abs/2406.12845))。
- **评测用法**:绝对分数可平均成汇总;但**相对分数不要直接平均 raw reward**outlier 与 prompt 难度不同会偏置)——改用 **win rates**(对参考 completion 集合,胜率百分比)或 **win probabilities**(均值概率,更细更平滑)。
- 特性:**非常快**(小模型一次 forward pass)、**确定性**、**少 position bias**、**无需 prompt engineering**;缺点:需专用微调、分布外任务表现差、**同一 RM 既用于 RL 又用于评测会过拟合**reward hacking)。
- 资源:RewardBench Leaderboard、Nemotron 论文用法、用 win rate 跟踪训练以**检测退化并选最优 checkpoint**[arxiv 2410.11677](https://arxiv.org/abs/2410.11677v1))。
### 5.11 约束模型输出(Constraining outputs
三级递进,目的都是让输出格式可预测、简化评测:
1. **用 prompt**task prompt 里给非常具体的指令(`Provide numerical answers in digits.``Use no abbreviation.`)。不一定总有效,但对高能力模型通常够用——**GAIA 论文就是这么做的**。
2. **Few-shots / in-context learning**:提供示例隐式引导模型跟随重复的 prompt 形状。**2023 年底之前整体很好用**;此后 instruction tuning 与持续预训练里的指令数据把更新模型**偏向特定输出格式**([arxiv 2407.07890](https://arxiv.org/abs/2407.07890) 称之为 *Training on the test task*,作者称之为 *overfitting the prompt format*);**reasoning 模型因 reasoning trace 与 few-shot 配合不好**;小上下文旧模型也可能塞不下示例。
3. **Structured text generation(结构化生成)**:用 grammar 或正则约束输出路径。**`outlines` 库用有限状态机(FSM)实现**(其他方法如 guidance 的 interleaved generation 用于 JSON 等特定格式)。效果:**降低评测中的 prompt variance,结果与排名更稳定**[evaluation-structured-outputs blog](https://huggingface.co/blog/evaluation-structured-outputs))。⚠️ 但近研究([arxiv 2408.02442](https://arxiv.org/abs/2408.02442))显示**结构化生成可能降低某些任务(如推理)的表现**——把先验推离了期望的概率分布。入门:⭐ [outlines 的 FSM 讲解](https://blog.dottxt.co/coalescence.html)、[方法论文](https://arxiv.org/abs/2307.09702)。
---
## §6 FineWeb 预训练评测选型方法论(重点:全新内容)
> 来自 `picking-your-evaluation.mdx`(标题 "Picking good automatic evaluations for pretraining")。场景:**训练进行中**就想知道模型学得怎么样——这时需要的评测与"最终性能"评测性质不同:**即使模型还不好,任务也要给出好信号**。FineWeb 团队为此设计了完整方法,覆盖 9 种语言。
### 6.1 规模与多样性(185 tasks
- 对这 9 种语言**收集并实现能找到的所有任务,共 185 个**。
- 任务选择两大目标:**评测多样性** + 每个任务提供**可靠信号(reliable signal**。
- 多样性覆盖五类能力:
- **Reading comprehension (RC)**:理解给定上下文并作答
- **General knowledge (GK)**:无上下文的事实问答
- **Natural Language Understanding (NLU)**:理解输入语义
- **Common-sense reasoning (RES)**:需要具身知识(embodied knowledge)的简单推理
- **Generative tasks**:无多选题"辅助"时用目标语言生成文本
### 6.2 实验设置(代价与规模)
- 每种语言训练多个 **1.5B 参数模型**,用 **30B tokens**(取自 5 个最大的开放多语言 web 数据集的子集);同一超参与 tokenizer**0-shot、无 instruction、无 system prompt**;按固定 checkpoint 间隔评测。
- 因任务实现反复迭代,总消耗 **73,000 GPU hours** 🔥;共训练 **49 个模型**,由此定义"可靠信号"。
### 6.3 可靠信号(Reliable Signal)的四个标准
原文定义:任务提供可靠信号 = 分数**高于随机基线**、**随训练推进而上升**、**跨不同 seed 低方差**、**每个训练步给出一致的模型排序**(对同规模、同超参、同数据量的模型)。
1. **单调性(Monotonicity**:任务必须能从训练数据中学会、且学习过程可随训练逐步观察到(若随时间不提升,未来能否提升都不确定)。
- 度量:**Spearman rank correlation**steps ↔ score)——能捕捉非线性的单调提升。
- 阈值:**平均相关性 ≥ 0.5**(跨所有模型训练 run)。
2. **低噪声(Low noise**:区分"评测噪声"与"真实性能差异"。噪声来源:训练随机性(token 采样、数据打乱、初始化;[Madaan et al., 2024](https://arxiv.org/abs/2406.10229))。做法:在自家单语语料(未过滤 CommonCrawl)上**用不同 seed 再训 4 个模型**,然后:
- 每步(约每 1B tokens)算模型分数的标准差 → **per-step-std**
- 对所有 per-step-std 取平均 → **avg-std**(因用的是更"脏"数据训练的模型、方差偏高,视为全架构/数据集的上界);
- **signal-to-noise ratio (SNR) = 30B tokens 时所有 run 的分数均值 ÷ avg-std**,作为任务变异性的主指标。
- 阈值:**SNR > 20**。唯一例外:**generative 任务**(SNR 通常偏低,但保留有价值——能看出模型在无选项自由生成时表现如何;多语言场景尤其重要,有些模型任务分数很高但生成任务会突然用错语言回答!)。
- 额外要求:假设模型表现跨 seed 正态分布,benchmark-run 表现至少高于随机基线 **3 个 final-stds**(形式上 `benchmark-run performance - benchmark random baseline > 3 * final-std`),即 99.85% 的 seed 分数高于随机。
3. **非随机表现(Non-Random Performance**:很多能力训练后期才习得,**许多任务(尤其数学这类较难的)长时间停留在基线水平**——有用但不适合早期预训练评测,所以**不保留**。
- 计算:任务随机基线(多选题 = 所有样本 `sum(1/n_choices)`;生成式 = 0),任务距基线距离 = 所有模型中的最高分 − 基线。
4. **模型排序一致性(Model Ordering Consistency**:评测的最终目的是比较模型与数据集——我们希望任务在**很少 token(30B ablation)时对数据集的排序,与训练更久(300B+)后的排序一致**,即任务对预训练未来表现有预测力。严格证明不可能,但有可测的必要条件:**大规模一致的前提是小规模一致**。
- 度量:相邻两个训练步之间模型排名的**平均 Kendall's Tau**(只取 15B tokens 之后的步——之前排序噪声太大)。高值 = 排序随训练推进保持一致。
- 无严格最小值,用来**在任务之间做比较**。
**交互式图表:好/坏信号示例**(新版 Space 特有的 d3 图,直观展示四标准的判例;图表配置还揭示了实际使用的指标名,如 `acc_norm_token``acc_norm_pmi`):
| 标准 | ✅ 好例子 | ❌ 坏例子 |
|---|---|---|
| Monotonicity`acc_norm_token` | `mlmm_hellaswag_fra_cf [fr]`(法语 HellaSwag,随 tokens 平滑上升) | `mlmm_truthfulqa_ara_cf:mc1 [ar]`(阿拉伯语 TruthfulQA,无趋势) |
| SNR`acc_norm_token` | `xstory_cloze_tel_cf [te]`(泰卢固语,各 seed 紧密) | `tydiqa_tel [te]``prefix_match`,噪声大) |
| Non-Randomness | `agieval_zho_cf``acc_norm_pmi [zh]`(中文 AGIEval,明显高于随机) | 同一任务用裸 `acc [zh]`(停留在随机水平)——同一任务换个指标信号天差地别 |
| Kendall's Tau`acc_norm_token` | `xcsqa_ara_cf [ar]`(阿拉伯语,排序稳定) | `thai_exams_tha_cf [th]`(泰语考试题,排序漂移) |
> 注意 `agieval_zho_cf` 一例:**同一个任务,用 `acc_pmi` 就是非随机、用裸 `acc` 就是随机表现**——这正是 §6.4 强调"指标选择决定信号"的直观证据。
### 6.4 指标选择(Metrics
多选任务的 CF target 就是选项本身,每个选项的 token 数、字符数、无条件概率(无上下文前缀下生成该选项的概率)都不同——不归一化的话模型会偏好更少 token 的答案。考虑的 accuracy 变体:
| 指标 | 公式 |
|---|---|
| `acc` | $\underset{i}{\arg\max}\big(ln(P(a_i \mid q))\big)$ |
| `acc_char` | $\underset{i}{\arg\max}\dfrac{ln(P(a_i \mid q))}{num\_characters(a_i)}$ |
| `acc_token` | $\underset{i}{\arg\max}\dfrac{ln(P(a_i \mid q))}{num\_tokens(a_i)}$ |
| `acc_pmi` | $\underset{i}{\arg\max}ln\dfrac{P(a_i \mid q)}{P(a_i \mid u)}$,其中 $u = $ `"Answer:"` |
> 实际落地时,FineWeb 团队在 lighteval 中使用的指标名是 **`acc_norm_token`**= 上面的 `acc_token`)与 **`acc_norm_pmi`**= 上面的 `acc_pmi`)——交互图表配置里出现的就是这些名字,"norm" 指长度/概率归一化。
- `acc_pmi` 度量"给了问题上下文相比没有上下文,模型更可能选 $a_i$ 多少"——当正确选项含普遍罕见 token、模型天然不爱选它时有用。详见 [Gu et al., 2024](https://arxiv.org/abs/2406.08446)OLMES)与 [Biderman et al., 2024](https://arxiv.org/abs/2405.14782)。
- 生成式任务用:**`prefix_match`**(只要求答案前缀 exact match)与 **`f1`**(用 word tokenizer 在预测/gold 词上算 F1);两者都做轻预处理:去冠词、去标点、小写化。
- 选指标本身就是难题:**没有单一指标全面胜出**,常出现"一个指标单调性更好、另一个 SNR 更高"的两难,团队只能按其他语言的既有实现来定(并承认这种手挑未必可复制)。给出建议:
➡️ **多选任务**
- **base accuracy**:适合选项细微变化的任务(如 Yes/No/Also 的 NLI 类),此时选项常各是单 token。
- **PMI**:对"难"推理与知识任务(**AGIEVAL、MMLU**)极其有效——常是唯一高于随机的指标;但**平均而言是全场最弱指标,且计算贵 2 倍** → 只在复杂推理与知识任务用。
- **长度归一化指标(token 或 character)整体最可靠**,但最优选择取决于**语言**而非任务 → **推荐取 `max(acc_char, acc_token)`** 得到最可靠结果。注意 `acc_token` 高度依赖 tokenizer(好在 ablation 中所有模型用同一 tokenizer)。
➡️ **生成式任务**
- 选择更清晰:**除非必须 exact match(如数学),建议用 F1**——F1 噪声更小、对生成的小变化更稳健。
---
## §7 统计有效性与成本效率("The forgotten children of evaluation"
> 新版把这两件事命名为"**评测中被遗忘的孩子**",来自 designing 章节结尾——旧版没有的独立主题。
### 统计有效性(Statistical validity
- 报告评测结果时必须**在点估计(point estimate)之外附上置信区间(confidence intervals**。
- 自动指标:从分数的标准差或 **bootstrapping** 得到(相对简单)。
- model judge:近期论文([arxiv 2511.21140](https://arxiv.org/pdf/2511.21140))建议用估计器做 **bias correction**
- 人类评测:报告 **agreement**(一致性)。
- 也可用 **prompt variations** 来算:以略微不同的方式问同一问题、或对不同 prompt 格式重跑同一样本。
### 成本与效率(Cost and efficiency
作者呼吁集体开始**按模型运行成本报告评测结果**——一个要思考 10 分钟、花 10K tokens 回答 `10 + 1` 的 reasoning 模型(还可能在二进制 vs 十进制算术上跑题),比用几十 token 答 30 道题的 smol 模型低效得多。建议报告:
- **Token 消耗**:评测所用的**输出 token 总数**——估计效率的关键,直接影响 model-as-judge 评测成本;token 数直接影响货币成本并帮他人估算算力需求。**货币成本**也是效率的良好代理。
- 成本指标在**比较评测方法**时也很关键:强 LLM judge 信号可能更好,但**相对自动指标的 100x 成本**未必值当;sampling 类指标(pass@k、maj@n)成本随样本数倍增,要与其信号增益权衡。
- **时间**:模型完成评测的推理时间(含实际推理 + API rate limit 开销)——对时间敏感应用(如 GAIA2 这类 agentic 工具使用)尤其重要。
- **环境足迹**:报告运行模型的碳排放在资源有限的当下越来越重要——含**训练碳排放与推理能耗**,取决于模型大小、硬件(若已知)与生成的 token 数。**一些更小或量化模型达到非常有意思的 performance-to-consumption 比值**。(原文在此段结束。)
> 注:`2025-evaluations-for-useful-models.mdx` 在 Recommendations 一节自然收尾,无截断;`designing-your-automatic-evaluation.mdx` 在 environmental footprint 段结束——**原文到此**。
---
## §8 新版结论要点(来自 article.mdx Conclusion
> "Evaluation is both an art and a science."
作者希望读者记住五点:
1. **Think critically about what you're measuring(批判性看待你在测什么)**:评测是能力的**代理(proxy)**,benchmark 高分不保证真实世界表现;自动指标、人类 judge、model judge 各有偏差、局限与权衡。
2. **Match your evaluation to your goal(让评测匹配目标)**:训练 ablation → 快、可靠、在小模型上也有强信号的基准;最终模型选型 → 更难、未污染、测整体能力的基准;特定用例 → 建贴合你问题与数据的自定义评测。
3. **Reproducibility requires attention to detail(可复现性需要抠细节)**prompt、tokenization、normalization、模板、随机种子的微小差异就能让分数差几分;报告结果要透明交代方法;复现别人结果时,**即使你试图控制每个变量,精确复现也极其困难**。
4. **Prefer interpretable evaluation methods(优先可解释的评测方法)**:能选时,functional testing 与 rule-based verifiers 优于 model judges;能理解、能 debug 的评测给出更清晰可操作的洞察——**评测越可解释,你越能改进模型**。
5. **Evaluation is never finished(评测永无止境)**:模型变强 → benchmark 饱和;训练数据增长 → 污染更易发生;用例演进 → 新能力需要测量。**评测是一场持续的战役。**
收尾金句:
> "The models we build are only as good as our ability to measure what matters."
> (我们构建的模型,其好坏只取决于我们测量重要之事的能力。)
致谢名单(Acknowledgments):Hynek Kydlicek、Loubna Ben Allal、Sander Land、Nathan Habib 等直接或间接贡献者。
---
## 参考资料
**新版 Space(主入口)**
- 交互式页面:<https://huggingface.co/spaces/OpenEvals/evaluation-guidebook>
**各章节 raw 链接**`https://huggingface.co/spaces/OpenEvals/evaluation-guidebook/raw/main/app/src/content/...`
- 总组装(含结论、saturation/contamination 定义、数据检查清单):`article.mdx`
- Intro(评测视角、智能定义困境):`chapters/intro.mdx`
- Model inference and evaluationMCF/CF/FG、calibration):`chapters/general-knowledge/model-inference-and-evaluation.mdx`
- 2025 evaluations for useful models2025 评测全景):`chapters/general-knowledge/2025-evaluations-for-useful-models.mdx`
- Designing your automatic evaluation(设计自动评测):`chapters/automated-benchmarks/designing-your-automatic-evaluation.mdx`
- Picking good automatic evaluations for pretrainingFineWeb 方法论):`chapters/general-knowledge/picking-your-evaluation.mdx`
- Some evaluation datasets(数据集大表,**存在于仓库但页面正文不渲染**,仅被 2025 章节以链接引用):`chapters/automated-benchmarks/some-evaluation-datasets.mdx`
- Using human annotators**嵌入 designing 章节内部**,位于 "Using existing data" 与 "Creating a dataset synthetically" 之间):`chapters/human-evaluation/using-human-annotators.mdx`
- Troubleshooting reproducibility`chapters/troubleshooting/troubleshooting-reproducibility.mdx`
**本专区相关笔记**
- [[00-Overview]](旧版总览,含新版迁移说明)
- [[01-Automatic-Benchmarks]](旧版自动评测)
- [[02-Human-Evaluation]](旧版人类评测)
- [[03-LLM-as-a-Judge]](旧版 judge 大章节——新版压缩版的可对照全文)
- [[05-General-Knowledge]](旧版 tokenization/inference
- [[06-Yearly-Dives]](旧版年度深潜)
**正文出现的关键论文/资源(按章节)**
- ImageNet 时代 benchmark 设计教训:[arxiv 2404.02112](https://arxiv.org/pdf/2404.02112)
- OLMESPMI 推荐):[arxiv 2406.08446](https://arxiv.org/abs/2406.08446);推理方法数学形式化:[arxiv 2405.14782v2](https://arxiv.org/abs/2405.14782v2)
- MMLU 各实现差异(lm_eval/helm/作者原实现):[Open LLM Leaderboard MMLU blog](https://huggingface.co/blog/open-llm-leaderboard-mmlu)
- Training on the test taskprompt 格式过拟合):[arxiv 2407.07890](https://arxiv.org/abs/2407.07890)
- 结构化输出评测(prompt variance):[evaluation-structured-outputs blog](https://huggingface.co/blog/evaluation-structured-outputs)outlines[arxiv 2307.09702](https://arxiv.org/abs/2307.09702)
- Math-Verify[blog](https://huggingface.co/blog/math_verify_leaderboard)
- EpochAI benchmark 聚合(Rosetta Stone):[epoch.ai](https://epoch.ai/blog/a-rosetta-stone-for-ai-benchmarks)
- 旧数据集清单(2025 章节末尾保留链接):[GitHub evaluation-guidebook/automated-benchmarks/some-evaluation-datasets.md](https://github.com/huggingface/evaluation-guidebook/blob/main/contents/automated-benchmarks/some-evaluation-datasets.md)
@@ -63,3 +63,4 @@ created: 2026-08-21
- 职业与岗位背景:[[02_Areas/Job/llm_data_annotation_programmer_roadmap|大模型数据标注与程序员入门]](原文存于 02_Areas/Job - 职业与岗位背景:[[02_Areas/Job/llm_data_annotation_programmer_roadmap|大模型数据标注与程序员入门]](原文存于 02_Areas/Job
- 入门认知草案:[[02-Intro-Cognitive-Framework-Draft|入门认知框架(草案)]] - 入门认知草案:[[02-Intro-Cognitive-Framework-Draft|入门认知框架(草案)]]
- 路线图重构草案:[[03-Roadmap-Refactor-Outline-Draft|实战路线图重构大纲(草案)]] - 路线图重构草案:[[03-Roadmap-Refactor-Outline-Draft|实战路线图重构大纲(草案)]]
- 外部权威知识参考:[[04-Reference-Archive/evaluation-guidebook/00-Overview|HuggingFace Evaluation Guidebook 中文提炼]](自动基准 / 人工评测 / LLM-as-judge / 排错,按主题查阅)