大模型评估与 Benchmark 详解

“无法衡量,就无法改进。” — Peter Drucker

一、为什么评估大模型很重要?

训练一个大模型需要数千张 GPU 和数月时间,但评估一个模型可能比训练它更难

评估大模型面临三个核心挑战:

  1. 任务多样性:模型需要完成问答、摘要、翻译、代码生成、数学推理等无数任务
  2. 主观性:什么叫”好”的回答?流畅、有帮助、无偏见,每个人的标准不同
  3. 数据污染:很多 Benchmark 的测试数据可能已经出现在模型的训练集中

没有科学的评估体系,我们就像蒙着眼睛调参,不知道模型到底好不好。

二、Benchmark 的基本概念

2.1 什么是 Benchmark?

Benchmark(基准测试)是一套标准化的测试任务和评估指标,用于衡量模型在不同能力上的表现。它让所有模型在同一个尺子下比较。

1
2
3
4
Benchmark 组成:
├── 测试数据集(Test Set)
├── 评价指标(Metrics)
└── 排行榜(Leaderboard)

2.2 开卷考试 vs 闭卷考试

  • 闭卷(Benchmark-locked):模型看不到测试题目,必须凭预训练和微调获得的知识作答
  • 开卷(In-context Learning):允许模型在 prompt 中接收上下文信息、RAG 检索内容等
类型 特点 代表
闭卷 考察模型内部知识 MMLU, GSM8K, HumanEval
开卷 考察信息检索+理解能力 RAG 场景下的问答

三、主流 Benchmark 详解

3.1 MMLU(Massive Multitask Language Understanding)

地位:大模型能力的”标尺”,几乎所有 GPT-4 级别的模型都会公布 MMLU 分数。

测试内容:57 个学科的选择题,从基础数学到专业医学、法律、伦理,涵盖文理工商医。

1
2
3
题目示例(高中物理):
"一根长为 L 的导线在磁场 B 中以速度 v 移动,产生的电动势是?"
A: BLv B: BL/v C: vL/B D: B/Lv

评分标准:准确率(%),越高越好。

GPT-4 之前各模型 MMLU 分数对比:

模型 MMLU 分数 时间
GPT-3 (175B) 43.9% 2020
PaLM-540B 69.3% 2022
GPT-4 ~86.4% 2023
Claude 3 Opus ~88.7% 2024
Gemini 1.5 Pro ~87.8% 2024

为什么 MMLU 重要? 它测试的是跨领域泛化能力——模型能否将知识从训练数据泛化到从未见过的专业问题。低于 60% 的模型通常被认为”不具备实用价值”。

3.2 GSM8K(Grade School Math 8K)

测试内容:8,500 道小学数学应用题,考察模型的多步推理能力

1
2
3
4
5
6
7
# 示例题目
"小明有 25 元,他买了 3 支铅笔,每支 4 元。
他还剩多少钱?"

# 解题需要多步推理
第一步:3 × 4 = 12(元) → 买铅笔花了 12
第二步:25 - 12 = 13(元)→ 剩余 13

为什么重要:数学推理是检验模型”真正理解”还是”背答案”的关键试金石。小学数学看似简单,但需要精确的多步逻辑推演。

典型分数

  • GPT-3: ~5%
  • GPT-3.5: ~42%
  • GPT-4: ~68%
  • GPT-4 Turbo / Claude 3: ~90%+

3.3 HumanEval(代码生成)

测试内容:164 道编程题,每道题包含函数签名、文档字符串和单元测试,模型需要生成能通过测试的代码。

1
2
3
4
5
6
7
8
9
10
# 示例任务
def has_close_elements(numbers: List[float], threshold: float) -> bool:
"""
检查列表中是否有任意两个元素相差小于 threshold。
>>> has_close_elements([1.0, 2.0, 3.0], 0.5)
False
>>> has_close_elements([1.0, 2.8, 5.0, 6.0], 0.3)
True
"""
# 模型需要补全这个函数

Pass@1 指标:生成一个答案,10 次有几次通过测试?GPT-4 约 90%+,GPT-3 约 0%。

3.4 HellaSwag(常识推理)

测试内容:给出一个场景描述和四个选项,模型需要选出最合理的下文。

1
2
3
4
5
6
7
8
9
{
"context": "A woman sits at a piano. She ",
"options": [
"puts her fingers on the keys and begins to play",
"watches TV in the living room",
"turns on the stove and starts cooking",
"opens a book and reads aloud"
]
}

这个任务对人类来说简单(常识),但对模型来说是难题——它需要理解物理世界的基本规律。

3.5 BIG-Bench Hard(BBH)

BBH 是 BIG-Bench 的困难子集,包含 23 道需要多步推理的任务,是目前最具挑战性的综合 Benchmark 之一。

典型任务

  • 导航推理:给出一系列方向指令,计算最终位置
  • 符号操作:按规则对字母序列进行变换
  • 常识问答:需要外部知识的问题

