当前位置: 首页 > news >正文

阿里云PAI大模型评测最佳实践

作者:施晨、之用、南茵、求伯、一耘、临在

背景信息

内容简介

在大模型时代,随着模型效果的显著提升,模型评测的重要性日益凸显。科学、高效的模型评测,不仅能帮助开发者有效地衡量和对比不同模型的性能,更能指导他们进行精准地模型选择和优化,加速AI创新和应用落地。因此,建立一套平台化的大模型评测最佳实践愈发重要。本文为PAI大模型评测最佳实践,旨在指引AI开发人员使用PAI平台进行大模型评测。借助本最佳实践,您可以轻松构建出既能反映模型真实性能,又能满足行业特定需求的评测过程,助力您在人工智能赛道上取得更好的成绩。最佳实践包括如下内容:

  • 如何准备和选择评测数据集

  • 如何选择适合业务的开源或微调后模型

  • 如何创建评测任务并选择合适的评价指标

  • 如何在单任务或多任务场景下解读评测结果

平台亮点

PAI大模型评测平台,适合您针对不同的大模型评测场景,进行模型效果对比。例如:

  • 不同基础模型对比:Qwen2-7B-Instruct vs. Baichuan2-7B-Chat

  • 同一模型不同微调版本对比:Qwen2-7B-Instruct 在私有领域数据下训练不同 epoch 版本效果对比

  • 同一模型不同量化版本对比:Qwen2-7B-Instruct-GPTQ-Int4 vs. Qwen2-7B-Instruct-GPTQ-Int8

考虑到不同开发群体的特定需求,我们将以企业开发者算法研究人员两个典型群体为例,探讨如何结合常用的公开数据集(如MMLU、C-Eval等)与企业的自定义数据集,实现更全面准确并具有针对性的模型评测,查找适合您业务需求的大模型。最佳实践的亮点如下:

  • 端到端完整评测链路,无需代码开发,支持主流开源大模型,与大模型微调后的一键评测;

  • 支持用户自定义数据集上传,内置10+通用NLP评测指标,一览式结果展示,无需再开发评测脚本;

  • 支持多个领域的常用公开数据集评测,完整还原官方评测方法,雷达图全景展示,省去逐个下载评测集和熟悉评测流程的繁杂;

  • 支持多模型多任务同时评测,评测结果图表式对比展示,辅以单条评测结果详情,方便全方位比较分析;

  • 评测过程公开透明,结果可复现。评测代码开源在与ModelScope共建的开源代码库eval-scope中,方便细节查看与复现:GitHub - modelscope/eval-scope: A streamlined and customizable framework for efficient large model evaluation and performance benchmarking

前提条件

  • 已开通PAI并创建了默认工作空间。具体操作,请参见开通PAI并创建默认工作空间。

  • 如果选择自定义数据集评测,需要创建OSS Bucket存储空间,用来存放数据集文件。具体操作,请参见控制台创建存储空间。

使用费用

  • PAI大模型评测依托于PAI-快速开始产品。快速开始是PAI产品组件,集成了众多AI开源社区中优质的预训练模型,并且基于开源模型支持零代码实现从训练到部署再到推理的全部过程,给您带来更快、更高效、更便捷的AI应用体验。

  • 快速开始本身不收费,但使用快速开始进行模型评测时,可能产生DLC评测任务费用,计费详情请参见DLC计费说明。

  • 如果选择自定义数据集评测,使用OSS存储,会产生相关费用,计费详情请参见OSS计费概述。

场景一:面向企业开发者的自定义数据集评测

企业通常会积累丰富的私有领域数据。如何充分利用好这部分数据,是企业使用大模型进行算法优化的关键。因此,企业开发者在评测开源微调后的大模型时,往往会基于私有领域下积累的自定义数据集,以便于更好地了解大模型在私有领域的效果。对于自定义数据集评测,我们使用NLP领域标准的文本匹配方式,计算模型输出结果和真实结果的匹配度,值越大,模型越好。使用该评测方式,基于自己场景的独特数据,可以评测所选模型是否适合自己的场景。以下将重点展示使用过程中的一些关键点,更详细的操作细节,请参见模型评测产品文档。

1. 准备自定义评测集

1.1. 自定义评测集格式
  • 基于自定义数据集进行评测,需要提供JSONL格式的评测集文件

  • 文件格式:使用question标识问题列,answer标识答案列。

  • 文件示例:📎llmuses_general_qa_test.jsonl

