首页 > 其他分享 >【书生浦语大模型实战营四期】基础岛 第6关 OpenCompass 评测书生大模型实践

【书生浦语大模型实战营四期】基础岛 第6关 OpenCompass 评测书生大模型实践

时间:2024-11-20 14:45:47浏览次数:3  
标签:opencompass models 模型 书生 -- OpenCompass dict install import

基础任务

评测 API 模型

创建用于评测 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 .

在这里插入图片描述
填写API KEY

export INTERNLM_API_KEY=xxxxxxxxxxxxxxxxxxxxxxx # 填入你申请的 API Key

在这里插入图片描述
配置模型:
在这里插入图片描述
在这里插入图片描述

配置数据集
在这里插入图片描述
运行

python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug .

在这里插入图片描述

评测本地模型

安装相关软件包:

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

将数据集下载到本地

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

在这里插入图片描述
加载本地模型进行评测
在这里插入图片描述
在这里插入图片描述
启动评估

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

运行结果:
在这里插入图片描述

问题1:'torch’ has no attribute ‘float8_e4m3fnuz’
解决方法:降低transformers版本 pip install transformers== 4.39.3
问题2:ModuleNotFoundError: No module named ‘rouge’
解决方法:pip uninstall rouge 之后再次安装 pip install rouge==1.0.1
问题3:ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
解决方法:降低numpy版本pip install numpy==1.21
同时还可能出现一些包缺失的问题,pip安装即可

进阶任务

主观评测

配置文件

cd /root/opencompass/configs/
touch eval_zhuguan_demo.py

贴入以下代码:

from mmengine.config import read_base

with read_base():
    from opencompass.configs.datasets.subjective.alignbench.alignbench_judgeby_critiquellm import alignbench_datasets
from opencompass.models import HuggingFacewithChatTemplate, OpenAISDK
from opencompass.partitioners import NaivePartitioner, SizePartitioner
from opencompass.partitioners.sub_naive import SubjectiveNaivePartitioner
from opencompass.partitioners.sub_size import SubjectiveSizePartitioner
from opencompass.partitioners.sub_num_worker import SubjectiveNumWorkerPartitioner
from opencompass.runners import LocalRunner
from opencompass.runners import SlurmSequentialRunner
from opencompass.tasks import OpenICLInferTask
from opencompass.tasks.subjective_eval import SubjectiveEvalTask
from opencompass.summarizers import SubjectiveSummarizer


api_meta_template = dict(
    round=[
        dict(role='HUMAN', api_role='HUMAN'),
        dict(role='BOT', api_role='BOT', generate=True),
    ]
)
    
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),
    )
]


datasets = [*alignbench_datasets]


infer = dict(
    partitioner=dict(type=NaivePartitioner),
    runner=dict(type=LocalRunner, max_num_workers=16, task=dict(type=OpenICLInferTask)),
)


judge_models = [dict(
    type=OpenAISDK,
    path='qwen-turbo',# 填写用来评估的模型名称
    key='sk-xxxxxxxxxxxxxxxxxxxxxxx',  # 填入你的 API Key
    openai_api_base='https://dashscope.aliyuncs.com/compatible-mode/v1',
    meta_template=api_meta_template,
    query_per_second=16,
    max_out_len=2048,
    max_seq_len=2048,
    batch_size=8,
    temperature=0,
)]

eval = dict(
    partitioner=dict(type=SubjectiveNaivePartitioner, models=models, judge_models=judge_models,),
    runner=dict(type=LocalRunner, max_num_workers=16, task=dict(type=SubjectiveEvalTask)),
)

summarizer = dict(type=SubjectiveSummarizer, function='subjective')
work_dir = 'outputs/subjective/'

OpenAI APIkey部分如果没有或者不想购买会员的,可以其他,诸如Claude、Llama、通义千问等的API来替代,我这里就用了qwen-turbo,但这个是用于评判的模型,尽可能选用性能好的大模型。

更多详情可以看主观评测指引,以及configs文件夹下的eval_subjective.py文件

运行

cd /root/opencompass/
python run.py configs/eval_zhuguan_demo.py --debug

运行时间比较长,大概要2小时左右
结果如下
在这里插入图片描述
打开最后运行输出的文件如下:
在这里插入图片描述
在这里插入图片描述

将本地模型通过部署成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

