解密万亿参数M6模型预训练背后的分布式框架Whale

简介: 最近,阿里云PAI团队和达摩院智能计算实验室一起发布“低碳版”巨模型M6,大幅降低万亿参数超大模型训练能耗。借助我们自研的Whale框架仅使用480卡GPU,即训练出了规模达人类神经元10倍的万亿参数多模态大模型M6,与传统海外公司实现万亿参数规模相比,能耗降低超八成、效率提升近11倍。

image.png

作者 | 王林
来源 | 阿里技术公众号

最近,阿里云PAI团队和达摩院智能计算实验室一起发布“低碳版”巨模型M6,大幅降低万亿参数超大模型训练能耗。借助我们自研的Whale框架仅使用480卡GPU,即训练出了规模达人类神经元10倍的万亿参数多模态大模型M6,与传统海外公司实现万亿参数规模相比,能耗降低超八成、效率提升近11倍。

M6是国内首个实现商业化落地的多模态大模型。M6拥有超越传统AI的认知和创造能力,擅长绘画、写作、问答,在电商、制造业、文学艺术等诸多领域拥有广泛应用前景。

这里来为大家介绍支持万亿参数模型训练的Whale框架设计。

一 模型发展趋势和挑战

1 模型发展趋势

随着深度学习的火爆,模型的参数规模也增长迅速,OpenAI数据显示:

  • 2012年以前,模型计算耗时每2年增长一倍,和摩尔定律保持一致;
  • 2012年后,模型计算耗时每3.4个月翻一倍,远超硬件发展速度;

image.png

近一年模型参数规模飞速增长,谷歌、英伟达、阿里、智源研究院都发布了万亿参数模型,有大厂也发布了百亿、千亿参数模型。同时,随着模型参数规模增大,模型效果也在逐步提高,Nvidia测试Bert模型不同参数规模,发现模型困惑度随模型参数规模增加而降低。

image.png

Google在GShard paper中也发现MoETransformer 模型参数规模越大,翻译质量越高。

image.png

2 大模型训练的挑战

大模型带来模型效果提升的同时,也为训练框架带来更大的挑战,例如当我们要训练一个万亿规模的模型时会面临如下挑战:

  • 训练难:

    • GPU显存已经不够存放模型副本,数据并行已经不能满足需求;
    • 需要框架提供新的并行策略,协同多GPU能力来存放和训练模型;
    • 如何给用户提供简洁、易用的接口,让用户能很容易实现分布式版模型;
    • 超大规模模型对计算效率、通信效率都带来很大挑战,如何提高计算和通信效率;
    • 下游任务如何对接,如何支持批量预测和在线推理需求;
  • 成本高:

    • 以万亿模型为例,模型参数有4TB大小、梯度也有4TB,加上optimizer states和active tensor,显存需求巨大;
    • 业界训练同等规模模型需要的资源:英伟达 3072 A100、谷歌 2048 TPU v3,成本太高很难落地;
    • 如何降本增效,使用更少的资源,更快的训练收敛;

当前已经有一些分布式训练框架,例如:Horovod、Tensorflow Estimator、PyTorch DDP等支持数据并行,Gpipe、PipeDream、PipeMare等支持流水并行,Mesh Tensorflow、FlexFlow、OneFlow、MindSpore等支持算子拆分,但这些框架还有一些不足:

  • 模式单一:很多框架只支持部分并行策略,不能完全支持各种混合并行;
  • 接入门槛高:用户实现模型分布式版本难度大、成本高,需要有领域专家经验才能实现高效的分布式并行策略;
  • 迁移代价大:不同分布式框架并行化实现割裂,不同框架有各自定义的DSL,当用户要切换并行策略时,需要学习各种接口,重新改写模型;
  • 性能不理想:部分框架实现未考虑集群物理环境;

为了应对当前分布式训练的挑战,我们研发了分布式训练框架Whale,主要目标是:

  • 统一多种并行策略:在一个框架中支持各种并行策略以及这些策略的各种组合;
  • 简洁易用的接口:用户只需添加几行annotation即可完成并行策略的配置,模型代码不需要改动;
  • 高效的训练框架:结合硬件资源、网络拓扑和模型进行协同优化,打造高效分布式训练框架;