[{"question": "中国发明了造纸术,是否正确?", "answer": "正确"}][{"question": "中国发明了火药,是否正确?", "answer": "正确"}]

  • 符合格式要求的评测集,可自行上传至OSS,并创建自定义数据集,详情参见上传OSS文件和创建及管理数据集。

1.2. 创建自定义评测集
  1. 登录PAI控制台。

  2. 在左侧导航栏选择AI资产管理>数据集,进入数据集页面

  3. 单击创建数据集

  4. 填写创建数据集相关表单,从OSS中选择您的自定义评测集文件

2. 选择适合业务的模型

2.1. 查找开源模型
  1. 在PAI控制台左侧导航栏选择快速开始,进入快速开始页面

  2. 单击快速开始提供的模型分类信息,直接进入到模型列表中,根据模型描述信息进行查看。

    3.单击进入模型详情页后,对于可评测的模型,会展示评测按钮。

    4.支持模型类型:当前模型评测支持HuggingFace所有AutoModelForCausalLM类型的模型

2.2. 使用微调后的模型
  1. 使用快速开始进行模型微调,详细步骤请参见模型部署及训练

  2. 微调完成后,在快速开始>任务管理>训练任务中,单击训练好的任务名称,进入任务详情页后,对于可评测的模型,右上角会展示评测按钮。

3. 创建评测任务

  1. 在模型详情页右上角单击评测,创建评测任务

  2. 新建评测任务页面,配置以下关键参数。

  3. 任务创建成功后,将自动分配资源,并开始运行。

  4. 运行完成后,任务状态显示为已成功。

4. 查看评测结果

4.1. 评测任务列表
  1. 快速开始页面,单击搜索框左侧的任务管理

  2. 任务管理页面,选择模型评测标签页。

4.2. 单任务结果
  1. 模型评测列表页,单击评测任务的查看报告选项,即可进入评测任务详情页

  2. 评测报告如下图所示,选择自定义数据集评测结果,将在雷达图展示该模型在ROUGE和BLEU系列指标上的得分。此外还会展示评测文件每条数据的评测详情。

自定义数据集的默认评测指标包括:rouge-1-f,rouge-1-p,rouge-1-r,rouge-2-f,rouge-2-p,rouge-2-r,rouge-l-f,rouge-l-p,rouge-l-r,bleu-1,bleu-2,bleu-3,bleu-4。

  • rouge-n类指标计算N-gram(连续的N个词)的重叠度,其中rouge-1和rouge-2是最常用的,分别对应unigram和bigram,rouge-l 指标基于最长公共子序列(LCS)。

  • bleu (Bilingual Evaluation Understudy) 是另一种流行的评估机器翻译质量的指标,它通过测量机器翻译输出与一组参考翻译之间的N-gram重叠度来评分。其中bleu-n指标计算n-gram的匹配度。

        3.最终评测结果会保存到您指定的OSS路径中

4.3. 多任务对比
  1. 当需要对比多个模型的评测结果时,可以将它们聚合在一个页面上展示,以便于比较效果。

  2. 具体操作为在模型评测任务列表页,左侧选择想要对比的模型评测任务,右上角单击对比,进入对比页面。

  3. 自定义数据集评测对比结果

场景二:面向算法研究人员的公开数据集评测

算法研究通常建立在公开数据集上。研究人员在选择开源模型,或对模型进行微调后,都会参考其在权威公开数据集上的评测效果。然而,大模型时代的公开数据集种类繁多,研究人员需要花费大量时间调研选择适合自己领域的公开数据集,并熟悉每个数据集的评测流程。为方便算法研究人员,PAI接入了多个领域的公开数据集,并完整还原了各个数据集官方指定的评测metrics,以便获取最准确的评测效果反馈,助力更高效的大模型研究。在公开数据集评测中,我们通过对开源的评测数据集按领域分类,对大模型进行综合能力评估,例如数学能力、知识能力、推理能力等,值越大,模型越好,这种评测方式也是大模型领域最常见的评测方式。以下将重点展示使用过程中的一些关键点,更详细的操作细节,请参见模型评测产品文档。

1. 支持的公开数据集

  • 目前PAI维护的公开数据集包括MMLU、TriviaQA、HellaSwag、GSM8K、C-Eval、CMMLU、TruthfulQA,其他公开数据集陆续接入中。