在这里插入图片描述
新开一个终端创建一个python文件,插入以下代码
在这里插入图片描述
运行结果如下:
在这里插入图片描述
创建配置脚本/root/opencompass/configs/models/hf_internlm/hf_internlm2_5_1_8b_chat_api.py
在这里插入图片描述
运行脚本

opencompass --models hf_internlm2_5_1_8b_chat_api --datasets ceval_gen --debug

运行结果
在这里插入图片描述

标签:opencompass,models,模型,书生,--,OpenCompass,dict,install,import
From: https://blog.csdn.net/AtomChan/article/details/143735098

相关文章

  • litellm - 简化大模型 API 调用的工具
    更多AI开源软件:AI开源-小众AIhttps://www.aiinn.cn/sources11000Stars1300Forks445Issues275贡献者MITLicensePython语言代码:GitHub-BerriAI/litellm:PythonSDK,ProxyServer(LLMGateway)tocall100+LLMAPIsinOpenAIformat-[Bedrock,Azur......
  • Lora里面说大模型参数是over-parametrized(过参数的),什么是over-parametrized?(另附相关概
    诸神缄默不语-个人CSDN博文目录本文会介绍over-parametrized(过参数化)、doubledescent、bias-variancetrade-off概念。主要是我在看Lora论文的过程中看到了“over-parametrized”这个概念,所以写一篇关于这个概念的博文。文章目录1.over-parametrized2.doubledesce......
  • 【MATLAB代码】基于IMM(Interacting Multiple Model)算法的目标跟踪,所用模型:CV、CA、CT
    文章目录3个模型的IMM(代码简介)源代码运行结果代码介绍总结3个模型的IMM(代码简介)本MATLAB代码实现了基于IMM(InteractingMultipleModel)算法的目标跟踪。它使用三种不同的运动模型(匀速直线运动、左转弯和右转弯)来预测目标的位置,并通过卡尔曼滤波进行状态估计。源代......
  • 第一次指令微调大模型记录
    制作数据集fromsklearn.metricsimportaccuracy_score,f1_scorefromsklearn.linear_modelimportLogisticRegressionimportdatasetsimportnumpyasnpimporttorchfromllm2vecimportLLM2Vecfromhuggingface_hubimportloginimportos#/root/data/kczx/cac......
  • 大模型在软件测试中的应用论讨
    作者:京东物流张媛1、大模型的概念大模型是指具有大规模参数和复杂计算结构的机器学习模型。这些模型通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数。大模型的设计目的是为了提高模型的表达能力和预测性能,能够处理更加复杂的任务和数据。大模型在各种领域都有广泛的应......
  • 大模型任务拆解方法
    在使用大型语言模型时,合理地拆解任务可以显著提升模型的回答质量。比如:下面这个Prompt会比直接问“如何解决共享单车问题”要好很多。首先,列出在城市中推广共享单车需要解决的主要问题;然后,针对每个问题提出可能的解决方案。那如何把大任务拆成大模型可以做的小任务?一、拆......
  • 【拥抱AI】大模型文本质量的高级评估方法详解
    在文本生成任务中,高级评估方法旨在更深入地评估生成文本的质量,不仅仅是基于表面的相似度指标,而是从语义、语法、情感等多个维度进行全面评估。以下是一些常用的高级评估方法及其详细讲解。1.语义相似度评估1.1BERT和Sentence-BERT背景:BERT(BidirectionalEncoderRepr......
  • 加载3d模型
    varwidth=$('#models-container').width();varheight=$('#models-container').height();varscene=newTHREE.Scene();varcamera=newTHREE.PerspectiveCamera(45,width/(height-4),0.1,1000);camera.position.set(30,40,30);......
  • 利用 TensorFlow Profiler:在 AMD GPU 上优化 TensorFlow 模型
    TensorFlowProfilerinpractice:OptimizingTensorFlowmodelsonAMDGPUs—ROCmBlogs简介TensorFlowProfiler是一组旨在衡量TensorFlow模型执行期间资源利用率和性能的工具。它提供了关于模型如何与硬件资源交互的深入见解,包括执行时间和内存使用情况。TensorFl......
  • 使用 ROCm 在 AMD GPU 上微调和测试前沿的语音模型
    Fine-tuningandTestingCutting-EdgeSpeechModelsusingROCmonAMDGPUs—ROCmBlogsAI语音代理或语音机器人是通过使用口头语言与人交流而设计的。语音机器人通常用于客户服务和个人助手应用,并有可能进入并革命性地改变人们与技术互动的几乎每个方面,这些方面可以从......