二 PAI自研Whale框架

1 Whale架构

我们推出统一多种并行策略的高性能分布式训练框架Whale,从如下角度来应对分布式训练的挑战:

  • 将不同并行化策略进行统一抽象、封装,在一套分布式训练框架中支持多种并行策略;
  • 基于Tensorflow设计一套分布式并行接口,完全兼容Tensorflow,用户仅仅只需添加几行annotation就可以实现丰富的分布式并行策略;
  • 结合模型结构和网络拓扑进行调度和通信优化,提供高效的分布式训练能力。

Whale框架如下图所示,主要分4个模块:

  • API:提供简洁易用接口,让用户组合使用各种混合并行策略;
  • Whale IR:将并行策略转成内部表达,通过TaskGraph、Multi-Dimension、VirtualDevices抽象来表达各种并行策略;
  • Whale Engine:基于WhaleIR,通过图编辑工具来构建分布式执行图;
  • Runtime:将分布式执行图转成TFGraph,再调用TF 的Runtime来执行;

image.png

2 Whale简介易用接口

Whale提供简洁易用的接口来描述各种并行策略,主要的原语:

  • cluster:配置Virtual Device的划分方法
  • replica:数据并行
  • stage:划分TaskGraph
  • pipeline:流水并行
  • split:算子拆分

用这些接口可以组合各种并行策略,例如:

  • 数据并行:

image.png

  • 流水并行:

image.png

  • 流水并行+数据并行:

image.png

  • 更多并行策略示例:

image.png

3 Whale训练流程

使用Whale进行分布式训练流程:

  • 并行策略配置:

    • 使用Whale API来为模型配置并行策略,只需添加几行annotation,无需修改模型代码,方法如 2.2节 所示;
    • 可以将模型划分为多个TaskGraph,TaskGraph支持配置多个并行策略,每个TaskGraph可以配置不同的并行策略;
  • 虚拟资源划分:

    • 按并行策略来划分Virtual Device,每个TaskGraph对应一个Virtual Device;
    • 按GPU资源和网络topo来为Virtual Device选择Physical Device;
  • 分布式执行图:

    • 基于并行策略和资源分配信息,使用图编辑工具来编辑执行图(图拷贝、拆分、插入通信节点等),生成最终的分布式执行图;
    • 调用TF的runtime来执行分布式Graph;

image.png

三 万亿M6模型预训练

万亿模型的算力需求非常大,为了降低算力需求,Whale中实现了MoE(Mixture-of-Experts)结构,MoE的主要特点是稀疏激活,使用Gating(Router)来为输入选择Top k的expert进行计算(k常用取值1、2),从而大大减少算力需求。

image.png

Whale中实现了MoE(Mixture-of-Experts) layer,并支持专家并行,将experts拆分到多个Devices上,降低单个Device的显存和算力需求。同时数据并行有利于提升训练的并发度,因此采用数据并行+专家并行组合的混合并行策略来训练M6模型:MoElayer采用专家并行,其他layer采用数据并行。

image.png

Whale中提供简洁易用的接口来进行模型的混合并行训练,只需要增加几行annotation来配置并行策略,模型本身不需要任何修改。M6模型采用数据并行+专家并行的策略,只需要增加如下图的annotation:

image.png

同时为了节约训练资源,提高训练效率,Whale中提供各种优化技术:

显存优化:

  • Auto Gradient Checkpoint,自动选择最优checkpoint节点,节约activation的显存;
  • Group-wise Apply,优化Optimizer Apply阶段的显存;
  • CPU Offload技术,优化Optimizer status和Weight的显存;
  • 通信池化,控制通信的数据块大小和并发,节约通信的显存;

计算、通信加速:

  • 采用DP+EP混合并行策略,降低算力需求;
  • 采用分组融合通信、半精度通信、拓扑感知的All2All通信算子等技术来提高通信效率;
  • 结合混合精度、编译优化等技术提高训练效率;

