0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GPipe是什么,效果如何?为什么要对跨加速器的模型进行分区?

DPVg_AI_era 来源:lp 2019-03-06 09:04 次阅读

加速DNN模型训练速度方法中,数据并行受到单个加速器可支持模型大小的限制;而模型并行因为DNN顺序性导致大量算力浪费。目前Google推出GPipe,将两种方法的优势进行结合,解决了两者的劣势,成功提升训练速度。

深度神经网络(DNN)已经推动了许多机器学习任务,比如语音识别,视觉识别和语言处理。

BigGan、Bert和GPT2.0的最新进展表明,越大的DNN模型,越能带来更好的性能。

而视觉识别任务的过去进展也表明,模型大小和分类准确性之间,存在很强的相关性。

例如2014年ImageNet视觉识别挑战赛中,获胜者GoogleNet使用400万参数,精确度达到了74.8%。

而2017年ImageNet挑战赛的获胜者Squeeze-and-Excitation Networks,使用1.5亿参数,精确度达到了82.7%。

仅仅3年,数据处理能力翻了36番。而在同一时期,GPU内存仅增加了约3倍。

当前最先进的图像模型,已经达到了云TPUv2内存的可用上限。因此,迫切需要一种更高效、可扩展的基础设施,以实现大规模深度学习,并克服当前加速器的内存限制。

ImageNet精度和模型大小之间的强相关性

基于以上目的,Google推出了GPipe。

GPipe是什么,效果如何?

GPipe是一个分布式机器学习、可扩展的管道并行库,可以学习巨型深度神经网络。

使用同步随机梯度下降和管道并行性进行训练,适用于由多个连续层组成的任何DNN。

GPipe允许研究人员轻松部署更多加速器来训练更大的模型,并在不调整超参数的情况下,达到提升性能的效果。

GPipe将跨加速器和管道执行的网络层进行分区,以便实现对硬件更高的利用率,同时利用重新计算来将激活的内存使用降至最低。

例如,使用8个加速器的分区,GPipe就可以训练25倍大神经网络。

而GPipe也几乎实现了线性加速。使用4倍数量的加速器,处理同一个模型的速度提升了3.5倍;16倍加速器速度提升11倍。

同时它也要保证计算的梯度和分区的数量保持一致,从而在不对模型的参数做任何改动的前提下,都能保持线性加速。

目前,核心GPipe库已在Lingvo框架下开源。

为什么要对跨加速器的模型进行分区?

有两种标准方法可以加速DNN模型:

数据并行方法,使用更多的机器并将输入数据分开

模型并行性。将模型移动到如GPU或TPU等具有加速模型训练的特殊硬件

然而加速器的内存、与主机的通信带宽均有限。因此模型并行性就需要将模型进行分割,将不同的分区分配给不通过的加速器。

可是由于由于DNN的顺序性,这种朴素的策略可能导致在计算期间,只有一个加速器处于激活状态,导致大量算力的浪费。

而标准数据并行方法是允许在多个加速器上,同时训练不同输入数据的相同模型,但每个加速器可支持模型大小又有限制。

GPipe的做法是将模型分割,并划分给不同的加速器,自动将小Batch拆分为更小的微Batch,这样就实现了跨多个加速器的高效训练。

此外,因为梯度一直在微批次中累积,所以分区数量不会影响模型质量。

Time部分:由于网络的连续性,幼稚模型并行策略导致严重的未充分利用。 一次只有一个加速器处于活动状态

Bubble部分:GPipe将输入小批量分成较小的微批次,使不同的加速器可以同时在单独的微批次上工作

使用GPipe和不使用,之间的差异有多大?

一个TPUv2有8个加速器核心和64GB内存(每个加速器8GB),由于内存限制,单个加速器可以训练的参数量上限是8200万。

借助反向传播和批量分割中的重新计算,GPipe将中间激活内存从6.26GB减少到3.46GB,将单个加速器参数处理上限提升至3.18亿个。

我们还看到,通过管道并行性,最大模型大小与分区数成正比,如预期的那样。

通过GPipe,AmoebaNet能够在云TPUv2的8个加速器上加入18亿个参数,比没有GPipe的情况下多25倍。

Google测量了GPipe对AmoebaNet-D模型吞吐量的影响。效率和加速器的数量几乎是呈线性加速,8个加速器+8个分区,比2个加速器+2个分区快2.5倍。

TPUv3效果更好。在1024个令牌句子上启用了80亿个参数Transformer语言模型,16个加速器将速度提升了11倍

使用GPipe加速AmoebaNet-D,这种模型不适合一个加速器

基线naive-2是将模型拆分为两个分区时本机分区方法的性能

Pipeline-k指的是GPipe的性能,它将模型分成带有k个加速器的k个分区

GPipe还可以通过使用更多加速器来扩展训练,而无需更改超参数。因此,它可以与数据并行性相结合,以互补的方式使用更多的加速器来扩展神经网络训练。

GPipe精确度能达到多少?

前面我们提到,处理的数据量越大,获得的精度就越高。

Google在ImageNet ILSVRC-2012数据集上,使用Cloud TPUv2训练了一个有5.57亿参数、480 x 480输入图像尺寸的AmoebaNet-B模型。

该网络被分成4个分区,这个巨型模型在多个流行数据集上表现良好,在没有任何外部数据的情况下,精度达到了最先进的84.3% top-1,以及97% top-5的single-crop验证准确度。

大型神经网络不仅适用于ImageNet等数据集,还通过迁移学习,与其他数据集息息相关。

