文章目录

1. 什么是 OpenCompass2. 通用评估流程2.1 安装依赖库2.2 数据准备2.3 评测

3. 如何使用其他模型评测3.1 准备评测配置文件3.2 【可选】准备模型3.3 修改模型配置3.4 启动评测

4. 参考

1. 什么是 OpenCompass

官方看这里。OpenCompass 是一个开源项目,旨在为机器学习和自然语言处理领域提供多功能、易于使用的工具和框架。其中包含的多个开源模型和开源数据集(BenchMarks),方便进行模型的效果评测。具体文档介绍看这里。

2. 通用评估流程

以下在官方文档中也有说明。

2.1 安装依赖库

GPU 环境:

conda create --name opencompass python=3.10 pytorch torchvision pytorch-cuda -c nvidia -c pytorch -y

conda activate opencompass

git clone https://github.com/open-compass/opencompass opencompass

cd opencompass

pip install -e .

CPU 环境:

conda create -n opencompass python=3.10 pytorch torchvision torchaudio cpuonly -c pytorch -y

conda activate opencompass

git clone https://github.com/open-compass/opencompass opencompass

cd opencompass

pip install -e .

# 如果需要使用各个API模型,请 `pip install -r requirements/api.txt` 安装API模型的相关依赖

2.2 数据准备

# 下载数据集到 data/ 处

wget https://github.com/open-compass/opencompass/releases/download/0.1.8.rc1/OpenCompassData-core-20231110.zip

unzip OpenCompassData-core-20231110.zip

2.3 评测

确保按照上述步骤正确安装 OpenCompass 并准备好数据集后,可以通过以下命令评测 LLaMA-7b 模型在 MMLU 和 C-Eval 数据集上的性能:

python run.py --models hf_llama_7b --datasets mmlu_ppl ceval_ppl

注意,通用流程中评测的是内置的一些模型,如何查看内置有哪些模型:

# 列出所有配置

python tools/list_configs.py

如下:

3. 如何使用其他模型评测

3.1 准备评测配置文件

新增如下文件./configs/eval_{你的模型名字}.py,

里面的内容比如:

from mmengine.config import read_base

with read_base():

from .datasets.collections.base_medium_llama import piqa_datasets, siqa_datasets

from .models.hf_llama.hf_llama_7b import models

datasets = [*piqa_datasets, *siqa_datasets]

本段配置代码主要输出两个重要配置:

评测数据集 datasets,当前是 piqa_datasets 和 siqa_datasets,也可以选择多个评测集待评测模型 models,当前是 hf_llama_7b

3.2 【可选】准备模型

对于无法连接外网的、或者需要评测非开源模型的,那么需要提前准备模型。

对于开源模型,OpenCompass 默认直接使用 HuggingFace model ID 从 hf 上下载开源模型和权重,点击这里,对于一些无法访问外网的机器,这里很容易网络连接失败。

对于评测开源模型的,需要先准备好模型文件,如果无法访问外网下载,可以通过 ModelScope ,这里搜索一些开源的模型,很多是 copy HuggingFace 的。 下载具体的模型,建议用官方提供 Python 代码去下载,下载之后记得把模型拷贝到自己熟悉的目录下! 例如,我把下载的模型拷贝到 OpenCompass 的项目下了: 如果你是用自己的模型,那你就把你的模型拷贝到你指定的目录下即可!

3.3 修改模型配置

模型的下载没有问题后,通过如下方式来指定模型配置文件:./configs/models/{模型名字}/{具体模型名字}.py,如图:

即刚刚在上个配置文件中指定的模型配置,内容修改的地方如下:

from opencompass.models import HuggingFaceCausalLM

models = [

# LLaMA 7B

dict(

type=HuggingFaceCausalLM,

abbr='llama-7b-hf',

path="/root/data/opencompass-main/llmmodel/llama-7b", # 你的模型存放的实际路径,建议使用完整绝对路径

tokenizer_path='/root/data/opencompass-main/llmmodel/llama-7b', # 你的模型存放的实际路径,建议使用完整绝对路径

tokenizer_kwargs=dict(padding_side='left',

truncation_side='left',

use_fast=False,

),

max_out_len=100,

max_seq_len=2048,

batch_size=8,

model_kwargs=dict(device_map='auto'),

batch_padding=False, # if false, inference with for-loop without batch padding

run_cfg=dict(num_gpus=1, num_procs=1),

)

]

将 path 和 tokenizer_path 指向本地模型目录即可。

3.4 启动评测

直接使用项目根目录下的 run.py,指定我们定义好的评测配置,即可运行:

python run.py configs/eval_{你的模型名字}.py

最终的评测结果会在 outputs/default/{时间戳} 输出:

4. 参考

https://zhuanlan.zhihu.com/p/669291064?utm_id=0

欢迎关注本人,我是喜欢搞事的程序猿; 一起进步,一起学习;

也欢迎关注我的wx公众号:一个比特定乾坤