嘘~ 正在从服务器偷取页面 . . .

【AI大模型应用学习笔记】OpenCompass模型评估框架的使用教程


一、创建虚拟环境

Open Compass要求的python版本为3.10版本,其他的版本不行。

conda create --name opencompass python=3.10 -y

conda activate opencompass

安装Open Compass和环境依赖:

  1. 下载仓库
git clone https://github.com/open-compass/opencompass opencompass 
  1. 安装环境依赖
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根目录内容有:
Open Compass根目录内容

三、测评模型

在确保按照上述步骤正确安装了 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 会根据以下逻辑进行设置:

  • 如果从数据集文件中可以解析出选项,如 ABC 等,则认定该数据集为 mcq,否则认定为 qa
  • 默认 infer_method 为 gen

更多实用文章和AI大模型应用开发文章欢迎到我个人博客来观看:墨宇Logic


文章作者: 墨宇Logic
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 墨宇Logic !
 上一篇
【AI大模型应用学习笔记】基于LlamaIndex实现RAG 【AI大模型应用学习笔记】基于LlamaIndex实现RAG
介绍LlamaIndex核心组件,以及使用LlamaIndex简单实现RAG系统
下一篇 
  目录