波波算法笔记

Bob Peng

大模型评估框架OpenCompass

2025-04-01
大模型评估框架OpenCompass

最近一段时间都在做模型的微调与预训练。但是经过模型调参的模型并不一定能力提升,而且主观的几个问答并不能体现模型在模型方面的能力,我们需要更加直观的测试结果。

所以就有了模型评测,目前比较高效、便捷的框架就是OpenCompass。接下来围绕OpenCompass的实战聊聊。

OpenCompass安装

基础环境

这边建议参考我之前写的文章,大模型基础环境搭建。

深度学习/模型环境搭建(Ubuntu)

环境还是比较重要的,学习大模型的基础。

OpenCompass依赖

基于上一步搭建好conda的虚拟环境后,激活环境。

conda activate opencompass

从GitHub克隆项目

git clone https://github.com/open-compass/opencompass.git  
cd opencompass  
pip install -e .

数据集下载

在 OpenCompass 项目根目录下运行下面命令,将数据集准备至 data 目录下:

wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip  
unzip OpenCompassData-core-20240207.zip

如果需要使用 OpenCompass 提供的更加完整的数据集 (~1.7G),可以使用下述命令进行下载和解压:(根据网络情况来)

wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-complete-20240207.zip  
unzip OpenCompassData-complete-20240207.zip

不出意外, OpenCompass根目录下会存在data目录。到此。

模型下载

这边建议参考我之前写的文章,有关模型下载。

有关模型与数据集下载

快速跑通流程

(可选)运行可查看所有模型配置与数据集

python tools/list_configs.py 

执行命令,注意配置模型路径

python run.py --datasets demo_gsm8k_chat_gen \  
              --hf-path 模型路径 \  
              --tokenizer-path  模型路径\  
              --tokenizer-kwargs padding_side='left' truncation='right' trust_remote_code=True \  
              --model-kwargs device_map='auto' trust_remote_code=True \  
              --max-seq-len 2048 \  
              --max-out-len 2048 \  
              --batch-size 1 \  
              --hf-num-gpus 1 \  
              --debug

跑完后会得到评估分数。

自定义模型评估

在configs\models路径下新建py文件,写入模型配置

from opencompass.models import HuggingFaceCausalLM  
  
models = [  
    dict(  
        type=HuggingFaceCausalLM,  
        # 以下参数为 `HuggingFaceCausalLM` 的初始化参数  
        path='/home/valiantsec/phb/models/codegeex4-all-9b',#模型路径  
        tokenizer_path='/home/valiantsec/phb/models/codegeex4-all-9b',# 模型路径  
        tokenizer_kwargs=dict(padding_side='left', truncation_side='right'),  
        max_seq_len=2048,  
        batch_padding=False,  
        # 以下参数为各类模型都有的参数,非 `HuggingFaceCausalLM` 的初始化参数  
        abbr='codegeex4_all_9b',            # 模型简称,用于结果展示  
        max_out_len=2048,            # 最长生成 token 数  
        batch_size=4,              # 批次大小  
        run_cfg=dict(num_gpus=1),   # 运行配置,用于指定资源需求  
    )  
]

运行

python tools/list_configs.py 

可查看到注册的模型 后续就可以直接使用以下命令跑评测,很简洁

python run.py --datasets demo_gsm8k_chat_gen --models 模型名称 --debug          

自定义数据集评测

后续在细说

评测指标