🛠️ 安装指南

版本:0.3.7

下面提供了快速安装和数据集准备的步骤。

💻 环境搭建

强烈建议使用 conda 来管理您的 Python 环境。

  • 创建虚拟环境
    conda create --name opencompass python=3.10 -y
    conda activate opencompass
    
  • 通过pip安装OpenCompass
    # 支持绝大多数数据集及模型
    pip install -U opencompass
    
    # 完整安装(支持更多数据集)
    # pip install "opencompass[full]"
    
    # 模型推理后端,由于这些推理后端通常存在依赖冲突,建议使用不同的虚拟环境来管理它们。
    # pip install "opencompass[lmdeploy]"
    # pip install "opencompass[vllm]"
    
    # API 测试(例如 OpenAI、Qwen)
    # pip install "opencompass[api]"
    

📂 数据准备

提前离线下载

OpenCompass支持使用本地数据集进行评测,数据集的下载和解压可以通过以下命令完成:

# 下载数据集到 data/ 处
wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
unzip OpenCompassData-core-20240207.zip

使用本地机器vllm部署的qwen api测试ceval

由于兼容openai接口,因此使用openai接口的测试脚本,修改对应的key以及url地址即可。在config下新建一个脚本,用opencompass运行即可。

from mmengine.config import read_base
from opencompass.models import OpenAI
from opencompass.partitioners import NaivePartitioner
from opencompass.runners.local_api import LocalAPIRunner
from opencompass.tasks import OpenICLInferTask

with read_base():
    from opencompass.configs.summarizers.medium import summarizer
    from opencompass.configs.datasets.ceval.ceval_gen import ceval_datasets

datasets = [
    *ceval_datasets,
]

# api_meta_template = dict(
#     round=[
#             dict(role='HUMAN', api_role='HUMAN'),
#             dict(role='BOT', api_role='BOT', generate=True),
#     ],
# )

models = [
    dict(abbr='gpt-3.5-turbo',
        type=OpenAI, path='gpt-3.5-turbo',
        key='自己vllm的密钥',  # The key will be obtained from $OPENAI_API_KEY, but you can write down your key here as well
        openai_api_base="http://vllm部署机器的ip和port/v1/chat/completions",
        # meta_template=api_meta_template,
        query_per_second=1,
        max_out_len=2048, max_seq_len=4096, batch_size=8),
]

infer = dict(
    partitioner=dict(type=NaivePartitioner),
    runner=dict(
        type=LocalAPIRunner,
        max_num_workers=1,
        concurrent_users=1,
        task=dict(type=OpenICLInferTask)),
)

work_dir = 'outputs/api_qwen2_72b_int_local/'

自建数据集测试

有标准数据集,不同内容的

以蚂蚁的相似对数据集afqmc为样例,之前是默认从远程端集下载数据集来评测,那么我只想测试几条其他类型数据,比如历史方面的,怎么办呢?

step1

首先在opencompass包的configs位置下面对应的格式数据集包中新建一个demo.py文件,方便我们后续在本地的configs文件中引用。比如我的位置就在/root/miniconda3/envs/opencompass/lib/python3.10/site-packages/opencompass/configs/datasets/CLUE_afqmc/CLUE_afqmc_gen_demo.py,如果找不到安装的包位置的话,可以通过下面的脚本代码找到:

import site
print(site.getsitepackages())

step2

接着在CLUE_afqmc_gen_demo.pyCLUE_afqmc_gen_demo.py中将对应的云端下载路径,改成本地路径即可:

afqmc_datasets = [
    dict(
        type=AFQMCDatasetV2,
        abbr='afqmc-dev-demo',
        local_mode=True,
        path='./data/CLUE/AFQMC/dev_demo.json',
        reader_cfg=afqmc_reader_cfg,
        infer_cfg=afqmc_infer_cfg,
        eval_cfg=afqmc_eval_cfg),
]

step3

将之前编写的测试脚本中导入的数据集替换成自己写的数据集即可:

    # from opencompass.configs.datasets.CLUE_afqmc.CLUE_afqmc_gen import afqmc_datasets
    from opencompass.configs.datasets.CLUE_afqmc.CLUE_afqmc_gen_demo import afqmc_datasets

step4

运行测试脚本opencompass ./configs/my_api/local_dataset_example.py,成功的话终端会打印出:

请添加图片描述

等运行结束,就可以去测试脚本指定的out对应文件看对应预测结果和预测指标了。

预测文件保存格式如下:
请添加图片描述

最终模型在demo测试集上的结果为:

请添加图片描述

参考资料

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