写点什么

Google AI 博客:通过数据回传加速神经网络训练

  • 2020-05-19
  • 本文字数:2475 字

    阅读完需:约 8 分钟

Google AI 博客:通过数据回传加速神经网络训练

过去十年来,神经网络的训练速度得到了大幅提高,使得深度学习技术在许多重要问题上的应用成为可能。随着摩尔定律即将走向终结,通用处理器的的改进未取得明显成效,机器学习社区越来越多地转向专用硬件来谋求额外的加速。


GPU 和 TPU 针对高度并行化的矩阵运算进行了优化,而矩阵运算正是神经网络训练算法的核心组成部分。在高层次上,这些加速器可以通过两种方式来加速训练。首先,它们可以并行处理更多的训练样本;其次,它们可以更快地处理每个训练样本。我们知道,并行处理更多训练样本的加速是有限制的,但构建更快的加速器,还能继续加速训练吗?


遗憾的是,并非所有训练管道中的操作都是在加速器上运行的,因此,不能简单地依靠速度更快的加速器来继续推动训练速度的提升。例如,训练管道中的早期阶段(如磁盘 I/O 和数据预处理)涉及到的操作并不能从 GPU 和 TPU 中受益。随着加速器的改进超过 CPU 和磁盘的改进,这些早期阶段日益成为瓶颈,从而浪费加速器的容量,并限制了训练速度的提升。



图为代表了许多大型计算机视觉的训练管道示例。在应用小批量随机梯度下降(mini-batch stochastic gradient descent,(SGD))更新之前的阶段一般不会受益于专用硬件加速器。


考虑这样一个场景:代码从上游到加速器的时间是代码在加速器上运行时间的两倍,对于目前一些工作负载来说,这个场景已经很现实了。即使代码以流水线的方式并行执行上游和下游阶段,上游阶段的代码也会占据大量的训练时间,加速器将有 50% 的时间处于闲置状态。在这种情况下,构建更快的加速器来加速训练根本无济于事。也许,可以通过增加工作量和额外的计算资源来加快输入管道的速度。但这种努力很费时,并且还偏离了提高预测性能的主要目标。对于非常小的数据集,人们可以离线预计算扩展后的数据集,并在内存中加载整个经过预处理后的数据集,但这一做法对于大多数机器学习训练场景来说,行不通。


在论文《通过数据回传加速神经网络训练》(Faster Neural Network Training with Data Echoing)中,我们提出了一种简单的技术,可以重用(或“回传”)早期管道阶段的中间输出,以回收闲置的加速器容量。与其等待更多数据可用,倒不如我们只需利用已有的数据来保持加速器的繁忙状态。



左图:在没有数据回传的情况下,下游算力有 50% 的时间处于闲置状态。

重复数据以加快训练

假设有这样一种情况,对一批训练数据进行读取和预处理所需的时间,是对该批数据执行单个优化步骤所需时间的两倍。在这种情况下,在对已预处理的批处理进行第一个优化步骤之后,我们就可以重用该批处理,并在下一个批处理准备好之前执行第二个步骤。在最好的情况下,重复的数据和新数据一样有用,我们将会看到训练的速度提高了两倍。不过,在现实中,由于重复数据不如新数据有用,数据回传带来的速度提升略小,但与让加速器处于闲置状态相比,它仍然可以带来显著的速度提升。


在给定的神经网络训练管道中,通常有几种方法可以实现数据回传。我们提出的技术涉及到将数据复制到训练管道中某个位置的数据洗牌缓冲区(shuffle buffer)中,但是我们可以在给定管道中产生瓶颈的任何阶段之后自由地插入这个缓冲区。当我们在批处理前插入缓冲区时,我们称之为技术样本回传(technique example echoing);而当我们在批处理之后插入缓冲区时,我们称之为技术批处理回传(technique batch echoing)。样本回传会在样本级别上对数据进行洗牌,而批处理回传则对重复批的序列进行洗牌。我们还可以在数据扩展之前插入缓冲区,这样,每一份重复数据的副本都略有不同(因此更接近于新鲜样本)。在不同阶段之间放置数据洗牌缓冲区的不同版本的数据回传中,所能提供最大速度提升的版本取决于具体的训练管道。

跨工具负载的数据回传

那么,重用数据能有多大用呢?我们在五个神经网络训练管道上尝试了数据回传,这些训练管道涵盖了三个不同的任务:图像分类、语言建模和目标检测,并测量了达到特定性能目标所需的新鲜样本的数量。在超参数调优过程中,我们选择的目标与基线能够可靠达到的最佳结果相匹配。我们发现,数据回传让我们能够用更少的新鲜样本达到目标性能,这表明,重用数据对于降低各种任务的磁盘 I/O 非常有用。在某些情况下,重复数据几乎和新鲜数据一样有用:在下图中,扩展前的样本回传,几乎按重复因子减少了所需的新鲜样本的数量。



当每个数据项重复两次时,数据回传会减少或不改变达到目标样本外性能所需新鲜样本的数量。虚线表示我们所期望的值,假设重复样本和新样本一样有用。

缩短训练时间

