首页 > 其他分享 >书生大模型实战营第四期 L1G6000 OpenCompass 评测书生大模型实践

书生大模型实战营第四期 L1G6000 OpenCompass 评测书生大模型实践

时间:2024-11-12 19:19:13浏览次数:3  
标签:opencompass 评测 api 模型 书生 API internlm OpenCompass

评测书生大模型实践

文章目录


前言

OpenCompass 提供了 API 模式评测和本地直接评测两种方式。其中 API 模式评测针对那些以 API 服务形式部署的模型,而本地直接评测则面向那些可以获取到模型权重文件的情况。
参考:https://github.com/InternLM/Tutorial/tree/camp4/docs/L1/Evaluation

评测 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 .
pip install -r requirements.txt
pip install huggingface_hub==0.25.2

更多使用说明,请参考OpenCompass 官方文档

如果你想要评测通过 API 访问的大语言模型,整个过程其实很简单。首先你需要获取模型的 API 密钥(API Key)和接口地址。以 OpenAI 的 GPT 模型为例,你只需要在 OpenAI 官网申请一个 API Key,然后在评测配置文件中设置好这个密钥和相应的模型参数就可以开始评测了。评测过程中,评测框架会自动向模型服务发送测试用例,获取模型的回复并进行打分分析。整个过程你不需要准备任何模型文件,也不用担心本地计算资源是否足够,只要确保网络连接正常即可。

考虑到 openai 的 API 服务暂时在国内无法直接使用,我们这里以评测 internlm 模型为例,介绍如何评测 API 模型。

  1. 打开网站浦语官方地址 https://internlm.intern-ai.org.cn/api/document 获得 api key 和 api 服务地址 (也可以从第三方平台 硅基流动 获取), 在终端中运行:
export INTERNLM_API_KEY=xxxxxxxxxxxxxxxxxxxxxxx # 填入你申请的 API Key
  1. 配置模型: 在终端中运行 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, # 重试次数
    )
]
  1. 配置数据集: 在终端中运行 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个样本, 方便快速评测.

这样我们使用了 CMMLU Benchmark 的每个子数据集的 1 个样本进行评测.
完成配置后, 在终端中运行: python run.py --models puyu_api.py --datasets demo_cmmlu_chat_gen.py --debug. 预计运行10分钟后, 得到结果:
运行这段代码会报错,尝试将报错的文件中导入rouge这个部分修改成rouge_chinese成功
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

标签:opencompass,评测,api,模型,书生,API,internlm,OpenCompass
From: https://blog.csdn.net/qq_30731313/article/details/143716438

相关文章

  • 在通讯领域,特别是在自由空间光通信(Free Space Optics, FSO)通道模拟中,选择合适的模型需
    在通讯领域,特别是在自由空间光通信(FreeSpaceOptics,FSO)通道模拟中,选择合适的模型需要考虑模型对动态变化的光信号传播环境的适应性和预测能力。根据搜索结果,以下是一些可能适合通讯领域FSO通道模拟的模型:TACTiS-2:这是一个灵活的多变量概率时间序列预测模型,它简化了attenti......
  • 基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数
    摘要:番茄成熟度检测在农业生产及质量控制中起着至关重要的作用,不仅能帮助农民及时采摘成熟的番茄,还为自动化农业监测提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的番茄成熟度检测模型,该模型使用了大量图片进行训练,能够准确识别不同成熟度阶段的......
  • 解锁视觉-文本双编码:CLIP类似模型的多GPU训练
    UnlockingVision-TextDual-Encoding:Multi-GPUTrainingofaCLIP-LikeModelROCmBlogs2024年4月24日,由SeanSong撰写。在本博客中,我们将构建一个类似CLIP的视觉-文本双编码器模型,并在AMDGPU上使用ROCm对其进行微调,使用COCO数据集。这项工作受到CLIP原理和HuggingF......
  • 【大模型】HuggingFace模型转一键llamafile包完整教程,通义千问成功案例分享
    随着通义千问开源版的发布,越来越多的用户希望能在本地部署这款优秀的中文大模型。然而,传统的部署方式往往需要复杂的环境配置,让很多非技术背景的用户望而却步。今天,我要向大家介绍一个革命性的方案:将通义千问转换为Llamafile格式,实现真正的一键运行!有关llamafile的特点,我......
  • threejs实现模型切换为动态漩涡
    效果预览202411120010粒子形状初始化形状由y=ln(x)绕y轴旋转而来1、确认最大圆环数n因为最小的圆环和最大的圆环相差很多倍不适合统一一样的点数组成,而是每下一个圆环比上一个圆环多一个点,这样可以让点的分布不那么极端。这样圆环会形成一个等比数列,我规定第一个最小圆......
  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行信号时域仿真操作指导(
    SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(二)-三个IBIS模型SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(一)-单个IBIS模型介绍了在单个IBIS模型的激励下,发送和接收端的电压时域波形,当三个IB......
  • 深入定制SerDes系统:通过MATLAB函数块和SerDes Toolbox中的AMI模型利用AMI参数优化数据
    深入定制SerDes系统:利用AMI参数优化数据路径控制在高速数字通信系统中,SerDes(串行/并行转换器)是最为关键的组件之一。它将大量的数据串行化,传输到另一个模块或设备,再将其还原成并行数据。随着通信标准的不断演进,诸如PCIe4、IEEE802.3等协议在数据速率、信号完整性和传输效......
  • 字节豆包发布新模型,AI 一句话 P 图;Google 正式推出 Vids,简单提示即可生成视频演示丨 R
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 网络为什么要分层:OSI模型与TCP/IP模型
    引言现代网络通信离不开分层模型的支撑,它们为数据传输提供了清晰的结构和接口。常见的网络分层模型有OSI模型和TCP/IP模型,这两者各自为网络协议栈的设计提供了指导。通过网络分层,复杂的网络通信过程被分解成多个独立的层次,每一层专注于完成特定的功能,从而使得网络协议的设计、......
  • 如何系统的从0到1学习大模型?相关书籍及课程那些比较好?非常详细收藏我这一篇就够了!
    大模型这个概念我是从去年这时候才了解到的,在不知道大模型之前,我甚至以为chatGPT和大模型就是同一个东西,是可以划等号的。直到国内的AI产品一茬又一茬的冒出来,我才在使用的过程中逐渐对大模型这个概念有了认识。而大模型是一个广泛的概念,涵盖了所有参数众多、能够执行复杂任......