Opencompass模型评测教程

模型评测

模型评测非常关键,目前主流的方法主要可以概括为主观评测和客观评测,主观评测又可以分为两种形式:人工判断或者和模型竞技场。客观评测一般采用评测数据集的形式进行模型评测。本教程使用Opencompass工具进行对Internlm2-7b模型进行评测。

算力平台

本教程在OpenBayes上进行实验,主要的原因在于Openbayes平台可以很方便地使用自定义的数据集。没有注册的用户可以使用我的邀请链接,可以获得4小时的RTX4090的免费使用时长:

https://openbayes.com/console/signup?r=xiaoshulin_WGv4

硬件环境

首先Opencompass比较消耗资源,一张4090评测一次CMMLU评测集大概需要一个小时,并且选择A100速度也是差不多的(主要还是CPU瓶颈和推理能力),建议选择单张4090进行评测,性价比最高。

下载Opencompass评测数据包

opencompass的数据包分为了两个版本,一个是complete版本和core版本,其中complete版本包含的数据集种类更加全面,core版本包含了主要的核心评测数据集。由于本教程评测使用CMMLU数据集,所以只需要下载core版本即可。
下载方式可以使用官方的办法:

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

但是经过本人测试,下载速度非常有限,所以可以使用我下面的链接:opencompass包阿里云
同时,强烈建议将数据集上传到openBayes平台给用户挂载的数据集文件夹。
1、首先创建一个数据集:
在这里插入图片描述
我这里命名为opencompass评测数据集
在这里插入图片描述
然后需要创建一个新的版本(openBayes的管理和github很像,无论是模型还是数据集都是有版本一说,这样子的话可以方便管理数据集的不同版本,这也是非常nice的一点):
在这里插入图片描述
然后在对应的版本里面上传需要的数据集即可。
在这里插入图片描述

配置硬件环境

本教程使用RTX4090进行模型的评测。但是首先我们需要创建一个算力容器。
在这里插入图片描述
我这里命名为书生浦语模型评测,注意在创建数据集的时候需要设置好两个:internlm2-7b模型和你刚才创建的opencompass数据包,这样子的话就根本不需要额外在容器内部下载,白白浪费时间。
在这里插入图片描述
在这里插入图片描述
然后到了下一步选择算力,我们选择使用RTX4090加速,并且使用pytorch中的python3.10+cuda12.1环境镜像:
在这里插入图片描述
剩下的就是点击审核和执行就可以了。

软件环境配置

这一步,首先打开JupyterLab的工作空间。
在这里插入图片描述
观察这个界面,我们就可以发现到我们刚刚挂载的那个评测数据集和评测的模型(实际上就是两个文件夹)。
在这里插入图片描述
由于每一次启动openbayes平台都会将base的conda环境的软件依赖全部清理掉,所以最好的方法是使用conda创建一个全新的虚拟环境保存到路径/openbayes/home下面,这个文件夹的所有内容不会被删除。首先创建一个终端,确保在home路径下面,然后执行下面的脚本:

conda create --prefix /openbayes/home/opss python=3.10 pytorch torchvision pytorch-cuda -c nvidia -c pytorch -y
conda activate /openbayes/home/opss
git clone https://github.com/open-compass/opencompass.git
cd opencompass
pip install -e .

由于可能发生缺失文件libGL.so.1,所以需要安装软件依赖:

apt install libgl1-mesa-glx -y

最后我们进入opencompass的目录下面,可以得到下面的结构目录:
在这里插入图片描述

opencompass使用

参考文档

官方最新的opencompass使用文档

执行opencompass评测任务

首先需要创建一个data文件夹,存储的就是我们刚刚放上去的opencompass评测集。
在这里插入图片描述
然后在将我们的评测数据集复制一份到这个data文件夹里面:

cp -r /openbayes/input/input0/data/* ./data

在这里插入图片描述
opencompass的工作原理可以参考文档,也可以参考这个文章:关于openCompass与大模型评测现状的分析
用起来的实际上并不需要特别深入的理解,只需要明白每一步要要干啥就OK了。执行opencompass的一个关键是调整评测集的config,常用的评测数据集的配置文件都在opencompass/configs这个路径下面了。
首先创建一个配置文件eval_internlm2_7b.py放到configs文件夹下面:

from opencompass.models import HuggingFaceCausalLM
from mmengine.config import read_base

with read_base():
    from .datasets.cmmlu.cmmlu_ppl import cmmlu_datasets
    
datasets = [*cmmlu_datasets]


models = [
    dict(
        type=HuggingFaceCausalLM,
        abbr='internlm2-7b',
        path="/openbayes/input/input1/internlm2-7b",  # 模型文件路径
        tokenizer_path='/openbayes/input/input1/internlm2-7b',
        tokenizer_kwargs=dict(
            trust_remote_code=True,
            use_fast=False,
        ),
        max_seq_len=2048,
        batch_size=1,
        model_kwargs=dict(device_map='auto', trust_remote_code=True),
        run_cfg=dict(num_gpus=1, num_procs=1),
    ) # 多模型评测最好放到一起,因为可以开很多个进程一起评测
]

然后在终端执行命令:

MKL_SERVICE_FORCE_INTEL=1 python run.py configs/eval_internlm2_7b.py

输出会保存到文件opencompass/outputs文件夹里面:
在这里插入图片描述

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值