当加速器上游的计算占用训练时间时,数据回传可以加速训练。我们测量了在训练管道中实现的训练提速,该管道由于来自云存储的流式传输训练数据的输入延迟而成为瓶颈,这对于当今许多大规模生产工作负载或任何人来说,通过网络从远程存储系统流式传输训练数据都是现实的。我们在 ImageNet 数据集上训练了 ResNet-50 模型,发现数据回传提供了显著的训练提速,在这种情况下,使用数据回传时,速度要快三倍以上。



数据回传可以减少 ResNet-50 在 ImageNet 上的训练时间。在此实验中,从云存储中读取一批训练数据,比使用每批数据进行训练步骤的代码要长 6 倍。图例中的回传因子指的是每个数据项重复的次数。虚线表示如果重复样本与新样本一样有用且不存在回传开销时的期望值。

数据回传保持了预测性能

尽管人们可能会担心重用数据会损害模型的最终性能,但我们发现,在我们测试过的任何工作负载中,数据回传并没有降低最终模型的质量。



通过比较在训练期间获得最佳样本外性能的单个实验,无论有无数据回传,都表明重用数据并不会损害最终模型质量。此处的验证交叉熵(cross entropy)相当于对数困惑度(log perplexity)。


随着 GPU 和 TPU 等专用加速器的改进继续超过通用处理器,我们预计,数据回传和类似策略将会成为神经网络训练工具包中越来越重要的部分。


作者介绍:


Dami Choi,Google AI 学生研究员。George Dahl,高级研究科学家,供职于 Google Research。


原文链接:


https://ai.googleblog.com/2020/05/speeding-up-neural-network-training.html


2020-05-19 13:531469
用户头像
李冬梅 加V:busulishang4668

发布了 960 篇内容, 共 558.1 次阅读, 收获喜欢 1119 次。

关注

评论

发布
暂无评论
发现更多内容

学习Docker就应该掌握的dockerfile语法与指令

霍格沃兹测试开发学社

45张图带你从入门到精通学习WireShark!

wljslmz

Wireshark 网络技术 抓包分析 9月月更

大话测试数据(一)

霍格沃兹测试开发学社

如何做好性能压测(一):压测环境的设计和搭建

霍格沃兹测试开发学社

如何用Sonic云真机打王者

霍格沃兹测试开发学社

小六六学Netty系列之再遇Netty

自然

Netty 网络 9月日更

从成都核酸系统崩溃,谈谈IT系统如何应对10倍以上流量冲击

星汉未来

多云时代如何实现自动化运维?博云给你最优解!

BoCloud博云

云计算 云原生 多云管理平台

融云 2022 社交泛娱乐出海嘉年华,邀你一起「超浪」!

融云 RongCloud

IT 程序猿 社交娱乐

C#/VB.NET: 为Excel表格添加超链接

Geek_249eec

C# Excel VB.NET 超链接

内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档

葡萄城技术团队

前端 PDF JavaScrip

数据可视化分析工具如何在国内弯道超车,迅速崛起?

葡萄城技术团队

云桌面解决方案 企业最佳合作伙伴

力软低代码开发平台

如何利用 xUnit 框架对测试用例进行维护?

霍格沃兹测试开发学社

实战 | 基于JMeter 完成典型电商场景(首页浏览)的性能压测

霍格沃兹测试开发学社

史上最全 Appium 自动化测试从基础到框架实战精华学习笔记(一)

霍格沃兹测试开发学社

小六六学Netty系列之编解码器和handler的调用机制

自然

Netty 网络 9月月更

港股交易系统开发之APP原生or封装?

软件开发大鱼V15988750073

证券 港股交易系统开发 港股打新系统 港股多账户系统 证券app

从普通网站到 PWA 你还在重新写代码吗?

鼎道智联

前端 OS PWA

实战 | UI 自动化测试框架设计与 PageObject 改造

霍格沃兹测试开发学社

谈安全测试的重要性

京东科技开发者

漏洞 软件系统 安全测试 网络安全渗透测试

Java线程池创建方式和应用场景

Java快了!

线程池 java;

极致体验!基于阿里云 Serverless 快速部署 Function

阿里巴巴云原生

阿里云 Serverless 云原生

Linux系统安装Nginx

nginx Linux tree 9月月更

实战 | JMeter 典型电商场景(下单/支付)的性能压测

霍格沃兹测试开发学社

易观千帆《银行APP用户体验分析白皮书》重磅首发,助力银行打造获客新增长点

易观分析

金融 银行

Axios的引入与使用-提供可响应api案例

Sam9029

前端 网络 axios 9月月更

IDaaS系统方舟一账通ArkID内置OIDC认证插件配置流程

龙归科技

Idaas OIDC ArkID

国内唯一|阿里云入选 Gartner 应用性能监控与可观测魔力象限

阿里巴巴云原生

阿里云 云原生 Gartner 可观测

【InfoQ】博睿数据CTO孟曦东访谈实录:可观测性技术是未来发展方向

博睿数据

可观测性 博睿数据 智能运维AIOps 极客有约

全面构建数据安全“护城河”,助力企业数智化升级| 极客星球

MobTech袤博科技

大数据 数据安全

Google AI 博客:通过数据回传加速神经网络训练_文化 & 方法_George Dahl_InfoQ精选文章