深入解读 OpenBench:一站式语言模型评测基础设施
OpenBench 是一款面向研究者和开发者的开源评测工具,旨在为大规模语言模型(LLM)提供统一、可复现的基准测试流程。无论你使用哪家模型提供商,都能通过 OpenBench 快速评估模型在知识、推理、编程和数学等多种维度上的表现。
一、是什么让 OpenBench 与众不同?
-
多套评测
-
覆盖全面:内置 20+ 主流评测,包括 MMLU、GPQA、HumanEval、SimpleQA、AIME、HMMT 等。 -
跨学科:从基础常识到竞赛数学,应有尽有。
-
-
提供商无关
-
即插即用:支持 Groq、OpenAI、Anthropic、Cohere、Google、AWS Bedrock、Azure、Ollama 本地模型等 15+ 供应商。 -
灵活切换:只需更改 --model
参数或环境变量,即可在不同平台间切换。
-
-
简单易用的命令行界面
-
bench list
:列出所有可用评测和模型。 -
bench describe
:查看某个评测的详细信息。 -
bench eval
:运行评测并生成日志。 -
bench view
:可视化展示历史评测结果。
-
-
高度可扩展
-
基于业界认可的 Inspect AI 框架,任何人都能轻松添加新的评测、指标或打分逻辑。
-
二、核心功能一览
功能类别 | 示例评测 |
---|---|
知识 (Knowledge) | MMLU(57 科目)、GPQA(研究生水平)、SuperGPQA(285 学科)、OpenBookQA |
编程 (Coding) | HumanEval(164 道编程题) |
数学 (Math) | AIME 2023-2025、HMMT Feb 2023-2025、BRUMO 2025 |
推理 (Reasoning) | SimpleQA(事实性)、MuSR(多步推理) |
三、快速上手:60 秒评测体验
前提准备:已安装 uv(安装指南)
# 1. 创建虚拟环境并安装 OpenBench(约 30s)
uv venv
source .venv/bin/activate
uv pip install openbench
# 2. 配置 API Key(任意供应商)
export GROQ_API_KEY=your_key # 或 OPENAI_API_KEY、ANTHROPIC_API_KEY 等
# 3. 运行 MMLU 基本评测(约 30s)
bench eval mmlu --model groq/llama-3.3-70b-versatile --limit 10
# 4. 查看结果
# 日志保存在 ./logs/,也可运行:
bench view
四、支持的模型提供商示例
-
Groq(超高速):
bench eval gpqa_diamond --model groq/meta-llama/llama-4-maverick-17b-128e-instruct
-
OpenAI:
bench eval humaneval --model openai/o3-2025-04-16
-
Anthropic:
bench eval simpleqa --model anthropic/claude-sonnet-4-20250514
-
Google:
bench eval mmlu --model google/gemini-2.5-pro
-
Ollama 本地模型:
bench eval musr --model ollama/llama3.1:70b
提示:Inspect AI 官方支持的任何提供商都可通过类似方式接入。
五、全面配置指南
在执行评测前,可通过环境变量或命令行选项进行自定义配置:
配置项 | 环境变量 | 默认值 | 作用说明 |
---|---|---|---|
--model |
BENCH_MODEL |
groq/meta-llama/llama-4-scout-17b-16e-instruct |
指定评测模型 |
--epochs |
BENCH_EPOCHS |
1 |
每个评测运行的轮次 |
--max-connections |
BENCH_MAX_CONNECTIONS |
10 |
最大并行请求数 |
--temperature |
BENCH_TEMPERATURE |
0.6 |
生成多样性控制 |
--top-p |
BENCH_TOP_P |
1.0 |
样本截断策略 |
--max-tokens |
BENCH_MAX_TOKENS |
None |
最大响应长度 |
--seed |
BENCH_SEED |
None |
随机种子,实现结果可复现 |
--limit |
BENCH_LIMIT |
None |
限制评测样本数,可指定起止区间 |
--logfile |
BENCH_OUTPUT |
None |
自定义日志输出文件路径 |
--sandbox |
BENCH_SANDBOX |
None |
运行环境(本地或 Docker) |
--timeout |
BENCH_TIMEOUT |
10000 |
单次请求超时时间(秒) |
--display |
BENCH_DISPLAY |
None |
结果展示格式(full/conversation/rich/plain/none) |
--reasoning-effort |
BENCH_REASONING_EFFORT |
None |
推理强度(low/medium/high) |
--json |
— | False |
是否以 JSON 格式输出结果 |
六、常用命令速查
命令 | 功能描述 |
---|---|
bench |
显示主菜单,列出所有命令 |
bench list |
列出可用评测、模型和标志 |
bench describe <benchmark> |
查看指定评测的详细信息 |
bench eval <benchmark> |
对指定模型运行评测 |
bench view |
可视化查看历史评测结果 |
七、深入定制:如何构建自己的评测
-
克隆仓库
git clone https://github.com/groq/openbench.git cd openbench
-
安装开发依赖
uv venv && uv sync --dev source .venv/bin/activate
-
添加新评测
-
在 benchmarks/
目录下,新建子文件夹并添加__init__.py
、数据集下载脚本、打分逻辑。 -
参考已有 MMLU 或 HumanEval 模块,实现同样的接口和调用方式。
-
-
运行测试
pytest
-
提交 PR
-
Fork 并创建分支,将新评测代码推送到个人仓库。 -
在 github.com/groq/openbench 提交 PR,撰写清晰的描述和测试结果。
-
八、常见问题解答(FAQ)
Q1:OpenBench 与 Inspect AI 有何区别?
答:Inspect AI 提供的是底层框架,而 OpenBench 在此基础上实现了 20+ 主流基准测试的参考实现、共享工具和便捷的 CLI,省去自行整合和适配的麻烦。
Q2:如何支持更多模型提供商?
答:只需在命令行中使用 --model provider/model
,或设置环境变量 BENCH_MODEL
。OpenBench 会自动通过 Inspect AI 的接口调用对应 API。
Q3:评测结果与文献报告的分数不一致?
答:不同提示词、模型量化、数据集版本等都会造成细微差异。建议在相同 OpenBench 版本和配置下进行对比,以保证数据可比性。
Q4:如何在 Docker 环境中运行?
答:使用 --sandbox docker
参数,或者先构建镜像:
docker build -t openbench .
docker run openbench bench eval mmlu --model groq/...
九、开发与贡献
如果你希望为 OpenBench 添砖加瓦:
-
Fork 并克隆官方仓库 -
新建功能分支,编写代码并补充测试 -
提交 PR,并在 PR 描述中附上测试结果 -
与社区讨论改进方案
我们诚挚欢迎任何形式的技术交流和代码贡献!
十、鸣谢与致谢
-
Inspect AI:提供评测框架的基石 -
EleutherAI lm-evaluation-harness:开创了统一化评测的先河 -
Hugging Face lighteval:优秀的评测工具支持