simple-evals
openai/simple-evals加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023年前后,大模型评测领域存在一个公开的秘密——各家公司公布的基准测试成绩,往往是在精心调优的提示词下刷出来的,不同论文之间评测方法差异极大,横评几乎没有公信力。
OpenAI选择了一条更"得罪人"的路:把自己用的评测代码直接开源。
2023年,OpenAI先是开源了功能全面的 openai/evals(现1.76万星),随后又精简出一个轻量级版本——simple-evals(本项目)。这个仓库没有复杂的注册机制,没有自定义评测模板的灵活性,而是把力气花在了一件事上:把OpenAI内部跑的每一行评测逻辑,都原封不动地摊开给公众看。
用项目README里的话说:"We are open sourcing it so we can be transparent about the accuracy numbers we're publishing alongside our latest models."(我们开源它,是为了对我们随新模型发布 accuracy 数字保持透明)

simple-evals 集成了9个主流学术基准,覆盖大模型能力的各个维度:
| 基准 | 能力维度 | 说明 |
|---|---|---|
| MMLU | 多任务语言理解 | 涵盖57个学科的选择题,考察通识知识 |
| MATH | 数学推理 | 高中到竞赛级数学题,含逐步推理 |
| GPQA | 研究生级问答 | 生物学、化学、物理学等领域高难度问题 |
| DROP | 阅读理解与推理 | 需要对段落进行离散推理的阅读理解 |
| MGSM | 多语言数学 | 10种语言的数学题,考验跨语言推理 |
| HumanEval | 代码生成 | OpenAI原创的编程能力评测基准 |
| SimpleQA | 短问答事实性 | 考察模型是否诚实回答可验证问题 |
| BrowseComp | 浏览器代理能力 | 模拟多步网络搜索与信息整合 |
| HealthBench | 医疗问答质量 | 医学场景下的复杂多轮对话评测 |
评测策略上,simple-evals 坚持零样本 + 链式思考(Chain-of-Thought)。作者在README中明确批评了 few-shot 和角色扮演提示的滥用,认为这些是评估"基座模型"时代的遗留做法,在 instruction-tuned 模型时代已经不适用。
项目代码结构小巧精致,主文件不超过30KB,但设计颇为考究:
Eval 基类 ← MathEval / MMLUEval / GPQAEval / HumanEval ...
SamplerBase 基类 ← ChatCompletionSampler / ClaudeCompletionSampler ...
SamplerBase 是统一抽象层——无论底层是 OpenAI API 还是 Claude API,对外接口完全一致。只需换掉 sampler 实例,就能横向对比不同模型的同一套评测结果。
common.py 中的多语言答案提取正则是一大亮点。仓库支持超过40种语言的"答案"表达方式,从中文的"答案:"、韩文的"답변"到阿拉伯文的"الإجابة",覆盖了 MGSM 多语言评测的实际需求。
并发评测通过 ThreadPoolExecutor 实现,支持指定线程数(--n-threads,默认120)。HealthBench 系列评测支持这一并发参数,适合大规模评测场景。
以下是各代GPT模型在9个基准上的最新成绩(来源:项目README,2025年9月更新):
| 模型 | MMLU | GPQA | MATH-500 | HumanEval | MGSM | DROP | SimpleQA |
|---|---|---|---|---|---|---|---|
| o3-high | 93.3 | 83.4 | 98.1 | 88.4 | 92.0 | 89.8 | 48.6 |
| o3 | 92.9 | 82.8 | 97.8 | 87.4 | 92.3 | 80.6 | 49.4 |
| o4-mini-high | 90.3 | 81.3 | 98.2 | 99.3 | 93.5 | 78.1 | 19.3 |
| gpt-4.1 | 90.2 | 66.3 | 82.1 | 94.5 | 86.9 | 79.4 | 41.6 |
| gpt-4.5-preview | 90.8 | 69.5 | 87.1 | 88.6 | 86.9 | 83.4 | 62.5 |
| Claude 3.5 Sonnet | 88.3 | 59.4 | 71.1 | 92.0 | 91.6 | 87.1 | 28.9 |
几个关键观察:
2025年7月,官方宣布项目正式进入维护状态:不再为新模型更新评测结果,主要保留 HealthBench、BrowseComp、SimpleQA 三个基准的参考实现。这意味着:
simple-evals 最重要的贡献不是代码本身,而是背后的**"评测即透明"理念**。
在大模型军备竞赛的时代,各家厂商公布的评测成绩往往只挑对自己有利的基准和提示方式。OpenAI选择把自己跑分时用的完整提示词模板(chain-of-thought指令、多选答案格式规范)、评分正则表达式、评测数据集引用全部公开——这让独立研究者有机会复现同一套流程,从而判断其模型表现是否可信。
这种做法后来被 Anthropic(发布Claude评测结果)和 Meta(Llama模型卡中引用详细评测条件)等厂商跟进,形成了AI行业"评测透明度"的新惯例。
# 安装
pip install openai anthropic
git clone https://github.com/openai/simple-evals
cd simple-evals
# 查看可用模型
python -m simple_evals.simple_evals --list-models
# 运行评测(默认通过OpenAI API)
python -m simple_evals.simple_evals --model gpt-4o --eval mmlu
# 指定评测样例数量
python -m simple_evals.simple_evals --model gpt-4o --eval mmlu --examples 100
上手门槛:低。只需Python环境和API Key,无Docker、无GPU要求,评测结果即时输出。适合想快速了解某个模型在特定基准上表现的研究者和开发者。