好运五分快三技巧谷歌开源大规模神经网络模型高效训练库 GPipe | 雷锋网

  • 时间:
  • 浏览:22

雷锋网 AI 科技评论按:谷歌昨日在博客中宣布开源大规好运五分快三技巧模神经网络模型高效训练库 GPipe,这是一款分布式机器学习库,都还可以 让研究员在不调整超参数好运五分快三技巧的具体情况下,部署更多的加速器以对大规模模型进行训练,有效扩展了模型性能。雷锋网 AI 科技评论对此进行编译如下。

高度神经网络(DNNs)推进诸多机器学习任务的进步,其中包括语音识别、视觉识别和语言处里等。BigGan、Bert 、GPT2.0 等最新成果表明,DNN 的模型越大,任务处里的表现就越好,而该结论也在过去的视觉识别任务中得到了验证,表明模型大小与分类准确性之间指在很强的关联性。举个例子,2014 年 ImageNet 视觉识别挑战赛的冠军 GoogleNet 通过对 50 万参数进行调整,最终取得 74.8 % 的精确度成绩;仅仅过了三年,2017 年 ImageNet 挑战赛冠军 Squeeze-and-Excitation Networks 调整的参数便高达 1.458 亿(36 倍以上),最终取得了 82.7% 的精确度成绩。与此对应的是,市面的 GPU 内存仅仅提高了 3 倍左右,目前最先进的图像模型早已达到云 TPUv2 可用内存的极限。后来 ,.我 迫切好运五分快三技巧只能这人高效、可扩展的基好运五分快三技巧础设施,以实现大规模的高度学习训练,并克服当前的加速器内存受限什么的问题。

最具有代表性的图像分类模型体现出了 ImageNet 精确度结果与模型大小的强关联性

在《GPipe: Efficient Training of Giant Neural Networks using Pipeline Parallelism》一文中,.我 展示了如可通过流水并行技术(pipeline parallelism)对 DNN 的训练进行扩展以克服或多或少限制。简单来说,GPipe 是一款分布式机器学习库,基于同步随机梯度下降与流水并行技术进行模型训练,适用于由多个连续层组成的任意 DNN。最重要的是,GPipe 都还可以 让研究员在不调整超参数的具体情况下,部署更多的加速器以训练大规模模型,由此有效扩展了性能。为了证明 GPipe 的能力,.我 在 Google Cloud TPUv2s 上训练了另有八个具有 5.57 亿模型参数、 450 x 450 输入图像尺寸的 AmoebaNet-B。该模型在多个流行数据集上表现良好,取得的成就包括:single-crop ImageNet 的精确度提高至 84.3%、 CIFAR-10 的精确度提高至 99%、CIFAR-50 的精确度提高至 91.3%。

核心 GPipe 库已在 Lingvo 框架下进行开源:

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

从小批次至微批次

目前指在这人标准土妙招都还可以 对中等规模的 DNN 模型进行加速。数据并行土妙招(The data parallelism)都还可以 纳入更多的机器,并将输入的数据区分开来。另这人土妙招则是将模型置于加速器上(比如 GPU 或 TPU)——哪此加速器的特殊硬件可加速模型的训练多多线程 运行运行。然而加速器却面临着内存与主机通信速率单位两方面受限的什么的问题。后来 ,通过将模型进行分区,并根据分区配置好运五分快三技巧相应的加速器,模型并行技术都还可以 让你们 在加速器上训练更大规模的 DNN 模型。可能 DNN 指在顺序性,或多或少策略最后可能变成计算期间只能另有八个加速器指在活跃具体情况,未能将加速器的计算能力充分利用起来。此外,标准的数据并行技术只允许在多个加速器上并肩训练具有不同输入数据的相同模型,却无法提升加速器所能支持的最大模型规模。

为了实现跨加速器的高效训练,GPipe 先按照加速器对模型进行划分,后来 自动将小批次的训练示例拆分为更小的微批次。通过在微批次中执行流水管理,加速器得以并行运行。此外,梯度将在微批次中持续每项,以免分区的数量影响到模型的质量。

