任务来源:
 ⁠​​​​​​​​‍​‬‌​​​‍​​​​​​⁠‍​​‌‬‬​‍​‌‬⁠‍L2 OpenCompass 评测书生大模型实践 - 飞书云文档

任务:

  • 使用 OpenCompass 评测 Intern-s1(C-Eval数据集) 和 InternVL(MME数据集) 并在飞书文档中详细记录到飞书文档

  • 进阶 完成 自建数据集的评测

1.OpenCompass是由上海人工智能实验室开发的开源大模型评测平台,旨在全面评估大语言模型和多模态模型的能力。

在 OpenCompass 中评估一个模型通常包括以下几个阶段:配置 -> 推理 -> 评估 -> 可视化

配置:这是整个工作流的起点。您需要配置整个评估过程,选择要评估的模型和数据集。此外,还可以选择评估策略、计算后端等,并定义显示结果的方式。

推理与评估:在这个阶段,OpenCompass 将会开始对模型和数据集进行并行推理和评估。推理阶段主要是让模型从数据集产生输出,而评估阶段则是衡量这些输出与标准答案的匹配程度。这两个过程会被拆分为多个同时运行的“任务”以提高效率,但请注意,如果计算资源有限,这种策略可能会使评测变得更慢。如果需要了解该问题及解决方案,可以参考 FAQ: 效率

可视化:评估完成后,OpenCompass 将结果整理成易读的表格,并将其保存为 CSV 和 TXT 文件。你也可以激活飞书状态上报功能,此后可以在飞书客户端中及时获得评测状态报告。

对于其他模型,请参考 configs 目录 中提供的其他示例。

2.评测环境配置

2.1开发机选择

2.2conda环境安装

conda create -n opencompass10 python=3.10
conda activate opencompass10

# 注意:一定要先 cd /root
cd /root
git clone -b 0.5.0 https://gh.llkk.cc/https://github.com/open-compass/opencompass.git opencompass
cd opencompass
pip install -e .
pip install opencompass[api]
pip install jmespath

3.评测不同类型项目

OpenCompass 支持的数据集主要包括以下三类

Huggingface 数据集: Huggingface Dataset 提供了大量的数据集,这部分数据集运行时会自动下载

ModelScope 数据集:ModelScope OpenCompass Dataset 支持从 ModelScope 自动下载数据集。

要启用此功能,请设置环境变量:export DATASET_SOURCE=ModelScope,可用的数据集包括(来源于 OpenCompassData-core.zip):humaneval, triviaqa, commonsenseqa, tydiqa, strategyqa, cmmlu, lambada, piqa, ceval, math, LCSTS, Xsum, winogrande, openbookqa, AGIEval, gsm8k, nq, race, siqa, mbpp, mmlu, hellaswag, ARC, BBH, xstory_cloze, summedits, GAOKAO-BENCH, OCNLI, cmnli

自建以及第三方数据集:OpenCompass 还提供了一些第三方数据集及自建中文数据集。运行以下命令手动下载解压

为了方便评测,我们首先将数据集下载到本地:

apt-get update && apt-get install -y unzip
cd /root/opencompass
wget https://ghfast.top/https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
unzip OpenCompassData-core-20240207.zip

将会在 OpenCompass 下看到data文件夹,里面包含的数据集如下图所示:

4.作业内容
4.1使用Intern-s1评测C-Eval 选择题

写配置脚本运行

OpenCompass 允许用户在配置文件中编写实验的完整配置脚本,并通过run.py直接运行它。

配置文件就像一个指令集,告诉评测系统用什么模型(model)测什么数据(datasets)。

用 read_base () 直接复用已有配置,不用重复编写。比如代码中通过 with read_base () 块,直接引入了 ceval 数据集和其他模型配置,再组合成当前所需的完整配置。

opencompass/opencompass/configs文件夹下创建eval_tutorial_demo1.py

cd /root/opencompass/opencompass/configs
touch eval_tutorial_demo1.py

打开eval_tutorial_demo1.py 贴入以下代码

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

# 配置模型
models = [
    dict(
        type=OpenAISDK,
        path='intern-s1',  # 明确模型名称
        key='sk-xxx',  # 你的API密钥
        openai_api_base='https://chat.intern-ai.org.cn/api/v1',  # API地址
        rpm_verbose=True,
        query_per_second=1,  # 根据 rpm 限制,进行调整.rpm==30
        max_out_len=512,
        max_seq_len=4096,
        temperature=0.01,
        batch_size=10,# 根据 rpm 限制,进行调整.rpm==30
        retry=5,  # 增加重试次数
    )
]

# 配置数据集(只取每个子数据集的1个样本)
with read_base():
    from .datasets.ceval.ceval_gen import ceval_datasets

