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

news2024/11/23 4:56:10

云布道师

本篇文章围绕生成式 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% 的性能提升。这个案例也在许多客户场景上得到了实践。
以上就是本次分享的全部内容。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深信服技术认证“SCSA-S”划重点:命令执行漏洞

为帮助大家更加系统化地学习网络安全知识,以及更高效地通过深信服安全服务认证工程师考核,深信服特别推出“SCSA-S认证备考秘笈”共十期内容,“考试重点”内容框架,帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信服…

持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚

目录 一、实验 1. 环境 2. K8S master节点部署Argo CD 3.基于ArgoCD 实现GitOps (同步部署文件) 4.基于ArgoCD 实现GitOps (同步HELM文件) 二、问题 1. ArgoCD 连接K8S集群状态为 Unknown 2.ArgoCD 创建application失败 …

华为全屋wifi6蜂鸟套装标准

华为政企42 华为政企 目录 上一篇华为安防监控摄像头下一篇华为企业级无线路由器

Layui 2.9.2 列表商品展示页 用模板引擎 laytpl Ajax 读取json 数据 筛选数组 filter css 限制文体显示过长用。。。代替

全代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>软件管理器</title><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" conten…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递&#xff1a;生成对抗网络医学影像中的应用—— CG-3DSRGAN&#xff1a;用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络&#xff08;Generative adversarial networks, GANs&#xff09;在医学影像中的应用。文献…

大数据技术基础-读书笔记

大数据技术基础-读书笔记 一、大数据概述 大数据是指在一定时间内无法用常规软件工具对其内容进行抓取、处理、分析和管理的数据集合。 大数据一般会涉及两种以上的数据形式&#xff0c;数据量通常是100TB以上的高速、实时数据流&#xff0c;或者从每年增长速度快的小数据开…

Java小案例-Java实现人事管理系统

前言 《人事管理系统》该项目采用技术jsp、Struts2、Mybatis、dwr、tomcat服务器、mysql数据库 开发工具eclipse/idea。 【项目使用技术】 Struts2Mybatisdwrjqueryjscss等技术 前端使用技术&#xff1a;JSP, dwr、jquery、js、css等 后端使用技术&#xff1a;Struts2Myba…

Leetcode—73.矩阵置零【中等】

2023每日刷题&#xff08;六十六&#xff09; Leetcode—73.矩阵置零 空间复杂度为O(mn)版实现代码 class Solution { public:void setZeroes(vector<vector<int>>& matrix) {int rowLen matrix.size();int colLen matrix[0].size();vector<int> row…

使用 ElementUI 组件构建无边框 Window 桌面应用(WinForm/WPF)

生活不可能像你想象得那么好&#xff0c;但也不会像你想象得那么糟。 我觉得人的脆弱和坚强都超乎自己的想象。 有时&#xff0c;我可能脆弱得一句话就泪流满面&#xff1b;有时&#xff0c;也发现自己咬着牙走了很长的路。 ——莫泊桑 《一生》 一、技术栈 Vite Vue3 TS E…

Linux环境安装Hadoop

&#xff08;1&#xff09;下载Hadoop安装包并上传 下载Hadoop安装包到本地&#xff0c;并导入到Linux服务器的/opt/software路径下 &#xff08;2&#xff09;解压安装包 解压安装文件并放到/opt/module下面 [roothadoop100 ~]$ cd /opt/software [roothadoop100 software…

Spring Boot集成RocketMQ之消息对象序列化

以下源码基于rocketmq-spring-boot-start 2.1.1版本&#xff0c;其它版本可能会有差异 一. 前言 当我们在Spring Boot项目中集成RocketMQ后&#xff0c;只需要在配置文件(application.yml)中添加rocketmq的相关配置&#xff0c;即可使用rocketMQTemplate发送对象消息。登录Ro…

PDF文件如何设置限制打印?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…

Debian在升级过程中报错

当我们在升级的过程中出现如下报错信息 报错信息如下所示&#xff1a; The following signatures couldnt be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6 W: GPG error: http://mirrors.jevincanders.net/kali kali-rolling InRelease: …

EasyRecovery易恢复2024免费硬盘、光盘、U盘/移动硬盘数据恢复软件

EasyRecovery TM &#xff08;易恢复2024&#xff09;是由著名数据厂商Kroll Ontrack 出品的一款数据文件恢复软件。支持恢复不同存储介质数据&#xff1a;硬盘、光盘、U盘/移动硬盘、数码相机、手机、Raid文件恢复等&#xff0c;能恢复包括文档、表格、图片、音视频等各种文件…

力扣题:数字与字符串间转换-12.22

力扣题-12.22 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;12. 整数转罗马数字 解题思想&#xff1a;首先构建字符和数值的映射&#xff08;考虑特殊情况&#xff09;&#xff0c;然后从大到小进行遍历即可 class Solution(object):def intToR…

字符串函数的模拟实现(部分字符串函数)

strlen函数模拟 size_t my_strlen(const char* arr) {int count 0;while(*arr){arr;count;}return count;} int main() { printf( " %zd", my_strlen("adsshadsa"));}//模拟实现strlen函数 strcpy函数模拟 char* my_strcpy(char* arr1, const char* ar…

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制 前言0. 基础Qt/PyQt5介绍/关联Qt的优缺点&#xff08;为什么要用qt来做界面&#xff09;Qt 的核心机制请简要介绍一下Qt中的主窗口&#xff08;MainWindow&#xff09;类&#xff0c;它有哪些重要的函数和成员变量&#xff…

【游戏篇】Scratch之安全上升的气球

【作品展示】安全上升的气球 操作&#xff1a;点击小绿旗&#xff0c;按下键盘方向键控制气球躲避障碍物同时还要拿到金币。

数据仓库-数据治理小厂实践

一、简介 数据治理贯穿数仓中数据的整个生命周期&#xff0c;从数据的产生、加载、清洗、计算&#xff0c;再到数据展示、应用&#xff0c;每个阶段都需要对数据进行治理&#xff0c;像有些比较大的企业都是有自己的数据治理平台或者会开发一些便捷的平台&#xff0c;对于没有平…

C# SQLite基础工具类

目录 1、安装System.Data.SQLite工具包 2、创建数据库 3、数据库的连接与断开 4、执行一条SQL语句 5、批量执行sql语句 6、返回首行首列值 7、执行sql语句返回datatable 1、安装System.Data.SQLite工具包 2、创建数据库 /// <summary> /// 数据库路径 …