OpenCompass使用LawBench数据测评本地Qwen大模型

一、思维导图展示

二、OpenCompass简介

OpenCompass是一个大模型测评体系,开源、高效。同时集成CompassKit测评工具、CompassHub测评集社区,CompassRank测评榜单。

官网地址:https://opencompass.org.cn/home

三、OpenCompass安装

3.1 创建虚拟环境

复制代码
conda create --name opencompass python=3.10 -y
conda activate opencompass

3.2 通过pip安装OpenCompass

复制代码
# 支持绝大多数数据集及模型
pip install -U opencompass

# 完整安装(支持更多数据集)
# pip install "opencompass[full]"

# 模型推理后端,由于这些推理后端通常存在依赖冲突,建议使用不同的虚拟环境来管理它们。
# pip install "opencompass[lmdeploy]"
# pip install "opencompass[vllm]"

# API 测试(例如 OpenAI、Qwen)
# pip install "opencompass[api]"

3.3 基于源码安装OpenCompass

复制代码
git clone https://github.com/open-compass/opencompass opencompass
cd opencompass
pip install -e .
# pip install -e ".[full]"
# pip install -e ".[vllm]"

3.4 下载系统数据集(可选)

因为我们使用自己下载的数据集,所以系统的数据集,不是必要的,但是为了原始程序的健壮性,还是推荐下载,因为我没有验证不下载的情况。

复制代码
# 下载数据集到 data/ 处
wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip

# 解压之后是个文件夹叫data(后面会告诉这个dataf放在那里,先记住这个data文件夹)
unzip OpenCompassData-core-20240207.zip

3.5 使用ModelScope自动下载模型和数据(可选)

因为我们也是使用本地的模型,不需要程序中自己下载,如果做在线测试的,可以配置一下

复制代码
pip install modelscope
export DATASET_SOURCE=ModelScope

3.6 在线测评(可选)

至此如果,你具备FQ的条件的话,就可以直接进行在线测试了。

四、OpenCompass在线测评(可选)

因为在线测评很多模型是从huggingface上直接下载,然后测评的,需要FQ,我这里就不演示了,直接把官网上的测试过程拿过来展示,如果不需要在线测试的可以直接跳过。

4.1 首次测评

OpenCompass 支持通过命令行界面 (CLI) 或 Python 脚本来设置配置。对于简单的评估设置,我们推荐使用 CLI;而对于更复杂的评估,则建议使用脚本方式。你可以在configs文件夹下找到更多脚本示例。

复制代码
# 命令行界面 (CLI)
opencompass --models hf_internlm2_5_1_8b_chat --datasets demo_gsm8k_chat_gen

# Python 脚本
opencompass ./configs/eval_chat_demo.py

可以在 configs 文件夹下找到更多的脚本示例。

4.2 API测评

OpenCompass 在设计上并不区分开源模型与 API 模型。您可以以相同的方式或甚至在同一设置中评估这两种类型的模型。

复制代码
export OPENAI_API_KEY="YOUR_OPEN_API_KEY"
# 命令行界面 (CLI)
opencompass --models gpt_4o_2024_05_13 --datasets demo_gsm8k_chat_gen

# Python 脚本
opencompass  ./configs/eval_api_demo.py

# 现已支持 o1_mini_2024_09_12/o1_preview_2024_09_12  模型, 默认情况下 max_completion_tokens=8192.

4.3 后端推理

如果您想使用除 HuggingFace 之外的推理后端来进行加速评估,比如 LMDeploy 或 vLLM,可以通过以下命令进行。

复制代码
opencompass --models hf_internlm2_5_1_8b_chat --datasets demo_gsm8k_chat_gen -a lmdeploy

五、加载本地测试数据集

5.1 通过 git 下载我们要使用的LawBench数据集到本地

复制代码
git clone https://gitee.com/ljn20001229/LawBench.git  

说明:1处 OpenCompassData-core-20231110.zip是通过git下载的数据集压缩包,需要将其解压到同级的标记2处的 data 中。

说明:3处 LawBench 是 OpenCompassData-core-20231110.zip 解压后的文件。

至此我们自定义本地数据就就下载并放好了。

六、配置本地Qwen模型

6.1 模型下载。直接在modelscope上下载即可。

6.2 将下载好的模型,加入到项目目录中

七、编写本地测评脚本

7.1 在根目录的configs文件夹中创建 eval_local_qwen_1_8b_chat.py 用作我们的Qwen1.8B模型的测评启动脚本,代码如下:

复制代码
 1 # eval_local_qwen_1_8b_chat.py
 2 
 3 from mmengine.config import read_base
 4 
 5 with read_base():
 6     # 导入数据集
 7     from .datasets.lawbench.lawbench_zero_shot_gen_002588 import lawbench_datasets as zero
 8     from .datasets.lawbench.lawbench_one_shot_gen_002588  import lawbench_datasets as one
 9     # 导入模型
10     from  opencompass.configs.models.qwen.local_qwen_1_8b_chat import models
11 datasets = [*zero, *one]

7.2 修改 from .datasets.lawbench.lawbench_zero_shot_gen_002588 import lawbench_datasets as zero 中的 lawbench_zero_shot_gen_002588 文件:

7.3 同样修改 from .datasets.lawbench.lawbench_one_shot_gen_002588 import lawbench_datasets as one 中的 lawbench_one_shot_gen_002588 文件

7.4 创建 from opencompass.configs.models.qwen.local_qwen_1_8b_chat import models 中的 qwen.local_qwen_1_8b_chat 文件

八、启动本地测评

本地测评直接使用python run.py 执行我们创建的 configs/eval_local_qwen_1_8b_chat.py 文件,在加上参数即可

复制代码
 python run.py configs/eval_local_qwen_1_8b_chat.py  --debug

九、测评参数解释

  • --debug:调试模式,会有日志信息在控制台输出
  • --dry-run:该次测试只加载数据集,但是不会再测评中使用。
  • --accelerator vllm:vllm加速,适用于本地部署大模型
  • --reuse:是否重用历史结果
  • --work-dir:结果储存路径,默认是再outputs/default中
  • --max-num-worker:用于数据并行

十、测评结果

至此使用OpenCompass通过本地数据集LawBench测评本地模型Qwen1.8B_chat模型记录完毕,谢谢各位看官姥爷,看了这么久!笔芯!!!