2. 选择适合的模型

2.1. 查找开源模型
  1. 在PAI控制台左侧导航栏选择快速开始,进入快速开始页面

  2. 单击快速开始提供的模型分类信息,直接进入到模型列表中,根据模型描述信息进行查看。

        3.单击进入模型详情页后,对于可评测的模型,会展示评测按钮。

        4.支持模型类型:当前模型评测支持HuggingFace所有AutoModelForCausalLM类型的模型

2.2. 使用微调后的模型
  1. 使用快速开始进行模型微调,详细步骤请参见模型部署及训练

  2. 微调完成后,在快速开始>任务管理>训练任务中,单击训练好的任务名称,进入任务详情页后,对于可评测的模型,右上角会展示评测按钮。

3. 创建评测任务

  1. 在模型详情页右上角单击评测,创建评测任务

  2. 新建评测任务页面,配置以下关键参数。本文以MMLU数据集为例。

  3. 任务创建成功后,将自动分配资源,并开始运行。

  4. 运行完成后,任务状态显示为已成功。

4. 查看评测结果

4.1. 评测任务列表
  1. 快速开始页面,单击搜索框左侧的任务管理

  2. 任务管理页面,选择模型评测标签页。

4.2. 单任务结果
  1. 模型评测列表页,单击评测任务的查看报告选项,即可进入评测任务详情页

  2. 评测报告如下图所示,选择公开数据集评测结果,将在雷达图展示该模型在公开数据集上的得分。

  • 左侧图片展示了模型在不同领域的得分情况。每个领域可能会有多个与之相关的数据集,对属于同一领域的数据集,我们会把模型在这些数据集上的评测得分取均值,作为领域得分。

  • 右侧图片展示模型在各个公开数据集的得分情况。每个公开数据集的评测范围详见该数据集官方介绍。

        3.最终评测结果会保存到您指定的OSS路径中

4.3. 多任务对比
  1. 当需要对比多个模型的评测结果时,可以将它们在聚合在一个页面上展示,以便于比较效果。

  2. 具体操作为在模型评测任务列表页,左侧选择想要对比的模型评测任务,右上角单击对比,进入对比页面。

  3. 公开数据集评测对比结果

相关文章:

阿里云PAI大模型评测最佳实践

作者:施晨、之用、南茵、求伯、一耘、临在 背景信息 内容简介 在大模型时代,随着模型效果的显著提升,模型评测的重要性日益凸显。科学、高效的模型评测,不仅能帮助开发者有效地衡量和对比不同模型的性能,更能指导他…...

应用图扑 HT for Web 搭建拓扑关系图

拓扑结构在计算机网络设计和通信领域中非常重要,因为它描述了网络中的设备(即“点”)如何相互连接(即通过“线”)。这种结构不仅涉及物理布局,即物理拓扑,还可以涉及逻辑或虚拟的连接方式&#…...

Django Aggregation 使用指南

Django Aggregation 使用指南 在构建Django应用时,我们经常需要对数据库中的数据进行汇总或聚合操作。例如,计算某个字段的平均值、最大值或最小值。这篇文章将详细介绍如何在Django中使用聚合查询,并结合实例进行说明。 聚合查询简介 Dja…...

嵌入式学习——Linux操作系统——文件编程练习

1.使用fread和fwrite方式完成任意普通文件的拷贝功能。 模拟 文件下载 #include <stdio.h>void do_copy(FILE *fp_s,FILE *fp_d) {char buf[100] {0};int ret;while (ret fread(buf,sizeof(char),sizeof(buf),fp_s))fwrite(buf,sizeof(char),ret,fp_d); }//./a.out sr…...

用JavaScript实现了一个简单的图像坐标点标注工具

这段代码实现了一个简单的图像标注工具&#xff0c;允许用户在加载的图像上进行点选标注&#xff0c;并且通过右键确认一个点序列来形成一个多边形。 标注效果如下 实现代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"U…...

Pytorch深度解析:Transformer嵌入层源码逐行解读

前言 本部分博客需要先阅读博客&#xff1a; 《Transformer实现以及Pytorch源码解读&#xff08;一&#xff09;-数据输入篇》 作为知识储备。 Embedding使用方式 如下面的代码中所示&#xff0c;embedding一般是先实例化nn.Embedding(vocab_size, embedding_dim)。实例化的…...