借助Whale框架,首次在480 V100 上,3天内完成万亿M6模型的预训练。相比此前英伟达使用3072 A100 GPU实现万亿参数、谷歌使用2048 TPU实现1.6万亿参数大模型,此次达摩院仅使用480卡V100 32G GPU就实现了万亿模型M6,节省算力资源超80%,且训练效率提升近11倍。

四 结语

模型参数规模已越来越大,大模型已成为发展趋势,为解决超大模型训练的挑战,我们自研Whale框架,将不同并行化策略进行统一抽象、封装,在一套分布式训练框架中支持多种并行策略。Whale提供简洁易用的接口,用户只需添加几行annotation即可实现各种并行策略,不需要对模型本身进行修改。同时我们结合硬件资源、网络topo、模型进行软硬件协同优化,提供高效分布式训练框架。

通过Whale框架,我们用480 V100 GPU卡训练万亿规模模型,并在3天内完成模型训练收敛,为超大规模模型训练落地提供了可能,后续我们会进一步完善Whale框架,从更大规模、更快速度、更高性价比3个维度去扩展Whale框架的能力。同时也会推动Whale能力在更多业务场景落地,让技术能力到产品能力的转变。

原文链接
本文为阿里云原创内容,未经允许不得转载。

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

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

相关文章

居然之家:核心业务系统全面上云,采用PolarDB替代传统商业数据库

简介: 国内家居零售龙头企业居然之家完成7大核心业务系统全面上云工作,并实现ERP等核心业务系统从传统商业数据库向阿里云PolarDB云数据库的替换,助力业务系统整体处理能力提升50%以上,弹性能力提升3倍以上,大幅提升应…

c oracle实体模型,ADO.NET实体数据模型详细介绍

OleDbConnection,OracleConnection 或者SqlConnection这种连接,直接执行sql语句。现在的连接方式执行sql语句有了很大的不同,下面先看看简单的单表的增删改查操作,然后再看多表的关联查询,带参数查询等。一、ADO.NET E…

面向工业场景,如何实现绿色智能?

从瓦特的蒸汽机开始轰鸣,到爱迪生的电灯照亮黑暗,从埃尼阿克把0和1变成通用的语言,再到人工智能的无处不在。一次工业革命,会带来一次社会的演进,而每一次技术升级的背后,产业升级也几乎是必然。但产业发展…

云原生,开发者的黄金时代

简介: 如果说云是一种信仰,那么云原生就是一种态度,时代呼唤人人都应成为云原生开发者。 作者 | 丁宇(叔同),阿里巴巴研究员,阿里云云原生应用平台负责人 对开发者而言,这是一个最…

如何玩转 WebGL 并行计算

简介: 如今在 Web 端使用 WebGL 进行高性能计算已有不少实践,例如在端智能领域中的 tensorflow.js,再比如可视化领域中的 Stardust.js。 作者 | 沧东 来源 | 阿里技术公众号 如今在 Web 端使用 WebGL 进行高性能计算已有不少实践&#xff0c…

数字孪生+交通,到底有啥用?

作者 | 小枣君来源 | 鲜枣课堂这些年来,信息技术的发展有了明显变化。以云计算、大数据、人工智能为代表的算力技术演进,以及以全光网络、4G/5G、Wi-Fi 6为代表的联接力技术飞跃,使得人们对数字技术提出了更高的期望。人们希望在信息化的基础…

万物智联时代的终端智能「管家」 重磅升级:混合云IoT一体机

简介: 「混合云IoT一体机」边缘部署、开箱即用、安全稳定、智管易用,通过定制软件和硬件相结合,预先定制、集成、测试和优化,实现快速部署和远程运维,并提升后续系统可用性和运维效率,是万物互联时代企业数…

今天来聊聊 Redis 的主从复制

作者 | 阿Q来源 | 阿Q说代码今天我们就从配置文件、设计原理、面试真题三个方面来聊一聊 Redis 的主从复制。在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 replica)能精确的复制主 Redis 服务…

基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案

