谷歌 人工智能部门 最近开源了 GPipe ,这是一个用于快速训练大规模深度学习模型的 TensorFlow 类库。
深层神经网络(DNN)主要用于解决自然语言处理和视觉目标识别等人工智能任务。以视觉识别为例,该领域的最新方法通常以 ImageNet 挑战赛 的获胜方案为基准。每一届冠军的成绩都优于前一届;当然,模型的复杂度也会相应增加。2014 年的冠军 GoogLeNet 通过使用 400 万个模型参数达到了 74.8% 的 top-1 准确率,而 2017 年的冠军 Squeeze-and-Excitation Networks 则使用了 1.458 亿个参数并达到了 82.7% 的 top-1 准确率。
在训练神经网络的时候,模型大小的增加通常会引起问题。为了在合理的时间内完成训练,我们把大部分的计算任务委托给了加速器:诸如 GPU 和 TPU 之类的专用硬件。但是这些设备的内存有限,这也就限制了训练模型的大小。我们可以通过一些方法来减少模型对内存的依赖,比如将数据从加速器内存中置换出去,但这会大大减慢训练速度。另一种解决方案则是模型分区,这可以让模型同时在多个加速器中并行执行。对顺序性 DNN 来说,最好的策略是按层划分模型,然后由不同的加速器来训练不同的层。但是由于 DNN 的顺序性本质,有些时候可能只有一个加速器在工作,别的加速器则因为需要等待其它层的训练结果而闲置下来。
GPipe 通过进一步细化训练任务解决了这个问题,它将批量任务分解为更细小的“微批量”任务,并在每一层中管道化执行这些“微批量”任务。这样,下一层的加速器就可以优先处理上一层已完成的“微批量”任务结果,而不需要等待整个训练过程的结束。
通过使用 GPipe 以及 8 个 TPUv2(第二代 TPU 芯片),谷歌研究人员能够用 18 亿个参数来训练视觉目标识别模型:在使用 GPipe 的情况下,单个 TPUv2 可训练的参数量增加了 5.6 倍。通过此次训练的大规模模型,ImageNet 数据验证的准确率达到了 84.7%,超过了 2017 年夺冠时的 82.7%。
GPipe 的模型分区除了能支持更大的模型以外,它也允许多个加速器并行训练所指定的模型。研究报告称,使用 4 倍以上的加速器可以达到 3.5 倍的加速效果。
Gpipe 目前是 Lingvo 框架 的一部分,该框架主要用来在 TensorFlow 中构建顺序神经网络模型。
查看英文原文: Google Open-Sources GPipe Library for Faster Training of Large Deep-Learning Models
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Uber开源其大规模指标平台M3
- 百度安全开源大规模图数据库HugeGraph
- 微软开源大规模数据处理项目 Data Accelerator
- 微软开源大规模数据处理项目 Data Accelerator
- 解读微软开源 MMLSpark: 统一的大规模机器学习生态系统
- 谷歌开源大规模神经网络模型高效训练库 GPipe
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。