使用 OpenCompass 评测 internlm2-chat-1.8b 模型在 CEval 数据集上的性能
本文将进行使用 OpenCompass 来评测 InternLM2 1.8B实践
概览
在 OpenCompass 中评估一个模型通常包括以下几个阶段:配置 -> 推理 -> 评估 -> 可视化。
- 配置:这是整个工作流的起点。您需要配置整个评估过程,选择要评估的模型和数据集。此外,还可以选择评估策略、计算后端等,并定义显示结果的方式。
- 推理与评估:在这个阶段,OpenCompass 将会开始对模型和数据集进行并行推理和评估。推理阶段主要是让模型从数据集产生输出,而评估阶段则是衡量这些输出与标准答案的匹配程度。这两个过程会被拆分为多个同时运行的“任务”以提高效率。
- 可视化:评估完成后,OpenCompass 将结果整理成易读的表格,并将其保存为 CSV 和 TXT 文件。
接下来,我们将展示 OpenCompass 的基础用法,分别用命令行方式和配置文件的方式评测InternLM2-Chat-1.8B,展示书生浦语在 C-Eval
基准任务上的评估。更多评测技巧请查看 https://opencompass.readthedocs.io/zh-cn/latest/get_started/quick_start.html 文档。
1. 环境准备
首先,确保评测环境已准备就绪。创建一个配备了 Cuda 11.7 和 Conda 的开发机,并选择 10% 的 A100 GPU 资源。
然后,创建并激活 Conda 环境:
conda create -n opencompass python=3.10
conda activate opencompass
2. 安装 OpenCompass
接下来,安装 OpenCompass 及其依赖项:
cd ~
git clone -b 0.2.4 https://github.com/open-compass/opencompass
cd opencompass
pip install -e .
安装其他必要的依赖项:
apt-get update
apt-get install cmake
pip install -r requirements.txt
pip install protobuf
3. 准备评测数据集
将评测数据集解压到 OpenCompass 的 data
目录下:
cp /share/temp/datasets/OpenCompassData-core-20231110.zip /root/opencompass/
unzip OpenCompassData-core-20231110.zip
4. 配置模型
接下来,需要配置 internlm2-chat-1.8b
模型。打开 configs/models/hf_internlm/hf_internlm2_chat_1_8b.py
文件,并粘贴以下内容:
from opencompass.models import HuggingFaceCausalLM
models = [
dict(
type=HuggingFaceCausalLM,
abbr='internlm2-1.8b-hf',
path="/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b",
tokenizer_path='/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b',
model_kwargs=dict(
trust_remote_code=True,
device_map='auto',
),
tokenizer_kwargs=dict(
padding_side='left',
truncation_side='left',
use_fast=False,
trust_remote_code=True,
),
max_out_len=100,
min_out_len=1,
max_seq_len=2048,
batch_size=8,
run_cfg=dict(num_gpus=1, num_procs=1),
)
]
5. 启动评测
评测可以通过命令行或配置文件的方式启动。
5.1 命令行方式
首先,设置一些环境变量:
export MKL_SERVICE_FORCE_INTEL=1
# 或者
export MKL_THREADING_LAYER=GNU
然后,通过以下命令启动评测:
python run.py --datasets ceval_gen --models hf_internlm2_chat_1_8b --debug
命令参数说明:
--datasets ceval_gen
: 使用ceval_gen
数据集--models hf_internlm2_chat_1_8b
: 使用配置的internlm2-chat-1.8b
模型--debug
: 以debug
模式运行,任务按顺序执行并实时打印输出
运行过程:
5.2 配置文件方式
你也可以通过配置文件的方式启动评测。首先,创建一个新的配置文件:
cd /root/opencompass/configs
touch eval_tutorial_demo.py
然后,在 eval_tutorial_demo.py
中添加以下内容:
from mmengine.config import read_base
with read_base():
from .datasets.ceval.ceval_gen import ceval_datasets
from .models.hf_internlm.hf_internlm2_chat_1_8b import models as hf_internlm2_chat_1_8b_models
datasets = ceval_datasets
models = hf_internlm2_chat_1_8b_models
接着,使用该配置文件启动评测:
cd /root/opencompass
python run.py configs/eval_tutorial_demo.py --debug
6. 观察评测结果
运行一切顺利,看到了以下结果:
这些结果展示了 internlm2-chat-1.8b
模型在 CEval
数据集的各个子集上的性能表现。