OpenBench是一个开源的语言模型评估工具,它不受限于特定的模型供应商。开发者可以使用它在超过20个基准测试集上对语言模型进行标准化的、可复现的性能评测,这些测试涵盖了知识、推理、编码和数学等多个领域。OpenBench的核心优势在于其简洁性和通用性。它提供了一个简单的命令行界面,用户只需几条命令就可以启动评估任务。该工具支持多种主流模型服务商,例如Groq、OpenAI、Anthropic、谷歌,同时也兼容通过Ollama运行的本地模型。由于它构建于inspect-ai
框架之上,因此具备良好的扩展性,允许开发者方便地添加新的基准测试和评估指标。这使得OpenBench成为一个灵活且易于上手的模型性能评测平台。
功能列表
- 支持超过20个基准测试:内置MMLU、GPQA、HumanEval、SimpleQA以及AIME、HMMT等多种竞赛级数学评测。
- 简洁的命令行界面(CLI):提供
bench list
、bench describe
、bench eval
等简单直观的命令来管理和运行评测。 - 兼容多家模型供应商:支持超过15家模型供应商,包括Groq、OpenAI、Anthropic、Google、AWS Bedrock、Azure等。
- 支持本地模型:可以与Ollama集成,对在本地运行的语言模型进行评估。
- 基于标准框架构建:构建在
inspect-ai
评估框架之上,确保了评测的规范性和可靠性。 - 高度可扩展:允许开发者轻松添加新的基准测试项目和自定义评估指标。
- 交互式结果查看:提供
bench view
命令,可以在交互式用户界面中查看评估日志。 - 灵活的评估配置:用户可以通过命令行参数或环境变量详细配置模型评估过程,如设置温度、最大Token数、并发请求数等。
使用帮助
OpenBench 提供了一套完整的工具,用于对大型语言模型(LLM)进行标准化的基准测试。下面将详细介绍如何安装和使用该工具来评估模型。
1. 环境准备与安装
在使用 OpenBench 之前,你需要先安装 uv
,它是一个快速的 Python 包安装器和虚拟环境管理器。
步骤一:安装 uv (如果尚未安装)
uv
的安装过程非常简单,具体可以参考其官方文档。安装完成后,你就可以开始准备 OpenBench 的运行环境。
步骤二:创建并激活虚拟环境
为了保持项目依赖的隔离,建议创建一个新的虚拟环境。
# 创建一个名为 .venv 的虚拟环境
uv venv
# 激活该虚拟环境 (在Linux或macOS上)
source .venv/bin/activate
步骤三:安装 OpenBench
激活虚拟环境后,使用 uv
来安装 OpenBench。
uv pip install openbench```
这个命令会自动处理所有必需的依赖项。
### **2. 配置 API 密钥**
OpenBench 支持多家模型供应商,你需要设置相应的 API 密钥才能使用它们的模型。密钥通过环境变量进行配置。
```bash
# 示例:设置 Groq 的 API 密钥
export GROQ_API_KEY="你的密钥"
# 示例:设置 OpenAI 的 API 密钥
export OPENAI_API_KEY="你的密钥"
# 示例:设置 Anthropic 的 API 密钥
export ANTHROPIC_API_KEY="你的密钥"```
你只需要设置你计划使用的那个供应商的密钥即可。
### **3. 运行评估任务**
配置完成后,你就可以通过 `bench eval` 命令来运行一个评估任务。
**基本命令格式:**
`bench eval <基准测试名称> --model <模型名称>`
**快速上手示例:**
让我们以`mmlu`基准测试为例,使用Groq提供的`llama-3.3-70b-versatile`模型,并只评估10个样本。
```bash
bench eval mmlu --model groq/llama-3.3-70b-versatile --limit 10
mmlu
: 这是基准测试的名称。--model groq/llama-3.3-70b-versatile
: 指定要评估的模型。--limit 10
: 表示只从数据集中选取10个样本进行测试,这在初次尝试时可以快速得到结果。
评估任务完成后,结果会默认保存在项目目录下的 ./logs/
文件夹中。
4. 查看评估结果
你有两种方式查看结果:
方式一:直接查看日志文件
结果日志是纯文本或JSON文件,你可以直接用文本编辑器打开位于 ./logs/
目录下的日志文件进行查看。
方式二:使用交互式界面
OpenBench 提供了一个更友好的交互式界面来展示结果。
bench view
```该命令会启动一个本地服务,让你可以在浏览器中直观地浏览和分析历次评估的结果。
### **5. 主要命令和常用选项**
OpenBench 的核心功能通过 `bench` 命令暴露。
- `bench --help`: 显示所有可用的命令和全局选项。
- `bench list`: 列出所有可用的基准测试、模型和标志。
- `bench eval <benchmark>`: 运行指定的基准测试。
- `bench view`: 启动交互式界面查看日志。
#### **`eval` 命令的关键选项**
`eval` 命令支持丰富的选项来控制评估流程,你可以通过命令行参数或环境变量来设置。
| 选项 | 环境变量 | 描述 |
| --- | --- | --- |
| `--model` | `BENCH_MODEL` | 指定要评估的一个或多个模型。 |
| `--limit` | `BENCH_LIMIT` | 限制评估样本的数量,可以是具体数字或范围(如`10,20`)。 |
| `--temperature` | `BENCH_TEMPERATURE` | 设置模型的生成温度,影响输出的随机性。 |
| `--max-connections`| `BENCH_MAX_CONNECTIONS`| 设置与模型API的最大并行连接数,默认为10。 |
| `--logfile` | `BENCH_OUTPUT` | 指定保存结果的日志文件路径。 |
| `--sandbox` | `BENCH_SANDBOX` | 指定代码执行的环境,如`local`或`docker`,用于HumanEval等编码测试。 |
| `--json` | 无 | 如果设置此项,结果将以JSON格式输出。 |
### **6. 使用不同供应商或本地模型**
你可以轻松切换不同的模型供应商。
```bash
# 使用 OpenAI 的模型
bench eval humaneval --model openai/o3-2025-04-16
# 使用 Google 的模型
bench eval mmlu --model google/gemini-2.5-pro
# 使用通过 Ollama 运行的本地模型
# 确保 Ollama 服务正在运行
bench eval musr --model ollama/llama3.1:70b
7. 处理 Hugging Face 数据集下载问题
部分基准测试需要从 Hugging Face 下载数据集。如果遇到“gated”错误,说明该数据集需要用户认证。你需要设置 Hugging Face 的访问令牌。
export HF_TOKEN="你的HuggingFace令牌"
完成以上步骤后,重新运行 bench eval
命令即可解决问题。
应用场景
- 模型研究与开发
研究人员和开发者在开发新的语言模型时,可以使用OpenBench快速在多个行业标准基准上测试新模型的性能,并与现有主流模型进行量化比较,从而验证模型的改进效果。 - 模型选型与采购
企业或团队在选择适合自身业务的语言模型时,可以利用OpenBench对来自不同供应商(如OpenAI, Google, Anthropic)的候选模型进行统一、公平的性能评估,以数据驱动决策。 - 持续集成与回归测试
对于需要频繁微调或迭代模型的场景,可以将OpenBench集成到CI/CD流程中。每当模型更新后,自动运行一套标准化的基准测试,以确保模型性能没有出现意外衰退。 - 本地模型性能评估
对于注重数据隐私或需要离线运行的场景,开发者可以使用Ollama在本地部署开源模型。OpenBench可以连接到本地Ollama服务,对这些本地模型的知识、推理和编码能力进行全面评估。
QA
- OpenBench 与 Inspect AI 有什么区别?
OpenBench 是一个构建在 Inspect AI 框架之上的基准测试库。可以理解为,Inspect AI 提供了底层的评估能力和工具,而 OpenBench 在此基础上提供了20多个主流基准测试的现成实现、统一的命令行工具以及跨评测共享的实用程序(如数学评分器)。OpenBench 专注于简化运行标准化基准测试的流程和提升开发者的使用体验。 - 为什么要选择 OpenBench,而不是 lm-evaluation-harness 或 lighteval 等其他工具?
这几个工具各有侧重。OpenBench 的主要优势在于其清晰、易于理解和修改的评测实现。它通过共享组件减少了不同基准测试间的代码重复,并通过简洁的命令行工具和一致的设计模式,优化了开发者的使用体验。如果你需要一个易于扩展和维护、评测代码可读性高的工具,OpenBench 是一个很好的选择。 - 如何在虚拟环境之外使用
bench
命令?
如果你希望在系统中的任何路径下都能直接调用bench
命令,而不是每次都要激活虚拟环境,可以在项目克隆到本地后,运行以下命令进行可编辑模式的安装:uv run pip install -e .
。 - 运行评测时提示 HuggingFace 需要登录,如何解决?
这通常是因为评测所需的数据集在 HuggingFace 上是受保护的(gated)。你需要先获取一个 HuggingFace 的访问令牌(token),然后通过设置环境变量HF_TOKEN
来解决。例如:export HF_TOKEN="hf_xxxxxxxx"
,之后再重新运行评测命令即可。