谷歌 人工智能部门 最近开源了 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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Numerical Recipes 3rd Edition
William H. Press、Saul A. Teukolsky、William T. Vetterling、Brian P. Flannery / Cambridge University Press / 2007-9-6 / GBP 64.99
Do you want easy access to the latest methods in scientific computing? This greatly expanded third edition of Numerical Recipes has it, with wider coverage than ever before, many new, expanded and upd......一起来看看 《Numerical Recipes 3rd Edition》 这本书的介绍吧!