上图:可能网络指在顺序性,模型并行策略原因 严重的利用不充分什么的问题。 每次都只能另有八个加速器指在活动具体情况。 

下图:GPipe 将输入的小批次拆成更小的微批次,使不同的加速器都还可以 并肩在单独的微批次上运作。

内存和速率单位的最大化

GPipe 会对模型参数的内存分配进行最大化处里。.我 在每个 TPUv2 均配有 8 个加速器核心以及 64 GB 内存(每个加速器 8 GB)的云 TPUv2 上做了相关实验。可能沒有 GPipe,可能内存的限制,单个加速器顶多只能训练 850 万个模型参数。而通过反向传播以及批量分割技术进行重新计算的 GPipe ,成功将中间激活内存从 6.26 GB 减至 3.46GB,由此实现单个加速器上训练 3.18 亿个参数的成果。此外,.我 还发现在流水并行技术的作用下,模型的最大规模与分区数量成正比,正如事前所预料的那样。总的来说,GPipe 使 AmoebaNet 能在云 TPUv2 的 8 个加速器上纳入 18 亿个参数,比起之前 高出了 25 倍。

为了测试模型的速率单位,.我 研究了 GPipe 对 AmoebaNet-D 模型吞吐量的影响具体情况。可能训练过程只能共要另有八个加速器以适应模型尺寸,后来 .我 只能对沒有实施流水并行技术的另有八个分区案例的加速具体情况进行观察。.我 发现训练过程指在近乎线性的加速效果。与另有八个分区案例相比,将模型分布在四倍数量的加速器都还可以 有效实现 3.5 倍的加速效果。.我 的实验均使用了云 TPUv2,但.我 了解到最新的的云 TPUv3 可能每个 TPUv3 均配备了 16 个加速器核心以及 256 GB(每个加速器 16 GB),后来 拥有更理想的表现性能。当.我 在所有 16 个加速器上对模型进行架构设计 ,GPipe 能让基于 1024-token 语录的 50 亿参数 Transformer 语言模型的训练速率单位提高 11 倍。

通过 GPipe 对 AmoebaNet-D 进行加速。或多或少模型不适用于单个加速器。naive-2 基线是将模型拆分为另有八个分区,最终取得的性能结果。Pipeline-k 对应的是 GPipe 将模型分成涵盖 k 个加速器的 k 个分区的最终性能结果。

在不让更改超参数的具体情况下,GPipe 还能通过使用更多加速器来扩展训练结果。后来 ,它都还可以 与数据并行技术相结合,通过互补的土妙招使用更多的加速器来扩展神经网络的训练规模。

精准度测试

.我 试图通过 GPipe 证明,对现有的神经网络进行扩展,都还可以 实现更理想的模型质量。为此,.我 在 ImageNet ILSVRC-2012 数据集上训练另有八个模型参数为 5.57 亿、输入图像尺寸为 450 x 450 的 AmoebaNet-B。该网络被分为 4 个分区,在模型与数据上执行了并行训练多多线程 运行。该巨型模型在沒有任何内部人员数据的具体情况下,最终达到了最先进的 84.3% top-1 / 97% top-5 的single-crop 验证准确度结果。这说明大型的神经网络不仅适用于 ImageNet 等数据集,还能通过迁移学习的土妙招作用于或多或少数据集。事实证明,更好的 ImageNet 模型拥有更理想的传输效果。.我 在 CIFAR10 和 CIFAR50 数据集上进行了迁移学习实验。.我 的巨型模型成功将 CIFAR-10 的精确度提高至到 99%、CIFAR-50 的精确度提高到 91.3%。

结论

当下或多或少机器学习应用(如自动驾驶和医学成像)得以持续发展并取得成功的原因 ,在于实现了尽可能高的模型精确度。然而这也原因 .我 只能构建另有八个更大、更简化的模型,.我 很高兴不能为研究社区提供 GPipe,.我 希望未来它都还可以 成为高效训练大规模 DNN 的基础设施。

via https://ai.googleblog.com/2019/03/introducing-gpipe-open-source-library.html

雷锋网(公众号:雷锋网) AI 科技评论

雷锋网原创文章,未经授权禁止转载。详情见转载须知。