目前我们已知ImageNet模型越好,迁移就越好。Google在CIFAR10和CIFAR100数据集上进行了迁移学习实验,将最佳公布的CIFAR-10精度提高到99%,将CIFAR-100精度提高到91.3%。

哪里能获取到GPipe?

Github:

https://github.com/tensorflow/lingvo/blob/master/lingvo/core/gpipe.py

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 加速器
    +关注

    关注

    2

    文章

    723

    浏览量

    36435
  • 神经网络
    +关注

    关注

    42

    文章

    4538

    浏览量

    98424
  • 机器学习
    +关注

    关注

    66

    文章

    8061

    浏览量

    130439

原文标题:谷歌开源效率怪兽GPipe,速度提升25倍,CIFAR-10精度达到99%

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    adxl加速度mems测量低频振动的效果如何?

    之前选用了adxl372 和adxl345,我想请问一下,这些mems对低频振动的检测效果如何 目前项目需求测量0.5Hz-1000kHz频率的振动,量程大概在±20g 以上两种mems是否满足。
    发表于 12-28 07:09

    粒子加速器加速原理是啥呢?

    粒子加速器加速原理是啥呢? 粒子加速器是一种重要的实验设备,用于研究粒子物理学、核物理学等领域。其主要原理是通过电场和磁场的作用,对带电粒子进行
    的头像 发表于 12-18 13:52 710次阅读

    在CCES环境下如何使用21489的IIR加速器

    在VDSP++的环境下程序已经实现,但是到了CCES下,把中断初始化函数修改了,还是无法正确配置中断,直接返回IIR的中断初始化失败,请问CCES下怎么使用IIR加速器
    发表于 11-30 08:20

    21489的IIR加速器滤波参数设置如何对应加速器的滤波参数?

    目前在用21489内部的IIR加速器去做一个低通滤波,在例程的基础上修改参数。通过平板的fda 工具工具去设计参数,但是设计出来的参数不知道如何对应加速器的滤波参数,手册里也看得不是很明白。 设计的参数如下: 请问
    发表于 11-30 08:11

    使用ADSP-21489的fir加速器时,存在很大的噪音如何解决?

    您好!当我使用ADSP-21489的fir加速器时,存在很大的噪音,未知如何解决,希望这里有高人帮我解决。 附件上有工程,该工程参考iir加速器使用例子编写。
    发表于 11-30 07:49

    使用赛灵思Alveo加速器加速DNN

    电子发烧友网站提供《使用赛灵思Alveo加速器加速DNN.pdf》资料免费下载
    发表于 09-18 09:27 0次下载
    使用赛灵思Alveo<b class='flag-5'>加速器</b>卡<b class='flag-5'>加速</b>DNN

    《 AI加速器架构设计与实现》+第2章的阅读概括

    首先感谢电子发烧友论坛提供的书籍和阅读评测的机会。 拿到书,先看一下封面介绍。这本书的中文名是《AI加速器架构设计与实现》,英文名是Accelerator Based on CNN Design
    发表于 09-17 16:39

    使用SDAccel进行主机及加速器代码优化

    电子发烧友网站提供《使用SDAccel进行主机及加速器代码优化.pdf》资料免费下载
    发表于 09-15 16:21 0次下载
    使用SDAccel<b class='flag-5'>进行</b>主机及<b class='flag-5'>加速器</b>代码优化

    基于FPGA的Wide&Deep模型加速器解决方案

    电子发烧友网站提供《基于FPGA的Wide&Deep模型加速器解决方案.pdf》资料免费下载
    发表于 09-13 10:37 1次下载
    基于FPGA的Wide&Deep<b class='flag-5'>模型</b><b class='flag-5'>加速器</b>解决方案

    Rapanda流加速器-实时流式FPGA加速器解决方案

    电子发烧友网站提供《Rapanda流加速器-实时流式FPGA加速器解决方案.pdf》资料免费下载
    发表于 09-13 10:17 0次下载
    Rapanda流<b class='flag-5'>加速器</b>-实时流式FPGA<b class='flag-5'>加速器</b>解决方案

    华秋硬创联合安创加速器加速和创新赋能技术驱动型创业者

    167亿,获2轮及以上融资的企业占比达54%。 02****生态伙伴介绍:安创加速器 **安创加速器作为Arm全球唯一加速器,依托于Arm全球庞大的生态系统资源及行业领先的技术,**通过创业
    发表于 08-18 14:37

    Intel媒体加速器参考软件用户指南

    英特尔媒体加速器参考软件是用于数字标志、交互式白板(IWBs)和亭位使用模型的参考媒体播放应用软件,它利用固定功能硬件加速来提高媒体流速、改进工作量平衡和资源利用,以及定制的图形处理
    发表于 08-04 07:07

    英特尔媒体加速器参考软件发行说明

    使用 Linux* 版本的这些发布注释来审查 Intel 媒体加速器参考软件的最新修改和改进。 您将会发现PDF 中的最新功能、 最著名的配置、 硬件和软件兼容性以及已知问题 。
    发表于 08-04 06:57

    英特尔媒体加速器参考软件Linux版用户指南

    英特尔媒体加速器参考软件是用于数字标志、交互式白板(IWBs)和亭位使用模型的参考媒体播放应用软件,它利用固定功能硬件加速来提高媒体流速、改进工作量平衡和资源利用,以及定制的图形处理
    发表于 08-04 06:34

    【书籍评测活动NO.18】 AI加速器架构设计与实现

    Inference过程。从技术类别看,本书主要讨论神经网络硬件,尤其是芯片设计层面的内容,如何训练出优秀的模型、如何设计神经网络加速器的驱动程序和编译等内容均非本书重点。本书内容主要分三部分:神经网络的分析
    发表于 07-28 10:50