阿里云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. 公开数据集评测对比结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/354653.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出Git原理与Gitflow流程

1 Git原理 版本控制系统在软件开发和团队协作中扮演着至关重要的角色。它们帮助开发人员跟踪和管理代码的变化,协调多人同时编辑同一代码库,回溯历史版本,并解决代码冲突等问题。Git作为当今最流行的分布式版本控制系统,为开发人…

刷代码随想录有感(109):动态规划——01背包问题|一和零

题干&#xff1a; 代码 : class Solution { public:int findMaxForm(vector<string>& strs, int m, int n) {vector<vector<int>>dp(m 1, vector<int>(n 1, 0));dp[0][0] 0;for(string i : strs){int oneNum 0;int zeroNum 0;for(char c : i…

Web渗透:XSS-反射型存储型

跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;XSS&#xff09;是一种常见的网络安全漏洞&#xff0c;它允许攻击者将恶意脚本注入到网页中&#xff0c;其他用户在浏览这些页面时&#xff0c;可能会执行这些恶意脚本&#xff0c;从而导致各种安全问题&#xff0c;如…

innovus:如何设置timing报告格式

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 在flow中添加如下设置即可设置好timing report的格式。 set report_timing_format [list timing_point arc net cell fanout load slew incr_delay delay arrival total_derate…

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的&#xff1a;应用MarkupExtention定义IValueConverter&#xff0c;使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …

高考志愿选专业,文科生如何分析选择专业?

每到高考时节&#xff0c;学生们最关注的就是专业选择&#xff0c;以及未来职业发展问题&#xff0c;对于文科生来说&#xff0c;面对文科专业的众多选择&#xff0c;很多人都有些不知所措&#xff0c;如何选择适合自己兴趣爱好&#xff0c;又有良好就业前景的工作。从哪些方面…

Tailwind CSS 响应式设计实战指南

title: Tailwind CSS 响应式设计实战指南 date: 2024/6/13 updated: 2024/6/13 author: cmdragon excerpt: 这篇文章介绍了如何运用Tailwind CSS框架创建响应式网页设计&#xff0c;涵盖博客、电商网站及企业官网的布局实例&#xff0c;包括头部导航、内容区域、侧边栏、页脚…

18个机器学习核心算法模型总结

最强总结&#xff01;18个机器学习核心算法模型&#xff01;&#xff01; 大家好~ 在学习机器学习之后&#xff0c;你认为最重要的算法模型有哪些&#xff1f; 今儿的内容涉及到~ 线性回归逻辑回归决策树支持向量机朴素贝叶斯K近邻算法聚类算法神经网络集成方法降维算法主成…

哈喽GPT-4o——对GPT-4o 编程的思考与看法

GPT-4o&#xff08;“o”代表“全能”&#xff09;它可以接受任意组合的文本、音频和图像作为输入&#xff0c;并生成任意组合的文本、音频和图像输出。 &#x1f449; GPT功能&#xff1a; GPT-4o知识问答&#xff1a;支持1000token上下文记忆功能最强代码大模型Code Copilo…

通过噪声扰动缓解多模态大型语言模型的幻觉问题

摘要 该论文提出了一种名为NoiseBoost的方法&#xff0c;通过噪声扰动来缓解多模态大语言模型(MLLM)中的幻觉问题。论文分析指出&#xff0c;幻觉主要源于大语言模型固有的总结机制&#xff0c;导致对语言符号的过度依赖&#xff0c;而忽视了视觉信息。NoiseBoost通过在视觉特…

聊一聊 Monitor.Wait 和 Pluse 的底层玩法

一&#xff1a;背景 1. 讲故事 在dump分析的过程中经常会看到很多线程卡在Monitor.Wait方法上&#xff0c;曾经也有不少人问我为什么用 !syncblk 看不到 Monitor.Wait 上的锁信息&#xff0c;刚好昨天有时间我就来研究一下。 二&#xff1a;Monitor.Wait 底层怎么玩的 1. 案…

【JavaEE精炼宝库】多线程(7)定时器

目录 一、定时器的概念 二、标准库中的定时器 三、自己实现一个定时器 3.1 MyTimerTask 实现&#xff1a; 3.2 MyTimer 实现&#xff1a; 一、定时器的概念 定时器也是软件开发中的⼀个重要组件。类似于一个 "闹钟"。达到一个设定的时间之后&#xff0c;就执行…

时间复杂度的相关概念

1. 统计时间增长趋势 时间复杂度分析统计的不是算法运行时间&#xff0c;而是算法运行时间随着数据量变大时的增长趋势&#xff0c;也就是算法运行时间与输入数据的关系。 // 算法 A 的时间复杂度&#xff1a;常数阶 function algorithm_A(n) {console.log(0); } // 算法 B 的…

分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测

分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测&…

10.无代码爬虫软件做网页数据抓取流程——工作流程设置与数据预览

首先&#xff0c;多数情况下免费版本的功能&#xff0c;已经可以满足绝大多数采集需求&#xff0c;想了解八爪鱼采集器版本区别的详情&#xff0c;请访问这篇帖子&#xff1a;https://blog.csdn.net/cctv1123/article/details/139581468 八爪鱼采集器免费版和个人版、团队版下…

Salia PLCC cPH2 远程命令执行漏洞(CVE-2023-46359)

漏洞描述 Salia PLCC cPH2 v1.87.0 及更早版本中存在一个操作系统命令注入漏洞&#xff0c;该漏洞可能允许未经身份验证的远程攻击者通过传递给连接检查功能的特制参数在系统上执行任意命令。 产品界面 fofa语法 "Salia PLCC" POC GET /connectioncheck.php?ip1…

Android Studio项目升级报错:Namespace not specified

原项目升级AGP到8.0时报错&#xff1a; Namespace not specified. Specify a namespace in the modules build file: C:\Users\Administrator\Desktop\MyJetpack\app\build.gradle. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about…

vue大作业-端午节主题网站

vue大作业-端午节主题网站介绍 端午节&#xff0c;又称为龙舟节&#xff0c;是中国的传统节日之一&#xff0c;每年农历五月初五庆祝。这个节日不仅是纪念古代爱国诗人屈原的日子&#xff0c;也是家人团聚、共享美食的时刻。今天&#xff0c;我们非常高兴地分享一个以端午节为…

Go变量作用域精讲及代码实战

1. 变量的作用域概述 在编程中&#xff0c;变量的作用域&#xff08;Scope&#xff09;定义了变量在程序中的可见性和生命周期。理解变量的作用域对于编写健壮且可维护的代码至关重要。Go语言&#xff08;简称Go&#xff09;提供了几种不同的作用域类型&#xff0c;使得开发者可…

Ubuntu/Linux系统安装JDK1.8(带jdk1.8资源和操作教程)

文章目录 前言一、JDK1.8下载二、上传三、安装四、配置环境变量五、查看总结 前言 &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;Ubuntu/Linux jdk1.8安装包&#xff…