OpenCompass 使用 LawBench 评测本地模型教程

OpenCompass 是一个用于评测语言大模型和多模态大模型的算法库,中文文档连接:https://opencompass.readthedocs.io/zh-cn/latest/index.html

一、OpenCompass 安装

现创建 python 环境,版本为 3.10,然后克隆 git 仓库

conda create -n opencompass python=3.10
conda activate opencompass

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.1.8.rc1/OpenCompassData-core-20231110.zip
unzip OpenCompassData-core-20231110.zip

解压完后把文件夹改名为 data

但是 LawBench 的数据集暂时还没有被整合到 OpenCompass 的数据集中,需要自己手动下载

在 opencompass 文件夹执行:

git clone https://gitee.com/ljn20001229/LawBench.git

mkdir ./data/lawbench
cp -r ./LawBench/data/one_shot  ./data/lawbench
cp -r ./LawBench/data/zero_shot ./data/lawbench

这样就把 LawBench 的数据集放到 OpenCompass 下了,操作完后的目录结构如下:

opencompass
|-- LawBench
|-- data
|   |-- lawbench
|   |   |-- one_shot
|   |   `-- zero_shot

三、模型下载

这里我使用 Qwen2-1.5b 模型为例,这个模型运行时大约占用 8G 显存,如果显存不足请自行更换模型。

3.1 准备数据集配置文件

./configs 文件夹下新增配置文件 eval_{模型名字}.py,然后写入如下内容:

from mmengine.config import read_base

with read_base():
    from .datasets.lawbench.lawbench_zero_shot_gen_002588 import lawbench_datasets as zero
    from .datasets.lawbench.lawbench_one_shot_gen_002588  import lawbench_datasets as one
    from .models.qwen.hf_qwen2 import models

datasets = [*zero, *one]

简单解释一下代码,数据集的读取程序存放在 ./datasets/lawbench/awbench_zero_shot_gen_002588.py./datasets/lawbench/awbench_one_shot_gen_002588.py 两个文件内,lawbench_datasets 是这两个文件内的 List,定义了数据格式和提取方式等信息,./models/qwen/hf_qwen2.py 文件保存了模型信息,后面会讲到这个文件如何配置

3.2 准备模型

对于开源模型,OpenCompass 默认直接使用 HuggingFace model ID 从 hf 上下载开源模型和权重,但是由于网络问题,有时需要提前把模型下载到本地进行评测,模型可以直接从 HuggingFace 或 ModelScope 上下载,下载好后把模型文件放到 opencompass 文件夹下

在这里插入图片描述

在这里插入图片描述

3.3 准备模型配置文件

./configs/models/{模型名字} 目录下创建文件 hf_{具体模型名字}.py,并且写入如下内容:

from opencompass.models import HuggingFaceBaseModel

models = [
    dict(
        type=HuggingFaceBaseModel,
        abbr='qwen2-hf',
        path='/home/spfa/repo/LawBench/opencompass/Qwen2',
        tokenizer_path='/home/spfa/repo/LawBench/opencompass/Qwen2',
        max_out_len=1024,
        batch_size=1,
        run_cfg=dict(num_gpus=1),
    )
]

简单解释一下,该文件决定了模型该如何加载,pathtokenizer_path 通常填相同路径即可,最好填绝对路径。

此时的目录结构大概如下:

opencompass
|-- LawBench
|-- Qwen2
|-- data
|   |-- lawbench
|   |   |-- one_shot
|   |   `-- zero_shot
|-- configs
|   |-- eval_qwen2.py
|   |-- models
|   |   |-- qwen
|   |   |   |-- hf_qwen2.py

四、开始评测

在 opencompass 目录下,执行:

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

如果想要显示详细的调试信息,可以加上 --debug 参数

最后的模型评测结果会保存在 ./outputs/default/{时间戳}/predictions 文件夹下

如果出现错误,请打开 --debug 参数查看调试信息,并在 ./outputs/default/{时间戳}/logs 文件夹下查看查看日志

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SP FA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值