北卡罗莱纳州立大学的研究人员最近在第35届IEEE国际数据工程大会(the 35th IEEE International Conference on Data Engineering,简称ICDE 2019)上发表了一篇论文,介绍了他们发明的新技术,该技术可以最高减少 69%的深度神经网络训练时间。
慎熙鹏(Xipeng Shen)博士以及博士研究生开发了一种名为自适应深度重用(Adaptive Deep Reuse,简称 ADR)的技术,该技术利用了输入到神经网络层的数据值之间的相似性。训练神经网络的一个基本操作是把输入数据的向量与权重矩阵相乘,正是这种乘法运算消耗了训练过程中大部分的处理能力。
ADR 的核心思想是,不是对每个唯一的输入向量重新计算向量-矩阵乘积,而是训练过程把输入进行聚类,对相似的输入向量重用单个近似乘积结果。这确实降低了计算精度;但是,训练的早期阶段“与后期阶段相比,对近似误差的敏感性要低一些。”在后期阶段,处理过程调整聚类参数以减少近似误差。此外,聚类和近似不仅可以用于神经网络的输入,还可以用于网络隐藏层的激活映射。
该团队通过在三种流行的卷积神经网络(CNN)图像分类架构训练中的使用对 ADR 进行了评估,这三种神经网络是:CifarNet、AlexNet和VGG-19。ADR 分别减少了 CifarNet 63%、VGG-19 68%和 AlexNet 69%的训练时间,而且都没有损失精度。
InfoQ 就慎博士的工作对他进行了采访。
InfoQ:请问,是什么给您灵感发明了这个新技术?在开发自适应深度重用技术前,您是否尝试了其他方法?
慎熙鹏:这个想法来自我们的长期远景。总体来看,在这个世界上,任何时刻都有很多计算是不必要的。但是,通过关注深度神经网络,我们一直在思考,是否能够找出这些冗余的计算并避免它们的发生。在此之前,我们尝试了很多方法。我们尝试查看过滤器权重矩阵,它可以是稀疏矩阵;也就是说,其中的很多元素为 0。我们进行了探索,试图避免和 0 做乘法,但是很难。然后,我们意识到,激活映射或输入可以是另一个尝试角度。我们的见解始于输入:很多图像拥有大量相似或相同的像素点。一位研究生调查了现实世界的数据集,发现的确如此。接着,我们希望知道,在中间层上是否也是这样,没错,也是这样。有了这个结论,我们唯一要做的就是,如何有效的找到重用机会并转化为实际的时间节省。在我们找到解决方案后,自适应深度重用技术就这样诞生了。
InfoQ:您在TensorFlow上实现了它;为什么是 TensorFlow 而不是其他框架呢?自适应深度重用是否可以应用于其他框架?
慎熙鹏:我们选择 TensorFlow 的原因是我们对它更为熟悉。它也是非常流行的框架。该技术本身是非常基础的,试图加速矩阵-向量乘法的低级运算,并且它也可以跨平台工作。
InfoQ:该技术既可以用于推理时间,也可以用于训练;您是否将其视为一种有价值的增强,可以用于计算受限环境(如移动或物联网)的推理?
慎熙鹏:我们已经准备了一篇论文,即将在 6 月举行的国际超级计算大会(International Conference on Supercomputing,ICS 2019)上发表,该论文是关于在推理中使用该技术。在该论文中,我们展示了深度重用可以将推理加速两倍。我们在服务器和嵌入式设备上都实现了,因此,该技术已经证明其有可能用于嵌入式设备,如物联网。
InfoQ:该技术是否适用于其他深度神经网络架构,比如,RNN 或 Transformer/Attention 网络?
慎熙鹏:是的,可以的。我们讨论过在LSTM上使用它,但是还未通过实验对它的好处做定量判断。
InfoQ:您是否能谈谈未来相关的工作?
慎熙鹏:有很多可能的方向。我们研究了激活映射和输入方面,但是,在深度神经网络中可能还有其他潜在的重用机会。
除 CNN 之外,还有其它类型的网络:我们需要在其他网络(如 LSTM)中定量地确定其优势。其他研究人员已经问过把这个想法应用于他们系统的可能性。模式可能不同,因此,对创新来说,可能有新的挑战和新的机会。但是,我们的目标是:把该技术推广到其他网络。
我们也可以把该技术应用于分布式训练,那里会有一些有趣的挑战等着我们:比如,重用跨节点的数据以实现模型并行。
可以在ICDE 2019网站上阅读本论文。
查看英文原文:Xipeng Shen on a New Technique to Reduce Deep-Learning Training Time
评论