首页 > 其他分享 >nternLM Camp4 L1G600 OpenCompass 评测书生大模型实践

nternLM Camp4 L1G600 OpenCompass 评测书生大模型实践

时间:2024-11-16 15:49:00浏览次数:3  
标签:nternLM api L1G600 py models opencompass chat -- OpenCompass

本任务需要使用30%A100开发机

文章目录


前言

本博客是第四期书生大模型实战营基础岛的第六个大任务。利用OpenCompass对书生大模型进行 API 模式评测和本地直接评测。


一、使用 OpenCompass 评测浦语 API

1.环境配置

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

环境配置

2.模型配置

cd /root/opencompass/
touch opencompass/configs/models/openai/puyu_api.py

然后打开文件(注意是 /root/opencompass/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, # 重试次数
    )
]

API配置

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个样本, 方便快速评测.
    

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

注意,我们修改的代码的路径是/root/opencompass/opencompass/configs/datasets/demo/demo_cmmlu_chat_gen.py,但存在另外一个文件/root/opencompass/configs/datasets/demo/demo_cmmlu_chat_gen.py。为避免引起后续运行时的误解,将/root/opencompass/configs/datasets/demo/demo_cmmlu_chat_gen.py删除。
在这里插入图片描述

4.运行评测

完成配置后, 在终端中运行:

export INTERNLM_API_KEY=xxxxxxxxxxxxxxxxxxxxxxx # 填入你申请的 API Key
python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug

报错
发现报错,没有 importlib_metadata包。pip install importlib_metadata
报错2
继续报错,没有rouge包。这是因为默认的rouge和rouge-chinese版本不匹配。

pip uninstall rouge
pip install rouge==1.0.1

API评测结果
成功进行浦语API评测。可以到保存路径查看结果保存的文件。

二、评测本地模型

1.环境配置

cd /root/opencompass
conda activate opencompass
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y
apt-get update
apt-get install cmake
pip install protobuf==4.25.3
pip install huggingface-hub==0.23.2
pip install transformers==4.39.3

环境配置

2.数据集下载

cp /share/temp/datasets/OpenCompassData-core-20231110.zip /root/opencompass/
unzip OpenCompassData-core-20231110.zip

数据集拷贝到本地
数据集拷贝

3.加载本地模型进行评测

打开 opencompass 文件夹configs/models/hf_internlm/的 hf_internlm2_5_1_8b_chat.py 文件, 修改如下:

from opencompass.models import HuggingFacewithChatTemplate

models = [
    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),
    )
]

# python run.py --datasets ceval_gen --models hf_internlm2_5_1_8b_chat --debug

模型配置修改
运行命令

python run.py --datasets ceval_gen --models hf_internlm2_5_1_8b_chat --debug

报错1
报错:ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
这里是因为numpy版本问题。经测试numpy 1.26.1版本有效。

pip uninstall numpy
pip install numpy==1.26.1

本地模型评估

三、将本地模型通过部署成API服务再评测

首先打开一个终端, 安装和部署模型:

pip install lmdeploy==0.6.1 openai==1.52.0

lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2_5-1_8b-chat/ --server-port 23333

lmdeploy部署

创建配置脚本 /root/opencompass/configs/models/hf_internlm/hf_internlm2_5_1_8b_chat_api.py

from opencompass.models import OpenAI

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

models = [
    dict(
        abbr='InternLM-2.5-1.8B-Chat',
        type=OpenAI,
        path='/share/new_models/Shanghai_AI_Laboratory/internlm2_5-1_8b-chat/', # 注册的模型名称
        key='sk-123456',
        openai_api_base='http://0.0.0.0:23333/v1/chat/completions', 
        meta_template=api_meta_template,
        query_per_second=1,
        max_out_len=2048,
        max_seq_len=4096,
        batch_size=8),
]
opencompass --models hf_internlm2_5_1_8b_chat_api --datasets ceval_gen --debug # opencompass 命令基本等价于 python run.py 命令

在这里插入图片描述


标签:nternLM,api,L1G600,py,models,opencompass,chat,--,OpenCompass
From: https://blog.csdn.net/weixin_51617262/article/details/143806126

相关文章

  • 书生实战营第四期-基础岛第六关-OpenCompass 评测书生大模型实践
    基础任务一、使用OpenCompass评测浦语API 1、创建用于评测conda环境condacreate-nopencompasspython=3.10condaactivateopencompasscd/rootgitclone-b0.3.3https://github.com/open-compass/opencompasscdopencompasspipinstall-e.pipinstall......
  • 书生大模型实战营第四期 L1G6000 OpenCompass 评测书生大模型实践
    评测书生大模型实践文章目录评测书生大模型实践前言评测API模型前言OpenCompass提供了API模式评测和本地直接评测两种方式。其中API模式评测针对那些以API服务形式部署的模型,而本地直接评测则面向那些可以获取到模型权重文件的情况。参考:https://github.......
  • OpenCompass: 全面评估大语言模型的开源平台
    opencompassOpenCompass:全面评估大语言模型的开源平台OpenCompass是一个功能强大、灵活易用的大语言模型(LLM)评估平台,由上海人工智能实验室开发并开源。它支持对100多个数据集上的广泛模型进行全面评估,为研究人员和开发者提供了一个统一的评估框架。主要特点多样化模型支......
  • day9[探索 InternLM 模型能力边界]
    BadCase1:模型服务来源https://opencompass.org.cn/arena您的输入10月中旬去北京穿什么衣服模型Ainternlm2.5-20b-chat模型BDoubao-pro-32k/240828(字节豆包)模型A输出||模型B输出|||其他补充|xxxx|BadCase2:模型服务来......
  • day8[OpenCompass 评测 InternLM-1.8B 实践]
    环境配置创建开发机和conda环境数据准备评测数据集启动评测(10%A1008GB资源)使用命令行配置参数法进行评测评测完成后,将会看到:......
  • 【基础岛·第6关】OpenCompass 评测 InternLM-1.8B 实践
    目录1.概览2.环境配置2.1创建开发机和conda环境2.2安装——面向GPU的环境安装3.数据准备3.1评测数据集3.2InternLM和ceval相关的配置文件4.启动测评4.1使用命令行配置参数法进行评测4.2使用配置文件修改参数法进行评测1.概览在OpenCompass中评估一个模型通常包括......
  • opencompass评测InternLM1.8B
    1配置opencompass环境gitclone-b0.2.4https://github.com/open-compass/opencompasspipinstall-e.-ihttps://mirrors.163.com/pypi/simple/pipinstall-rrequirements.txt-ihttps://mirrors.163.com/pypi/simple/pipinstallprotobuf-ihttps://mirrors.163.c......
  • InternLM 大模型实战营笔记-7
    基础岛第5关XTuner微调个人小助手认知目的:用internlm2-chat-1_8b模型,通过QLoRA的方式来微调一个自己的小助手1.微调前的模型对话进行端口映射,XXXXX是自己开发机的端口ssh-CNg-L8501:127.0.0.1:[email protected]激活环境,运行Stream......
  • OpenCompass 评测 InternLM-1.8B 实践
    1.进入https://opencompass.org.cn/home,点击在线测评,创建在线测评2.选择internlm2-chat-1.8b模型,与MMLU数据集,开始测评3.查看测评结果......
  • OpenCompass - 大模型评测
    文章目录一、关于OpenCompass概览组成评测对象工具架构能力维度设计思路通用能力学科综合能力知识能力推理能力理解能力语言能力安全能力评测方法客观评测主观评测(即将发布)特点路线图......