中文

混合精度训练

人工智能 2018-02-19 v3 机器学习 机器学习

摘要

深度神经网络在广泛的应用中取得了进展。增大神经网络的规模通常能提高准确率。随着模型规模的增长,训练这些模型的内存和计算需求也随之增加。我们引入了一种使用半精度浮点数训练深度神经网络的技术。在我们的技术中,权重、激活值和梯度以 IEEE 半精度格式存储。与单精度数相比,半精度浮点数的数值范围有限。我们提出两种技术来处理这种信息损失。首先,我们建议维护一份单精度的权重副本,在每个优化器步骤后累积梯度。该单精度副本在训练过程中被舍入为半精度格式。其次,我们建议对损失进行适当缩放,以处理半精度梯度带来的信息损失。我们证明该方法适用于多种模型,包括卷积神经网络、循环神经网络和生成对抗网络。该技术适用于在大型数据集上训练的具有超过 1 亿参数的大规模模型。使用这种方法,我们可以将深度学习模型的内存消耗减少近 2 倍。在未来的处理器中,我们还可以期待使用半精度硬件单元带来显著的计算加速。

关键词

引用

@article{arxiv.1710.03740,
  title  = {Mixed Precision Training},
  author = {Paulius Micikevicius and Sharan Narang and Jonah Alben and Gregory Diamos and Erich Elsen and David Garcia and Boris Ginsburg and Michael Houston and Oleksii Kuchaiev and Ganesh Venkatesh and Hao Wu},
  journal= {arXiv preprint arXiv:1710.03740},
  year   = {2018}
}

备注

Published as a conference paper at ICLR 2018