前言
OpenCompass 提供了 API 模式评测 和 本地直接评测 两种方式。
- 其中 API 模式评测针对那些以 API 服务形式部署的模型
- 而本地直接评测则面向那些可以获取到模型权重文件的情况
环境准备:
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
评测 API 模型
配置 API
终端运行:
export INTERNLM_API_KEY=xxxxxxxxxxxxxxxxxxxxxxx # 填入你申请的 API Key
配置模型
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, # 重试次数
)
]
配置数据集
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个样本, 方便快速评测.
进行评测
python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug
- 运行时间预计 10 min
评测结果
参考文献
https://github.com/InternLM/Tutorial/tree/camp4/docs/L1/Evaluation