3.6 MT-Bench(多轮对话)

不同于上面的单轮测试,MT-Bench 测试多轮对话能力——模型能否在多轮交互中保持上下文连贯。

1
2
3
4
第一轮:用户问技术问题
第二轮:用户追问/澄清
第三轮:用户转换话题
第四轮:用户要求总结

评判方式:用另一个 LLM(如 GPT-4)做评委,给每轮回答打 1-10 分。

四、评估方法对比

方法 优点 缺点 适用场景
人工评估 准确反映人类偏好 成本高、速度慢 最终验收、安全关键场景
规则匹配 客观、快速 无法评估语义 数学题、代码测试
LLM 评委 可规模化、成本低 可能有偏见 开放性问答、摘要
对抗测试 发现模型漏洞 需专业团队 红队测试、安全评估

五、LLM 评委(LLM-as-a-Judge)

5.1 什么是 LLM 评委?

用一个大模型评价另一个模型的输出。最常用的是 GPT-4 评 Claude-3,或反过来。

Prompt 模板:

1
2
3
4
5
6
7
8
9
10
请作为一位专业的评审员,评估以下回答的质量。
评估标准:
1. 准确性(0-10):回答是否正确?
2. 完整性(0-10):是否完整回答了问题?
3. 清晰度(0-10):表达是否清晰易懂?

问题:{question}
回答:{answer}

请给出每个维度的分数和总体评语。

5.2 LLM 评委的局限性

  • 立场偏见:GPT-4 可能更喜欢类似自己风格的回答
  • 长度偏见:LLM 评委倾向于给更长的回答更高分
  • 顺序偏见:评委可能受到回答顺序的影响

缓解方法

  • 让两个候选答案匿名比较(blind evaluation)
  • 使用多个评委取平均
  • 指定明确的评分维度

六、构建自己的评估集

6.1 为什么需要自定义评估?

通用 Benchmark 无法覆盖你的垂直场景——如果你做医疗问答,通用数学题做得好不代表医疗问题能答对。

6.2 构建流程

1
2
3
4
5
Step 1:收集典型用例(50-100 个)
Step 2:人工标注"理想答案"
Step 3:用 LLM 评委批量评估
Step 4:分析低分案例,优化 prompt 或 fine-tune
Step 5:持续迭代,更新评估集

6.3 评估自己的 RAG 系统

1
2
3
4
5
6
7
8
9
10
11
12
13
def evaluate_rag_system(question: str, ground_truth: str, 
retrieved_docs: list, generated_answer: str) -> dict:
"""评估 RAG 系统"""
# 1. 文档召回率:相关文档是否被召回?
recall = len([d for d in retrieved_docs if is_relevant(d, question)]) / len(retrieved_docs)

# 2. 答案准确率:回答是否包含正确答案?
answer_accuracy = evaluate_with_llm_judge(ground_truth, generated_answer)

# 3. 幻觉检测:回答是否有文档未支持的内容?
hallucination = detect_hallucination(generated_answer, retrieved_docs)

return {"recall": recall, "accuracy": answer_accuracy, "hallucination": hallucination}

七、常见陷阱

7.1 数据污染(Data Contamination)

如果模型的训练数据包含了测试集的内容,模型就是在”作弊”。

检测方法

  • 检查 Benchmark 题目是否出现在公开训练数据中
  • 使用”变体测试”——将题目改写后重新测试,观察分数是否显著下降

7.2 Overfitting to Benchmark

模型可能在 Benchmark 上表现很好,但在真实任务上很差。这被称为”对 Benchmark 的过拟合”。

缓解方法:保留一个”held-out”评估集,永远不公开发布,防止泄露。

7.3 Cherry-Picking

只公布对自己有利的 Benchmark 结果,隐瞒不利的结果。这是商业宣传中常见的做法,需要警惕。

八、主流模型评估结果一览

模型 MMLU GSM8K HumanEval BBH
GPT-4 86.4% 68.0% 90.1% 83.1%
Claude 3 Opus 88.7% 91.0% 84.9% 86.4%
Gemini 1.5 Pro 87.8% 94.4% 84.1% 85.2%
LLaMA-3-70B 82.0% 83.6% 81.7%
GPT-3.5 70.0% 42.0% 48.1% 67.6%

总结

大模型评估是一个系统性工程:

  1. 选对 Benchmark:MMLU 是”及格线”,GSM8K 测试推理,HumanEval 测试代码
  2. 多维度评估:准确率只是基础,还要评估安全性、一致性、幻觉率
  3. LLM 评委 + 人工审核:规模化用 LLM 评委,最终用人工兜底
  4. 构建垂直评估集:通用 Benchmark 之外,必须有业务场景的专属评估

下一篇文章我们将深入探讨大模型最敏感的话题——安全与对齐,以及让 ChatGPT 变得”会聊天”的核心技术:RLHF 和 DPO。


相关文章: