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

阿里云林立翔:基于阿里云 GPU 的 AIGC 小规模训练优化方案

云布道师

本篇文章围绕生成式 AI 技术栈、生成式 AI 微调训练和性能分析、ECS GPU 实例为生成式 AI 提供算力保障、应用场景案例等相关话题展开。

生成式 AI 技术栈介绍

1、生成式 AI 爆发的历程

在 2022 年的下半年,业界迎来了生成式 AI 的全面爆发,尤其是以 ChatGPT 为代表的大语言模型和以 Stable Diffusion 为代表的图片生成类模型。举个例子,某幼儿园老师要求家长写一篇 1500 字的关于家庭教育法的心得体会,ChatGPT 可以胜任这份工作;各种 logo 也可以通过 Stable Diffusion 生成式模型来生成,根据提示词生成各类图片。

(1)软件算法部分

生成式 AI 的爆发彻底突破了过往对 AI 应用的想象空间,但从软件和算法角度,生成式 AI 的全面爆发并非一蹴而就,它是近三四十年所有研发人员、算法工程师以及科研人员的努力,共同促成了当今生成式 AI 的爆发。
在这里插入图片描述
1986 年,上世纪六七十年代被抛弃的神经网络重新回归主流研究领域。1987 年,概率推理和机器学习算法引入,将不确定性的数学建模以及随机梯度下降的学习算法引入到人工智能的主流算法研究领域。

21 世纪初,随着互联网的爆炸式发展,大数据技术被引入到各个领域,包括生产、分析以及人工智能。近十年,深度学习技术尤其火热,即通过多层感知网络堆叠来提升模型泛化精度。这些算法基础设施的不断演进,促成了生成式AI爆发。

(2)硬件部分

硬件部分也是促成当前生存式AI爆发的重要基础。如人工智能领域,我们通常喜欢和人类大脑进行类比,人脑约有 1011 个神经元,神经元之间有 1010 个突触,相当于可以达到每秒钟 1017的算力,约为 0.1 EFLOPS。个人计算机目前还达不到人脑的算力,GPU 集群的计算能力已经超过了人类大脑的算力,先进的 GPU 计算集群已经可以达到 EFLOPS 的级别。因此,算力也是目前生成式 AI 的重要硬件保障。
在这里插入图片描述
上图中展示了目前最典型的 GPU 3 模型的大致推算,纵坐标 Petaflop/s-Days 表示要在一天之内训练一个模型,算力需要达到的 Petaflop/s。GPT 3 的量级约为 10 的 4 次方的 Petaflop/s-Days,如果使用千卡的 A100 组成集群,大致需要一个月的时间训练完 GPT 3 的预训练模型。
2、生成式 AI 训练技术栈
总结来说,是由于模型结构的创新,尤其以 2017 年开始 Transformer 模型结构为代表;另外大数据带来了海量的数据集,还包括机器学习的梯度寻优算法结构,共同构成了 AI 训练算法和软件上的基础。另外,从 GPU 的云服务器到 GPU 的云服务集群,构成了 AI 训练的硬件基础。在这里插入图片描述
软件算法与硬件发展带来了当下生成式 AI 训练技术栈爆发,带来了通往 AGI 的曙光。

生成式 AI 微调训练和性能分析

第二部分,我将介绍目前在生成式 AI 的微调训练场景下的流程、使用场景以及基于 ECS GPU 云服务器,生存式 AI 微调训练场景的性能分析。
1、生成式 AI 从开发到部署的流程

大致可以分为三部分——预训练、微调和推理,如下图所示:
在这里插入图片描述
最左侧是 Pre-Training(预训练),生成通用模型,中间是 Fine Tuning(微调),生成特定领域的数据集,最终在部署时,进行 Inference 推理。

在 Pre-Training 阶段,最重要的特点是有海量的数据集以及大的参数量,因此该场景需要大规模算力进行分布式训练,通常以月为单位的开发周期和生产迭代的流程。

在 Fine Tuning 阶段,与 Pre-Training 略有区别,该场景下需要 Special Data,如垂直领域模型的客户专属的私域数据。此外,根据应用场景需求,有些场景可能需在要分钟级 Fine Tuning 出一个模型,有些场景可以以周为单位生产模型,进而把Pre-Training 模型变成 specialize 特定领域的模型,如 coding、media advise、education 等垂类的模型。

在 Inference 推理阶段,其特点更加明显,即用于部署,最关键是如何在符合特定的在线服务环境下做到时延和吞吐,以达到上线需求。

生成式 AI 微调训练场景中两类常见的模型,如上图所示。

第一类,如妙鸭相机 APP,它是基于 Diffusion 生成类模型提供针对客户定制化专属模型的一种训练方式,它是快速 Fine Tuning 与高效 Inference 兼顾的一种训推一体的生成式 AI 模型。

第二类,垂直领域的大模型,以大语言模型为代表,它根据特定场景以及对应的垂类领域的数据,基于基座模型 Fine Tuning 定制化的 LLM 模型。

2、生成式 AI 微调场景的 GPU 性能分析
在这里插入图片描述
以上两类模型在 GPU 计算上存在瓶颈。GPU 的原理并不复杂,即一堆小的 Micro 的计算单元做 ALU 计算,和小块矩阵乘法。但模型或深度学习算法并不是简单地由矩阵乘组成,包括 transform layer 等对应的 activation 等,如何将堆叠的 layer 映射到算力资源,更好地发挥出算力的 efficiency 是我们需要解决的场景。

具体到生成式AI的微调场景,上图的最下方列了两张 Timeline 图,左下角是以 ECS V100 16G 实例在 Stable Diffusion 微调训练场景为代表,可以看到 GPU 计算逻辑时间序列有很多空白,说明 GPU 的算力没有被完全发挥出来,其最重要的瓶颈来自于 CPU 本身的 overhead 特别大,这是 v100 场景下在 Stable Diffusion 微调遇到的瓶颈。

右下角 ECS A100 80G 实例在 Llama LLM 微调训练场景为代表,最上面一层是在 GPU 上的计算执行逻辑,下面是密集的 all gather 通信流,又伴随着密集的 Reduce scatter 通信流,它是网络 IO 成为 bound 的计算 workload。

映射到算力资源,CPU overhead bound 和 Network IO bound 成为了 GPU 运算的瓶颈。

ECS GPU 实例为生成式 AI 提供算力保障

ECS GPU 云服务器通过软硬件结合的方式,为生成式 AI 的微调场景提供了充沛、高性能的算力保障。

1、ECS 异构计算为生成式 AI 提供澎湃算力

下面是阿里云异构计算产品大图。底座是 ECS 的神龙计算平台,之上提供了包括gn7e、gn7i 以及其他做计算加速实例的硬件资源组。在算力的基础之上,提供DeepGPU Toolkits,其目标在于衔接上层 AI 应用和底层硬件资源,进行软结合一体化的优化,提升 ECS GPU 云服务器与友商相比的差异化竞争力,服务于客户以达到高性能和高性价比的 AI 训练和推理效果。
图片
2、ECS 异构计算 DeepGPU 提升生成式 AI 效率

以下是 DeepGPU 的简图。
在这里插入图片描述
左侧是开发模型的训练技术栈,通常开发人员只关注两部分,第一,是否能提供足够的算力服务,可以通过开源的调度器以及开源的模型框架搭建模型算法的开发流程。DeepGPU 的工作则是在客户并不触及的部分,包括驱动级、计算库和通信库,整合包括 CIPU、ECS GPU 云服务器的能力提升在模型训练和推理的效果和能力。

右侧是 DeepGPU 的整体架构图,其底层是依托于 GPU 的基础架构,包括异构 GPU 计算实例、eRDMA/vpc 网络以及云存储,在基础产品增强工具包中提供包括基于 eRDMA 训练的客户参考解决方案,最终的目的是帮助客户在基于 ECS GPU 云服务器上,其模型的训练推理的性能可以达到最佳。

3、阿里云 CIPU + DeepGPU 提升分布式训练效率

简单介绍 DeepNCCL 如何通过阿里云特有的基础设施达到软硬结合的训练加速的效果。左侧图是 CIPU 的基础设施,它提供了 eRDMA Engine,可以达到大吞吐、低延时的网络通信的能力,叠加 DeepNCCL 软硬结合的性能优化,右图显示 allgather 的 NCCL test 性能数据,右侧是原生的数据,左侧是 DeepNCCL 加持的性能数据,DeepNCCL 实现了比原生数据提升 50%~100% 的 primitive 的 NCCL 集合通信的算子优化能力。
在这里插入图片描述

应用场景案例

这部分通过几个典型的场景介绍 ECS GPU 云服务器叠加 DeepGPU 在生成式 AI 的应用场景以及对应的性能加速效果。
1、ECS A10 DeepGPU Diffusion 微调训练案例
在这里插入图片描述
关于 DeepGPU Diffusion 微调的训练案例的性能加速方案,前面的内容中曾提及过该场景的目标,即训推一体。换言之,客户首次或二次进入都要快速生成模型,则其训练一定要快,也就是说其在模型上有一定的折中,如通过 LoRA 降低总计算量;其次,模型中需要有专属于每个客户自己的 feature,通常是在 Diffusion 中通过Dreambooth 或 controlnet 提供专属模型的优化能力。
通过算法上的加持可以形成用户专属模型,另外可以保证快速。再叠加 gn7e、gn7i 提供的高弹性算力保障,可以提升整个训推一体的算力需求,同时 DeepGPU 软硬结合可以额外带来 15%~40% 的性能提升。类似的案例已经在客户妙鸭大规模上线,通过快速地弹出大量的 A10、V100 实例以及 DeepGPU 的性能加持,帮助妙鸭快速应对高峰期用户推理和训练的请求。

2、ECS A100 DeepGPU LLM 微调训练案例
另一部分,在大语言模型的微调训练案例,其特点是模型参数量太大,在单机很难装载训练,因此模型参数需要 sharding 到不同的 GPU 卡和不同的机器上做训练算法的迭代,这会引入大量卡间通信,且是同步通信操作,因此多卡互联的能力是 LLM 在微调训练场景的瓶颈。
在这里插入图片描述
ECS GPU 云服务器提供包括 eRDMA 以及大带宽的算力和通信带宽保障,再叠加DeepGPU 的 DeepNCCL 加持,可以为大语言模型在多机多卡的微调场景带来10%~80% 的性能提升。这个案例也在许多客户场景上得到了实践。
以上就是本次分享的全部内容。

相关文章:

阿里云林立翔:基于阿里云 GPU 的 AIGC 小规模训练优化方案

云布道师 本篇文章围绕生成式 AI 技术栈、生成式 AI 微调训练和性能分析、ECS GPU 实例为生成式 AI 提供算力保障、应用场景案例等相关话题展开。 生成式 AI 技术栈介绍 1、生成式 AI 爆发的历程 在 2022 年的下半年,业界迎来了生成式 AI 的全面爆发&#xff0c…...

从0开始学Git指令

从0开始学Git指令 因为网上的git文章优劣难评,大部分没有实操展示,所以打算自己从头整理一份完整的git实战教程,希望对大家能够起到帮助! 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步…...

B039-SpringMVC基础

目录 SpringMVC简介复习servletSpringMVC入门导包配置前端控制器编写处理器实现Contoller接口普通类加注解(常用) 路径问题获取参数的方式过滤器简介自定义过滤器配置框架提供的过滤器 springMVC向页面传值的三种方式视图解析器springMVC的转发和重定向 SpringMVC简介 1.Sprin…...

Tomcat报404问题解决方案大全(包括tomcat可以正常运行但是报404)

文章目录 Tomcat报404问题解决方案大全(包括tomcat可以正常运行但是报404)1、正确的运行页面2、报错404问题分类解决2.1、Tomcat未配置环境变量2.2、IIs访问权限问题2.3、端口占用问题2.4、文件缺少问题解决办法: Tomcat报404问题解决方案大全(包括tomcat可以正常运…...

debian10安装配置vim+gtags

sudo apt install global gtags --version gtags //生成gtag gtags-cscope //查看gtags gtags与leaderf配合使用 参考: 【VIM】【LeaderF】【Gtags】打造全定制化的IDE开发环境! - 知乎...

vue跳转方式

Vue的页面跳转有两种方式&#xff0c;第一种是标签内跳转&#xff0c;第二种是编程式路由导航 1. <router-link to/Demo><button>点击跳转1</button> </router-link>2.router.push("/Demo");一、标签内通过 router-link跳转 通常用于点击 …...

基于ssm+jsp学生综合测评管理系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把学生综合测评管理与现在网络相结合&#xff0c;利用java技术建设学生综合测评管理系统&#xff0c;实现学生综合测评的信息化。则对于进一步提高学生综合测评管理发展&#xff0c;丰富学生综合测评管理经验能起到不少的促进作用。…...

网络基础篇【网线的制作,OSI七层模型,集线器和交换机的介绍,路由器的介绍与设置】

目录 一、网线制作 1.1 工具介绍 1.1.1网线 1.1.2 网线钳 1.1.3 水晶头 1.1.4 网线测试仪 二、OSI七层模型 2.1 简介 2.2 OSI模型层次介绍 2.2.1 结构图 2.2.2 数据传输过程 2.3 相关网站 二、集线器 2.1 介绍 2.2 适用场景 三、交换机 3.1 介绍 3.2 适用场景…...

CSRF检测工具(XSRF检测工具)使用说明

目录 检查类型 测试单个端点 抓取网站 添加Cookie 自定义用户代理...

docker 部署kafka

随笔记录 目录 1. 安装zookeeper 2. 安装Kafka 2.1 拉取kafka image 2.2 查询本地docker images 2.3 查看本地 容器&#xff08;docker container&#xff09; 2.3.1 查看本地已启动的 docker container 2.3.2 查看所有容器的列表&#xff0c;包括已停止的容器。 2.3.…...

Android 架构 - 组件化

一、概念 组件化是对单个功能进行开发&#xff0c;使得功能可以复用。将多个功能组合起来就是一个业务模块&#xff0c;因此去除了模块间的耦合&#xff0c;使得按业务划分的模块成了可单独运行的业务组件。&#xff08;一定程度上的独立&#xff0c;还是依附于整个项目中&…...

数字图像处理-空间域图像增强-爆肝18小时用通俗语言进行超详细的总结

目录 灰度变换 直方图&#xff08;Histogram&#xff09; 直方图均衡 直方图匹配&#xff08;规定化&#xff09; 空间滤波 低通滤波器 高通滤波器 ​​​​​​​ 本文章讲解数字图像处理空间域图像增强&#xff0c;大部分内容来源于课堂笔记中 灰度变换 图像增强&…...

【Java】【SQL】DATE_FORMAT函数详解

在实际应用开发中&#xff0c;使用sql语句也属于开发者的一部分&#xff0c;这次来说说DATE_FORMAT函数。 引言&#xff1a;实际上在使用Java开发过程中&#xff0c;有很多业务场景下&#xff0c;都有时间类型的参数参与。前后端进行交互的时候&#xff0c;针对时间类型的格式…...

Pooling方法总结(语音识别)

Pooling layer将变长的frame-level features转换为一个定长的向量。 1. Statistics Pooling 链接&#xff1a;http://danielpovey.com/files/2017_interspeech_embeddings.pdf The default pooling method for x-vector is statistics pooling. The statistics pooling laye…...

Java可变参数(学习推荐版,通俗易懂)

定义 可变参数本质还是一个数组 示例代码 注意事项 1.形参列表中&#xff0c;可变参数只能有一个 2.可变参数必须放在形参列表的最后面 注意是最后面。 name也可以为int类型...

异步编程Promise

文章目录 前言一、关于 Promise 的理解与使用1.相关知识补充区别实例对象和函数对象同步回调异步回调Js中的错误&#xff08;error&#xff09;和错误处理 2.promise是什么 二、Promise 原理三、Promise 封装 Ajax四、async 与 await总结 前言 在项目中&#xff0c;promise的使…...

Centos上的默认文本编辑器vi的操作方法积累

打开一个文本后&#xff0c;常见的操作方法积累如下&#xff1a; 001-进入或退出插入模式的方法 按下 i 进入插入模式。 按下 Esc 退出插入模式。 002-进入命令模式的方法&#xff1a; 按下 Esc 退出插入模式&#xff0c;然后输入冒号:进入命令模式。 003-退出vi编辑器的方…...

海康rtsp拉流,rtmp推流,nginx部署转flv集成

海康rtsp拉流&#xff0c;rtmp推流&#xff0c;nginx部署转flv集成 项目实际使用并测试经正式使用无问题&#xff0c;有问题欢迎评论留言 核心后台java代码&#xff1a; try {// FFmpeg命令String command "ffmpeg -re -i my_video.mp4 -c copy -f flv rtmp://localho…...

【Python百宝箱】时序之美:Python 时间序列探秘与创新

时光漫游&#xff1a;Python 时间序列分析全指南 前言 在数字化时代&#xff0c;时间序列数据扮演着关键的角色&#xff0c;从金融到气象再到生产制造。本文将引导你穿越Python丰富的时间序列分析工具&#xff0c;探索从基础统计到机器学习和深度学习的各个层面。无论你是初学…...

flutter开发实战-第一帧布局完成回调实现

flutter开发实战-第一帧布局完成回调实现 在开发中&#xff0c;我们有时候需要在第一帧布局完成后调用一些相关的方法。这里记录一下是实现过程。 Flutter中有多种不同的Binding&#xff0c;每种Binding都负责不同的功能。下面是Flutter中常见的Binding&#xff1a; 这里简单…...

Windows11编译VTM源码生成Visual Studio 工程

VTM介绍 VTM作为H266/VVC标准的官方参考软件&#xff0c;一直用作H266/VVC标准的研究和迭代。关于H2666/VVC标准的介绍、代码、提案、文档等&#xff0c;可以参考H266/VVC编码标准介绍。 官方代码地址&#xff1a; https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM&…...

[数据结构进阶 C++] 二叉搜索树(BinarySearchTree)的模拟实现

文章目录 1、二叉搜索树1.1 二叉搜索数的概念1.2 二叉搜索树的操作1.2.1 二叉搜索树的查找1.2.2 二叉搜索树的插入1.2.3 二叉搜索树的删除 2、二叉搜索树的应用2.1 K模型2.2 KV模型 3、二叉搜索树的性能分析4、K模型与KV模型完整代码4.1 二叉搜索树的模拟实现&#xff08;K模型…...

PostGIS学习教程十四:更多的空间连接

PostGIS学习教程十四&#xff1a;更多的空间连接 在上一节中&#xff0c;我们看到了ST_Centroid(geometry)和ST_Union([geometry])函数&#xff0c;以及一些简单的示例。在本节中&#xff0c;我们将用它们做一些更详细的事情。 提示&#xff1a;写完文章后&#xff0c;目录可以…...

【爬虫软件】孔夫子二手书采集

项目演示 孔网爬取图书信息 目录结构 [ |-- api-ms-win-core-synch-l1-2-0.dll, |-- api-ms-win-core-sysinfo-l1-1-0.dll, |-- api-ms-win-core-timezone-l1-1-0.dll, |-- api-ms-win-core-util-l1-1-0.dll, |-- api-ms-win-crt-conio-l1-1-0.dll, |-- api…...

P8736 [蓝桥杯 2020 国 B] 游园安排

题目描述 L \mathrm{L} L 星球游乐园非常有趣&#xff0c;吸引着各个星球的游客前来游玩。小蓝是 L \mathrm{L} L 星球 游乐园的管理员。 为了更好的管理游乐园&#xff0c;游乐园要求所有的游客提前预约&#xff0c;小蓝能看到系统上所有预约游客的名字。每个游客的名字由一…...

初识Docker-什么是docker

Docker是一个快速交付应用、运行应用的技术 目录 一、Docker 二、运用场景 一、什么是Docker&#xff1f;它的作用是什么&#xff1f; Docker如何解决大型项目依赖关系复杂&#xff0c;不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打包&…...

maven的pom.xml设置本地仓库

配置 在Maven项目中&#xff0c;您可以在pom.xml文件中配置本地仓库的路径。在pom.xml文件中&#xff0c;您可以添加以下配置来指定本地仓库的路径&#xff1a; <project>...<repositories><repository><id>local-repo</id><url>file://…...

Qt获取屏幕DPI缩放比

获取屏幕缩放比 网上很多代码是用 logicalDotsPerInch 除以 96 来获取屏幕缩放比&#xff1a; // Windows 除以 96&#xff0c;macOS 除以 72 qreal factor window->screen()->logicalDotsPerInch() / 96.0; 当使能了缩放适配后&#xff0c;logicalDotsPerInch 值就不…...

Spring MVC控制层框架

三、Spring MVC控制层框架 目录 一、SpringMVC简介和体验 1. 介绍2. 主要作用3. 核心组件和调用流程理解4. 快速体验 二、SpringMVC接收数据 1. 访问路径设置2. 接收参数&#xff08;重点&#xff09; 2.1 param 和 json参数比较2.2 param参数接收2.3 路径 参数接收2.4 json参…...

vmware安装银河麒麟V10高级服务器操作系统

vmware安装银河麒麟V10高级服务器操作系统 1、下载银河麒麟V10镜像2、VMware安装银河麒麟V10高级服务器操作系统2.1、新建虚拟机2.2、安装虚拟机 3、配置银河麒麟V10高级服务器操作系统3.1、安装vmware tools3.2、配置静态IP地址 和 dns3.3、查看磁盘分区3.4、查看系统版本 1、…...

动态网站系统是什么/游戏交易平台

文章目录商品服务-分类管理查出所有分类以及子分类后端编写前端展示服务注册配置网关503问题跨域跨域流程解决跨域服务注册配置网关删除数据后端接口逻辑删除测试前端请求删除数据新增分类修改分类拖拽效果批量删除谷粒商城_01_环境搭建 谷粒商城_02_Nacos、网关 谷粒商城_03_前…...

企业门户网站建设的必要性/百度搜索关键词推广

最近在用Java调用ffmpeg的命令&#xff0c;所以记录下踩到的坑如果要在Java中调用shell脚本时&#xff0c;可以使用Runtime.exec或ProcessBuilder.start。它们都会返回一个Process对象&#xff0c;通过这个Process可以对获取脚本执行的输出&#xff0c;然后在Java中进行相应处理…...

学做缝纫的网站/网络舆情分析研判报告

install JDKInstall hadoopRun Project on Hadoop install JDK 需要提前安装好jdk和ant。 jdk是对java程序进行编译的工具&#xff08;java development kid&#xff09; jre&#xff1a;java runtime environment是提供java虚拟机的运行环境。 ant&#xff1a;项目管理工具…...

做网站所需要的代码6/流量平台有哪些

前面在“数字调制系列&#xff1a;IQ 基本理论”一文中介绍了 IQ 的概念、常用数字调制方式及映射星座图等内容&#xff0c;当完成数字比特流到 IQ 坐标系的映射后&#xff0c;便可以得到数字 I 和 Q 信号&#xff0c;然后分别经过 DAC 变换为模拟 I 和 Q 信号&#xff0c;最后…...

网站建设与规划的书/成功营销十大经典案例

发送数据包 图示过程 数据链路包 数据包接受流程...

政府门户网站建设意义/爱站网关键词查询

和一个朋友喝了一下午的茶&#xff0c;听到和说出了一些自己不曾说出的事情。首先是我有时觉得比如soff啊&#xff0c;为人比较傲慢一些。但是其实自己未必在别人眼中就不是如此。果然&#xff0c;当我发现我和学校里面的同学心理年龄差距越来越大的时候&#xff0c;我的态度也…...