Echoing: 重复数据加速神经网络训练
这篇文章主要探讨了一种名为“Echoing”的技术,该技术通过重复存储在内存中的数据来加速神经网络训练过程。作者认为,这种方法能够在不显著降低模型性能的情况下缩短训练时间。
文章首先指出,现代机器学习训练不再是简单的“fit”过程,而是一个复杂的管道。以训练ImageNet模型为例,数据首先需要从远程服务器或数据库读取。由于数据量巨大,通常无法将其全部加载到内存中,因此需要使用流式读取方式。
数据读取后,需要进行解码、随机排列、数据增强等一系列操作。数据增强是指从单个数据点(例如一张图片)生成多个不同版本,例如裁剪、旋转、改变亮度和颜色等,目的是增加训练数据的多样性。
最后,数据被分批处理,并与其他随机排列和增强过的样本一起送入模型进行训练。由于数据被随机排列,同一个样本在不同批次中会与不同的样本组合,并接受不同的增强操作,从而避免模型过度依赖特定数据样本。
文章认为,通过重复数据,可以减少数据读取和解码的次数,从而加速训练过程。作者建议在实际应用中尝试使用Echoing技术,并根据具体情况进行调整。
CPU 常常是机器学习管道中的瓶颈。数据获取、加载、预处理和增强可能很慢,以至于 GPU 大部分时间处于闲置状态。数据回声是一种技术,它可以重复使用管道中已经存在的数据,以回收这种闲置时间并始终保持 GPU 忙碌。https://arxiv.org/abs/1907.05550摘要:在摩尔定律的黄昏时期,GPU 和其他专用硬件加速器极大地加速了神经网络训练。然而,训练管道的早期阶段,如磁盘 I/O 和数据预处理,并不在加速器上运行。随着加速器的不断改进,这些早期阶段将越来越成为瓶颈。在本文中,我们介绍了“数据回声”,它减少了早期管道阶段使用的总计算量,并在加速器上游的计算量主导训练时间时加速训练。数据回声重复使用(或“回声”)来自早期管道阶段的中间输出,以回收闲置容量。我们研究了不同数据回声算法在各种工作负载、不同回声量和不同批次大小上的行为。我们发现,在所有设置中,至少有一种数据回声算法可以使用更少的上游计算来匹配基线的预测性能。我们测量了在网络上读取训练数据时,ResNet-50 在 ImageNet 上的实际运行时间减少了 3.25 倍。