书生大模型闯关L1G6000

132 阅读2分钟

OpenCompass 评测

这个练习来学习怎么使用OpenCompass给大模型测评啦。

OpenCampass提供了 API 模式评测本地直接评测两种方式。其中 API 模式评测针对那些以 API 服务形式部署的模型,而本地直接评测则面向那些可以获取到模型权重文件的情况。

1 在开发机上创建用于评测 conda 环境:

conda create -n opencompass python=3.10
conda activate opencompass

cd /root
git clone -b 0.3.3 https://github.com/open-compass/opencompass
cd opencompass
pip install -e .
pip install -r requirements.txt
pip install huggingface_hub==0.25.2

pip install importlib-metadata

这里遇到了版本冲突的问题,解决上一个问题的时候,transformer升级了,看来升级也不都是好事儿。。。

评测 API 模型

  1. 申请浦语 AIP Key:打开网站浦语官方地址 internlm.intern-ai.org.cn/api/documen… 获得 api key 和 api 服务地址 (也可以从第三方平台 硅基流动 获取), 在终端中运行:
export INTERNLM_API_KEY=xxxxxxxxxxxxxxxxxxxxxxx # 填入你申请的 API Key

这一步是为了不让人在程序里面看到你的 API,直接写进环境里面了

  1. 配置模型: 在终端中运行 cd /root/opencompass/ 和 touch opencompass/configs/models/openai/puyu_api.py, 然后打开文件, 贴入以下代码:
import os
from opencompass.models import OpenAISDK


internlm_url = 'https://internlm-chat.intern-ai.org.cn/puyu/api/v1/' # 你前面获得的 api 服务地址
internlm_api_key = os.getenv('INTERNLM_API_KEY')

models = [
    dict(
        # abbr='internlm2.5-latest',
        type=OpenAISDK,
        path='internlm2.5-latest', # 请求服务时的 model name
        # 换成自己申请的APIkey
        key=internlm_api_key, # API key
        openai_api_base=internlm_url, # 服务地址
        rpm_verbose=True, # 是否打印请求速率
        query_per_second=0.16, # 服务请求速率
        max_out_len=1024, # 最大输出长度
        max_seq_len=4096, # 最大输入长度
        temperature=0.01, # 生成温度
        batch_size=1, # 批处理大小
        retry=3, # 重试次数
    )
]

3. 配置数据集: 在终端中运行 cd /root/opencompass/ 和 touch opencompass/configs/datasets/demo/demo_cmmlu_chat_gen.py, 然后打开文件, 贴入以下代码:

from mmengine import read_base

with read_base():
    from ..cmmlu.cmmlu_gen_c13365 import cmmlu_datasets


# 每个数据集只取前2个样本进行评测
for d in cmmlu_datasets:
    d['abbr'] = 'demo_' + d['abbr']
    d['reader_cfg']['test_range'] = '[0:1]' # 这里每个数据集只取1个样本, 方便快速评测.

这样我们使用了 CMMLU Benchmark 的每个子数据集的 1 个样本进行评测.

完成配置后, 在终端中运行: python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug. 预计运行10分钟后, 得到结果。

这要注意两件事情,是在视频中提到的但是文档中没有提到:

1, 删除项目根目录下的 config 中的相关文件,不然可能调用出错

2, 安装pip install rouge_chinese, 不然也会显示少 module

一直等啊等啊。。。终于在删除重来一顿操作后,成功啦!!!

截屏2025-02-17 01.11.11.png