MMLU基准测试
Massive Multitask Language Understanding
概述
MMLU是目前最广泛使用的大语言模型评估基准之一,由UC Berkeley等机构于2021年提出。 测试覆盖57个学科,从基础数学到专业法律,全面评估模型的知识广度和深度。
核心特点:57个学科、15,908道题、多选题形式、知识广度评估。
学科覆盖
STEM学科
数学、物理、化学、生物学、计算机科学、工程学等
人文社科
历史、哲学、心理学、政治学、社会学、经济学等
专业技能
法律、医学、商业、会计、专业认证考试等
测试格式
# MMLU题目示例
Question: What is the derivative of x²?
A. x
B. 2x
C. x²
D. 2x²
Answer: B
所有题目都是四选一的多选题,模型需要选择最正确的答案。
评估方式
Zero-shot评估
不提供示例,直接让模型回答问题:
- 更接近真实使用场景
- 评估模型的泛化能力
- 避免示例偏见
Few-shot评估
提供5个示例,引导模型理解任务格式:
- 标准化评估协议
- 减少格式理解误差
- 更公平的对比
模型表现
| 模型 | 5-shot | 发布时间 |
|---|---|---|
| GPT-4o | 88.7% | 2024.05 |
| Claude 3.5 Sonnet | 88.3% | 2024.06 |
| Gemini 1.5 Pro | 85.9% | 2024.02 |
| Claude 3 Opus | 86.4% | 2024.03 |
| GPT-4 | 86.4% | 2023.03 |
| Llama 3 70B | 82.0% | 2024.04 |
使用方法
# 使用lm-eval工具评估
pip install lm-eval
# 评估模型
lm_eval --model hf \
--model_args pretrained=meta-llama/Llama-2-7b-hf \
--tasks mmlu \
--batch_size 8
# 或使用Hugging Face datasets
from datasets import load_dataset
dataset = load_dataset("cais/mmlu", "all")
for example in dataset["test"]:
question = example["question"]
choices = example["choices"]
answer = example["answer"]
# 评估模型...局限性
- 数据污染:部分题目可能出现在训练数据中
- 多选题限制:不能评估生成能力
- 英语中心:主要测试英语知识
- 静态数据:无法反映最新知识
- 表面知识:可能只测试记忆而非理解
变体与扩展
- MMLU-Pro:更困难版本,增加推理要求
- MMLU-redux:清洗错误标注的数据集
- CMMLU:中文版本的MMLU
- MMLU-STEM:专注STEM学科
参考资料
- Measuring Massive Multitask Language Understanding (Hendrycks et al., 2021)
- MMLU Dataset on Hugging Face
- lm-evaluation-harness GitHub
----