HSP_10章 Python面向对象编程oop_基础部分

文章目录 P107 类与实例的关系1.类与实例的关系示意图2.类与实例的代码分析 P109 对象形式和传参机制1. 类与对象的区别和联系2. 属性/成员变量3. 类的定义和使用4. 对象的传递机制 P110 对象的布尔值P111 成员方法1. 基本介绍2. 成员方法的定义和基本使用3.注意事项和使用细节…...

JavaWeb系列十七: jQuery选择器 上

jQuery选择器 jQuery基本选择器jquery层次选择器基础过滤选择器内容过滤选择器可见度过滤选择器 选择器是jQuery的核心, 在jQuery中, 对事件处理, 遍历 DOM和Ajax 操作都依赖于选择器jQuery选择器的优点 $(“#id”) 等价于 document.getElementById(“id”);$(“tagName”) 等价…...

Gone框架介绍30 - 使用`goner/gin`提供Web服务

gone是可以高效开发Web服务的Golang依赖注入框架 github地址&#xff1a;https://github.com/gone-io/gone 文档地址&#xff1a;https://goner.fun/zh/ 使用goner/gin提供Web服务 文章目录 使用goner/gin提供Web服务注册相关的Goners编写Controller挂载路由路由处理函数io.Rea…...

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据&#xff0c;优化了分类算法&#xff0c;支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类&#xff1b;一键生成危险点报告和交跨报告&#xff1b;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:289…...

STM32学习之一:什么是STM32

目录 1.什么是STM32 2.STM32命名规则 3.STM32外设资源 4. STM32的系统架构 5. 从0到1搭建一个STM32工程 学习stm32已经很久了&#xff0c;因为种种原因&#xff0c;也有很久一段时间没接触过stm32了。等我捡起来的时候&#xff0c;发现很多都已经忘记了&#xff0c;重新捡…...

AI绘画Stable Diffusion 超强一键去除图片中的物体,免费使用!

大家好&#xff0c;我是设计师阿威 在生成图像时总有一些不完美的小瑕疵&#xff0c;比如多余的物体或碍眼的水印&#xff0c;它们破坏了图片的美感。但别担心&#xff0c;今天我们将介绍一款神奇的工具——sd-webui-cleaner&#xff0c;它可以帮助我们使用Stable Diffusion轻…...

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据…...

Github上前十大开源Rust项目

在github上排名前十的Rust开源项目整理出来与大家共享&#xff0c;以当前的Star数为准。 Deno Deno 是 V8 上的安全 TypeScript 运行时。Deno 是一个建立在V8、Rust和Tokio之上的 JavaScript、TypeScript 和 WebAssembly 的运行时环境&#xff0c;具有自带安全的设置和出色的开…...

硬件开发笔记(二十):AD21导入外部下载的元器件原理图库、封装库和3D模型

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139707771 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

竞赛选题 python opencv 深度学习 指纹识别算法实现

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python opencv 深度学习 指纹识别算法实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;4分创新点&#xff1a;4分 该项目较为新颖…...

RK3568开发笔记(三):瑞芯微RK3588芯片介绍,入手开发板的核心板介绍

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139905873 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

EtherCAT主站IgH解析(二)-- 如何将Igh移植到Linux/Windows/RTOS等多操作系统

版权声明&#xff1a;本文为本文为博主原创文章&#xff0c;转载请注明出处 https://www.cnblogs.com/wsg1100 如有错误&#xff0c;欢迎指正。 本文简单介绍如何将 igh 移植到 zephyr、freertos、rtems、rtthread等RTOS &#xff0c;甚至 windows 上。 ##前言 目前&#xff0…...

ansible copy模块参选选项

copy模块用于将文件从ansible控制节点&#xff08;管理主机&#xff09;或者远程主机复制到远程主机上。其操作类似于scp&#xff08;secure copy protocol&#xff09;。 关键参数标红。 参数&#xff1a; src:&#xff08;source&#xff1a;源&#xff09; 要复制到远程…...

展厅设计主要的六大要素

1、从创意开始 展示设计的开始必须创意在先。根据整体的风格思路进行创意&#xff0c;首先要考虑的是主体的造型、大小高度位置以及它和周围展厅的关系。另外其他道具设计制作与运作方式也必须在创意中有明确的体现。 2、平面感 平面感是指对展示艺术设计平面图纸审美和功能两个…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...