#datasets=ceval_datasets #测试完整的数据集

# 缩小数据集规模为五个子数据集,每个子数据集仅保留10个样本,缩短测评时间
datasets = []
for d in ceval_datasets[:5]:
    # 添加前缀标识这是演示用的精简数据集
    d['abbr'] = 'demo_' + d['abbr']
    # 仅使用第1个样本(索引0)
    d['reader_cfg']['test_range'] = '[0:10]'
    datasets.append(d)
 
cd /root/opencompass
python run.py opencompass/configs/eval_tutorial_demo1.py --debug

4.2 InternVL(MME数据集)评测

VLMEvalKit是一个专为大型视觉语言模型评测设计的开源工具包。它支持在各种基准测试上对大型视觉语言模型进行一键评估,无需进行繁重的数据准备工作,使评估过程更加简便。VLMEvalKit适用于图文多模态模型的评测,支持单对图文输入或是任意数量的图文交错输入。它通过实现70多个基准测试,覆盖了多种任务,包括但不限于图像描述、视觉问答、图像字幕生成等。

VLMEvalKit的主要用途包括以下几个方面:

多模态模型评估:VLMEvalKit旨在为研究人员和开发人员提供一个用户友好且全面的框架,以评估现有的多模态模型并发布可重复的评估结果。它支持多种多模态模型和评测集,包括闭源和开源模型,以及多个多模态基准数据集。

模型性能比较:通过VLMEvalKit,用户可以轻松比较不同多模态模型在各种任务上的性能。该工具包提供了详细的评测结果,并支持将结果发布在OpenCompass的多模态整体榜单上。

便捷的一站式评测:VLMEvalKit支持一键式评测,无需手动进行数据预处理。用户只需一条命令即可完成对多个多模态模型和评测集的评测。

易于扩展:VLMEvalKit框架支持轻松添加新的多模态模型和评测集。用户可以根据需要添加新的模型或评测集,并确保原有的评测集和模型仍然适用于新的模型或评测集。

支持多种模型和评测集:VLMEvalKit支持超过三十个开源多模态模型和十余个开源多模态评测集,包括GPT-4v、GeminiPro、QwenVLPlus等主流模型和MME、MMBench、SEEDBench等评测集。

提供定量与定性结果:VLMEvalKit不仅提供定量评测结果,还支持对模型的定性分析,帮助用户了解模型在特定任务上的表现和不足之处。

环境准备

cd /root/opencompass
git clone https://gh.llkk.cc/https://github.com/open-compass/VLMEvalKit.git
conda create -n VLMEvalKit1 python=3.10
conda activate VLMEvalKit1
cd VLMEvalKit
pip install -e .  
pip install datasets

$VLMEvalKit/vlmeval/config.py文件中设置在 VLMEvalKit 中支持的 VLM 名称,以及模型路径。

如果你的电脑上面没有该模型的模型文件,则需要自己下载,然后更改模型路径,也可以不修改,在运行模型评测命令的时候会自动下载模型文件。

注:默认下载使用的是Huggingface,需要进行科学上网,也可以使用modelscope将模型下载到本地,然后更改路径。

修改VLMEvalKit/vlmeval/config.py下红框所示为

python run.py --data MME --model InternVL3_5-1B --verbose

4.3完成自建数据集的评测这里我们评测一下论文分类比赛的数据,newformat_sft_test_data.csv是A榜测试数据,将其放在/root/opencompass/newformat_sft_test_data.csv位置

 ⁠​​​​​​​​‍​‬‌​​​‍​​​​​​⁠‍​​‌‬‬​‍​‌‬⁠‍L2 OpenCompass 评测书生大模型实践 - 飞书云文档
在configs文件夹下创建eval_tutorial_demo2.py

cd /root/opencompass/opencompass/configs
touch eval_tutorial_demo2.py
from opencompass.models import OpenAISDK

# 配置模型
models = [
    dict(
        type=OpenAISDK,
        path='intern-s1',  # 明确模型名称
        key='sk-xxxx',  # 你的API密钥
        openai_api_base='https://chat.intern-ai.org.cn/api/v1',  # API地址
        rpm_verbose=True,
        query_per_second=1,  # 根据 rpm 限制,进行调整.rpm==30
        max_out_len=512,
        max_seq_len=4096,
        temperature=0.01,
        batch_size=8,# 根据 rpm 限制,进行调整.rpm==30
        retry=5,  # 增加重试次数
    )
]

# 配置数据集
datasets = [
    dict(
        path='/root/opencompass/newformat_sft_test_data.csv',
        data_type='mcq',
        infer_method='gen'
    )
]
    

运行

#在opencompass目录下
python run.py opencompass/configs/eval_tutorial_demo2.py --debug

运行结果如下

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