1. API评测
首先我们创建模型的配置文件,我们需要定义评测模型的类型,是OpenAISDK类型,然后是模型名称,请求地址和API等等内容。然后我们通过命令行python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug
即可一键评测对应的模型和数据集。
import os
from opencompass.models import OpenAISDKinternlm_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# 换成自己申请的APIkeykey=internlm_api_key, # API keyopenai_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, # 重试次数)
]
2. 本地评测
本地评测的model配置文件结构和API评测结构完全相同,但是参数有所不同。
from opencompass.models import HuggingFacewithChatTemplatemodels = [dict(type=HuggingFacewithChatTemplate,abbr='internlm2_5-1_8b-chat-hf',path='/share/new_models/Shanghai_AI_Laboratory/internlm2_5-1_8b-chat/',max_out_len=2048,batch_size=8,run_cfg=dict(num_gpus=1),)
]
模型配置文件结构完全相同,但是参数需要修改,type不再是SDK,而是HuggingFacewithChatTemplate
,并且对应的路径也要修改成本机地址。一些与网络请求相关的参数也不再需要。我们可以通过命令行python run.py --datasets ceval_gen --models hf_internlm2_5_1_8b_chat --debug
运行评测脚本。
我们也可以直接通过配置文件,指定模型和数据集:
from mmengine.config import read_basewith read_base():from .datasets.ceval.ceval_gen import ceval_datasetsfrom .models.hf_internlm.hf_internlm2_5_1_8b_chat import models as hf_internlm2_5_1_8b_chat_modelsdatasets = ceval_datasets
models = hf_internlm2_5_1_8b_chat_models
然后直接运行脚本即可,python run.py configs/eval_tutorial_demo.py --debug
。但是感觉还是用arg脚本更方便快捷。评测过程需要2~4小时,建议使用tmux来后台运行。