大模型评测工具OpenCompass
本文最后更新于 2025年2月18日 凌晨
OpenCompass是一个开源的大模型评测工具,支持对各类大模型进行全方位的能力评估。本文介绍了如何使用OpenCompass搭建评测环境、配置模型和数据集,并分享了对多个主流大模型在高中/初中理科和高考数学选择题上的评测结果。
环境配置
基础安装
使用conda创建虚拟环境并安装:
1 |
|
也可以通过pip直接安装:
1 |
|
测试数据集
可用数据集
目前支持的数据集包括:
1 |
|
数据集下载
默认使用Huggingface Dataset,可通过环境变量切换到ModelScope:
1 |
|
运行测试的时候会自动下载数据集,也可以手动下载(版本不同):
1 |
|
模型配置
在models
文件夹中已经定义了很多模型,包含API调用方式或者本地部署,由于我准备使用oneapi,所以需要新定义一个。
配置API模型
在
opencompass/models
下新建oneapi_api.py
,将openai的配置复制过来设置API地址:
1
2通过环境变量设置:
export OPENAI_BASE_URL="http://172.1.1.1:11111/v1"或者在代码中加入:
1
2import os
os.environ['OPENAI_BASE_URL'] = "http://172.1.1.1:11111/v1"由于很多接口没有实现,所以需要简化token计数:
1
2def get_token_len(self, prompt: str) -> int:
return 0在
__init__.py
中注册模型:1
from .oneapi_api import Oneapi # noqa: F401
创建模型配置文件
configs/models/oneapi/qwen_max.py
:(也可以在后面的测试文件中直接写)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22from opencompass.models import Oneapi
api_meta_template = dict(
round=[
dict(role='HUMAN', api_role='HUMAN'),
dict(role='BOT', api_role='BOT', generate=True),
],
)
models = [
dict(
abbr='Qwen_max',
type=Oneapi,
path='qwen-max',
key='',
meta_template=api_meta_template,
query_per_second=1,
max_out_len=8192,
max_seq_len=30720,
batch_size=8
),
]
评测实践
测试配置
创建测试文件examples/eval_oneapi_qwen.py
:
1 |
|
运行评测
1 |
|
如果想查看对比日志,可以增加参数--dump-eval-details
,例如
1 |
|
最后在results
文件夹中能看到:
1 |
|
输出目录结构
1 |
|
评测结果
CEval理科测试结果 (2025-02-10)
测试范围包括高中和初中的数学、物理、化学、生物科目,每个科目包含10-20个测试题目。
科目 | qwen-max | o1-preview | gpt-4o | DeepSeek-V3 | glm-zero |
---|---|---|---|---|---|
高中数学 | 72.22 | 94.44 | 27.78 | 66.67 | 66.67 |
高中物理 | 89.47 | 94.74 | 78.95 | 84.21 | 89.47 |
高中化学 | 89.47 | 73.68 | 57.89 | 73.68 | 94.74 |
高中生物 | 94.74 | 89.47 | 78.95 | 84.21 | 100.00 |
初中数学 | 94.74 | 100.00 | 73.68 | 94.74 | 94.74 |
初中生物 | 85.71 | 90.48 | 90.48 | 90.48 | 85.71 |
初中物理 | 100.00 | 94.74 | 94.74 | 100.00 | 100.00 |
初中化学 | 95.00 | 95.00 | 95.00 | 95.00 | 95.00 |
高考数学选择题测试结果 (2025-02-10)
测试范围:
- 2010-2022数学B卷选择题:217题
- 2010-2022数学A卷选择题:213题
试卷类型 | Qwen-max | o1-preview | gpt-4o | DeepSeek-V3 | glm-zero |
---|---|---|---|---|---|
数学B卷选择题 | 91.28 | 99.08 | 81.19 | 94.95 | 30.28 |
数学A卷选择题 | 85.51 | 98.13 | 70.09 | 90.19 | 25.70 |
智谱这得分很离谱,查看了几个回答日志,的确很多错的,于是有单独对他重新跑了一遍,分数还是很低。
dataset | version | metric | mode | glm-zero-preview |
---|---|---|---|---|
2010-2022数学B卷选择题 | 5b0b29 | score | gen | 30.28 |
2010-2022数学A卷选择题 | 5b0b29 | score | gen | 25.70 |