一、创建虚拟环境
Open Compass要求的python版本为3.10版本,其他的版本不行。
conda create --name opencompass python=3.10 -y
conda activate opencompass
安装Open Compass和环境依赖:
- 下载仓库
git clone https://github.com/open-compass/opencompass opencompass
- 安装环境依赖
cd opencompass
pip install -e .
二、数据准备
数据提前离线下载
OpenCompass支持使用本地数据集进行评测,数据集的下载和解压可以通过以下命令完成:
wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
将下载的文件放到OpenCompass根目录下面,然后进行解压:
unzip OpenCompassData-core-20240207.zip
解压后会在OpenCompass根目录下面多一个data文件夹。
此时的OpenCompass根目录内容有:
三、测评模型
在确保按照上述步骤正确安装了 OpenCompass 并准备好了数据集之后,现在我们就可以开始使用 OpenCompass 来对模型进行评估了。
3.1 命令行运行
OpenCompass 支持通过命令行界面 (CLI) 或 Python 脚本来设置配置。对于简单的评估设置,我们可以使用 CLI。
在评估前我们需要做一些准备
我们找到目录opencompass/opencompass/configs/models
,在models目录下面放的是关于各家大模型对应的配置文件。
以我们这次要测评的Qwen1.5-4b-chat
模型为例,我们找到opencompass/opencompass/configs/models/qwen/hf_qwen1_5_4b_chat.py
文件,文件内容如下:
from opencompass.models import HuggingFacewithChatTemplate
models = [
dict(
type=HuggingFacewithChatTemplate,
abbr='qwen1.5-4b-chat-hf',
path='Qwen/Qwen1.5-4B-Chat',
max_out_len=1024,
batch_size=8,
run_cfg=dict(num_gpus=1),
stop_words=['<|im_end|>', '<|im_start|>'],
)
]
这里将需要修改的参数说明下:
- path:需要训练的模型路径
- max_out_len:切割长度
- batch_size:训练批次,和我们的显卡显存有关
我们需要将模型路径修改成我们本地模型路径,batch_size则根据我们自己的硬件设备来。
修改完后,我们进入Open Compass根目录下,输入命令:
# 命令行界面 (CLI)
opencompass --models hf_qwen1_5_4b_chat --datasets demo_gsm8k_chat_gen
命令参数说明:
- hf_qwen1_5_4b_chat:对应我们修改的hf_qwen1_5_4b_chat.py名字
- demo_gsm8k_chat_gen:使用的测评数据集
3.2 自定义数据集评估
对于问答 (qa) 类型的数据,默认的字段如下:
- question : 表示问答题的题干
- answer : 表示问答题的正确答案。可缺失,表示该数据集无正确答案。
对于非默认字段,我们都会进行读入,但默认不会使用。如需使用,则需要在.meta.json
文件中指定。.jsonl
格式样例如下:
{"question": "752+361+181+933+235+986=", "answer": "3448"}
{"question": "712+165+223+711=", "answer": "1811"}
{"question": "921+975+888+539=", "answer": "3323"}
{"question": "752+321+388+643+568+982+468+397=", "answer": "4519"}
我们需要将我们的数据集格式转化为上面格式,转化完成后,我们使用自定义的数据集需要提供命名行列表来调用:
python run.py \
--models hf_llama2_7b \
--custom-dataset-path xxx/test_qa.jsonl \
--custom-dataset-data-type qa \
--custom-dataset-infer-method gen
在绝大多数情况下,--custom-dataset-data-type
和 --custom-dataset-infer-method
可以省略,OpenCompass 会根据以下逻辑进行设置:
- 如果从数据集文件中可以解析出选项,如
A
,B
,C
等,则认定该数据集为mcq
,否则认定为qa
。 - 默认
infer_method
为gen
。
更多实用文章和AI大模型应用开发文章欢迎到我个人博客来观看:墨宇Logic