简介: Spark SQL 作为 Spark 用来处理结构化数据的一个基本模块,已经成为多数企业构建大数据应用的重要选择。但是,在大规模连接(Join)、聚合(Aggregate)等工作负载下,Spark 性能会面…

表格长度_知道你的成绩单是怎么打印的吗?超长Excel表格1页打印,拯救A4纸

中小学的成绩单,红色的一张榜真实的魔鬼!每次都得瞄半小时才找得到自己的全部科目成绩,不知道是不是为了节省A4纸~到了大学我才知道A4纸的珍贵,字小算什么,打印论文恨不得双面打印。要是能八号字打印更好了~到了工作的…

苹果电脑上使用linux环境变量,mac系统下修改环境变量

苹果电脑使用率越来越高,在mac系统下研发,性能要比在windows下快不少,既然要开发,免不了要配置环境变量.下面是学习啦小编收集整理的mac系统下修改环境变量,希望对大家有帮助~~mac系统下修改环境变量的方法工具/原料os…

提升代码质量的方法:领域模型、设计原则、设计模式

简介: 我们可以列举出非常多质量差的代码的表现现象,其中最影响代码质量的两个表现是命名名不副实、逻辑可扩展性差,当一个新人阅读代码时,有时发现方法命名与实际逻辑对不上,这就让人感到非常疑惑,这种现象…

SphereEx 完成近千万美元 Pre-A 轮融资,连接企业数据与应用,构建新一代数据库生态引擎

2022年1月4日,创新型数据库基础软件提供商 SphereEx 宣布完成近千万美元 Pre-A 轮融资,本轮融资由嘉御资本领投,红杉中国种子基金、初心资本、指数创投跟投。指数资本担任独家财务顾问。这是继 2021 年 5 月份以来,SphereEx 完成的…

Javascript 机器学习的四个层次

简介: Atwood定律说,凡是可以用Javascript实现的应用,最终都会用Javascript实现掉。作为最热门的机器学习领域,服务端是Python的主场,但是到了手机端呢?Android和iOS里默认都没有Python。但是有浏览器的地方…

运维监控再添新品,F5联合智维数据推出应用质量主动拨测解决方案

一直以来,业务的稳定性和客户体验是企业各个部门都关注的重点,也是企业数字化转型的重要支撑。但在实际的运维环境中,如果只从服务端的视角进行监控,往往会出现数据中心内部监控体系显示设备状态正常,但却收到了客户端…

排查指南 | 两个案例学会从埋点排查 iOS 离线包

简介: 首次打开离线包白屏以及报错“-1009”等该如何处理呢? 离线包原理 以一次启动离线包的流程为例,离线包的加载流程分为两种场景,第一种是离线包下载好的场景,流程如图1所示,第二种是离线包没下载好的…

如何设计可靠的灰度方案

简介: 一个较大的业务或系统改动,往往会影响整个产品的用户体验或操作流程。为了控制影响面,可以选取一批特定用户、流程、单据等,只允许这一部分用户或数据按照变更后的新逻辑在系统中流转,而另一部分用户仍然执行变更…

linux如何设置mac快捷键,在Ubuntu上使用macOS的快捷键

因为常用机一台Mac,一台Linux,都频繁使用,两个系统不同的快捷键已经让人精神分裂了!macOS几乎所有的快捷键都基于command键,全选(cmda)、复制(cmdc)、粘贴(cmdv)、开关标签页(cmdt/w)、切换窗口(cmdtab)、保存(cmds)、…

IDC报告:阿里云领跑中国数据库市场年度份额首超传统厂商

简介: IDC报告显示,2020年中国关系型数据库软件市场规模达到121.8亿元,同比增长36.5%。其中,以公有云模式部署的关系型数据库市场占比达到51.5%,首次超过传统线下部署模式市场规模,预计到2025年将继续走高&…

稳若磐石的「云上奥运」背后,是云计算新界面的崛起

简介: 今年奥运会首次采用阿里云支撑全球转播,这是奥运迈入数字时代的重要一步。对于这届特殊的奥运会来说,技术至关重要。我们相信,这次创造历史的实践,将为未来支撑更多体育爱好者把“云观赛”转变为参与国际体育赛事…