about
Mixed Precision Training for Deep Learning Models (arxiv.org)
6 points by snarang on Oct 11, 2017 | hide | past | pdf | 1 comment on HN

In plain words: Store the network's numbers in 16-bit instead of 32-bit, keeping one full-precision copy of the weights and scaling the loss so tiny gradients aren't lost. It trained huge models of many kinds with nearly 2x less memory.

Abstract · Mixed Precision Training

Deep neural networks have enabled progress in a wide variety of applications. Growing the size of the neural network typically results in improved accuracy. As model sizes grow, the memory and compute requirements for training these models also increases. We introduce a technique to train deep neural networks using half precision floating point numbers. In our technique, weights, activations and gradients are stored in IEEE half-precision format. Half-precision floating numbers have limited numerical range compared to single-precision numbers. We propose two techniques to handle this loss of information. Firstly, we recommend maintaining a single-precision copy of the weights that accumulates the gradients after each optimizer step. This single-precision copy is rounded to half-precision format during training. Secondly, we propose scaling the loss appropriately to handle the loss of information with half-precision gradients. We demonstrate that this approach works for a wide variety of models including convolution neural networks, recurrent neural networks and generative adversarial networks. This technique works for large scale models with more than 100 million parameters trained on large datasets. Using this approach, we can reduce the memory consumption of deep learning models by nearly 2x. In future processors, we can also expect a significant computation speedup using half-precision hardware units.

Paulius Micikevicius, Sharan Narang, Jonah Alben, Gregory Diamos, Erich Elsen, David Garcia, Boris Ginsburg, Michael Houston, Oleksii Kuchaiev, Ganesh Venkatesh, Hao Wu
arXiv:1710.03740 · cs.AI, cs.LG, stat.ML · submitted Oct 10, 2017 · updated Feb 15, 2018
abstract · pdf · html · Published as a conference paper at ICLR 2018

add comment on HN

Here we show that over 15 large scale deep neural networks can be trained in mixed IEEE float16 (multiplication) + IEEE float32 (addition) with no loss in accuracy.

We are happy to answer questions about this work.