论文部分内容阅读
近年来以神经网络为基础的人工智能技术在学术界和工业界得到了广泛应用和发展。随着神经网络模型和训练所需数据量的不断增加,使得单机训练神经网络越来越困难。分布式训练神经网络不仅可以极大减少训练时间,也可对某些单机情况下无法训练的神经网络进行训练。在可预见的未来,分布式训练神经网络将成为必然选择。如何提高分布式训练神经网络的效率和可扩展性则显得尤为重要。本文针对这一问题提出低精度分布式更新算法LPDU,将原始浮点数梯度转换为低精度数据进行传输,减少同步时间开销,进而提升分布式训练效率,通过混合精度更新算法,保证训练精度。本文通过分析LPDU算法各部分的时间开销和神经网络的参数规模得出LPDU算法在特定神经网络训练中的理论性能提升,并通过实验加以验证。通过对比LPDU算法与原始更新算法在图像分类,目标检测任务的相关实验结果,证明了 LPDU算法在图像分类与目标检测任务中均能达到与原始更新算法相同的理想精度。同时对分布式训练性能有一定提升。在8节点情况下,Resnet50的训练效率由原始的84.05%提升到了 87.15%,VGG网络的训练效率相对于原始的79.42%提升至了 86.55%,SSD网络相对于原始效率有4.83%的提升。基于LPDU算法减少梯度尾数位的思路,以及分类网络和物体检测网络对梯度数据精度要求不同的特点,本文针对分类网和物体检测网络提出了三种极限精度梯度压缩方法EPGC:适用于分类网络的9比特梯度压缩方法和8比特梯度压缩方法,适用于物体检测网络的1 1比特梯度压缩方法。9比特梯度压缩方法是在浮点数基础上去除所有尾数位,仅使用1个符号位和8个指数位表示梯度;8比特梯度压缩方法是在半精度浮点数基础上去除8位尾数位,使用1个符号位,5个指数位和2个尾数位表示梯度;11比特梯度压缩方法是在半精度浮点数基础上去除5位尾数位,使用1个符号位,5个指数位和5个尾数位表示梯度。为快速验证本文提出的梯度压缩方法的可行性,本文通过在原始浮点数或半精度浮点数基础上对特定尾数位置零的方式模拟这三种压缩方法。通过实验证明这三种梯度压缩算法均能保证神经网络在对应任务中的训练精度,说明通过这三种梯度压缩算法提升分布式系统的可扩展性和训练效率的可行性。