深入解读 OpenBench:一站式语言模型评测基础设施

OpenBench 是一款面向研究者和开发者的开源评测工具,旨在为大规模语言模型(LLM)提供统一、可复现的基准测试流程。无论你使用哪家模​型提供商,都能通过 OpenBench 快速评估模型在知识、推理、编程和数学等多种维度上的表现。


一、是什么让 OpenBench 与众不同?

  1. 多套评测

    • 覆盖全面:内置 20+ 主流评测,包括 MMLU、GPQA、HumanEval、SimpleQA、AIME、HMMT 等。
    • 跨学科:从基础常识到竞赛数学,应有尽有。
  2. 提供商无关

    • 即插即用:支持 Groq、OpenAI、Anthropic、Cohere、Google、AWS Bedrock、Azure、Ollama 本地模型等 15+ 供应商。
    • 灵活切换:只需更改 --model 参数或环境变量,即可在不同平台间切换。
  3. 简单易用的命令行界面

    • bench list:列出所有可用评测和模型。
    • bench describe:查看某个评测的详细信息。
    • bench eval:运行评测并生成日志。
    • bench view:可视化展示历史评测结果。
  4. 高度可扩展

    • 基于业界认可的 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
OpenBench 结果示例

四、支持的模型提供商示例

  • 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 可视化查看历史评测结果

七、深入定制:如何构建自己的评测

  1. 克隆仓库

    git clone https://github.com/groq/openbench.git
    cd openbench
    
  2. 安装开发依赖

    uv venv && uv sync --dev
    source .venv/bin/activate
    
  3. 添加新评测

    • benchmarks/ 目录下,新建子文件夹并添加 __init__.py、数据集下载脚本、打分逻辑。
    • 参考已有 MMLU 或 HumanEval 模块,实现同样的接口和调用方式。
  4. 运行测试

    pytest
    
  5. 提交 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 添砖加瓦:

  1. Fork 并克隆官方仓库
  2. 新建功能分支,编写代码并补充测试
  3. 提交 PR,并在 PR 描述中附上测试结果
  4. 与社区讨论改进方案

我们诚挚欢迎任何形式的技术交流和代码贡献!


十、鸣谢与致谢

  • Inspect AI:提供评测框架的基石
  • EleutherAI lm-evaluation-harness:开创了统一化评测的先河
  • Hugging Face lighteval:优秀的评测工具支持