Mixed Precision Training
Las redes neuronales profundas han permitido el progreso en una amplia variedad de aplicaciones. El aumento del tamaño de la red neuronal generalmente da como resultado una mayor precisión. A medida que crece el tamaño de los modelos, también aumentan los requisitos de memoria y computación para entrenar estos modelos.
Una técnica para entrenar redes neuronales profundas utilizando números de punto flotante de precisión media. Esta técnica, los pesos, activaciones y gradientes se almacenan en formato de precisión media IEEE. Los números flotantes de precisión media tienen un rango numérico limitado en comparación con los números de precisión simple. Dos técnicas para manejar esta pérdida de información. En primer lugar, es mantener una copia de precisión simple de los pesos que acumula los gradientes después de cada paso del optimizador. Esta copia de precisión simple se redondea al formato de precisión media durante el entrenamiento. En segundo lugar, es escalar la pérdida adecuadamente para manejar la pérdida de información con gradientes de precisión media. Este enfoque funciona para una amplia variedad de modelos, incluidas las redes neuronales de convolución, las redes neuronales recurrentes y las redes antagónicas generativas.
Esta técnica funciona para modelos a gran escala con más de 100 millones de parámetros entrenados en grandes conjuntos de datos. Con este enfoque, podemos reducir el consumo de memoria de los modelos de aprendizaje profundo en casi 2 veces. En los procesadores futuros, también podemos esperar una aceleración de cómputo significativa utilizando unidades de hardware de precisión media. Esta técnica funciona para modelos a gran escala con más de 100 millones de parámetros entrenados en grandes conjuntos de datos. Con este enfoque, podemos reducir el consumo de memoria de los modelos de aprendizaje profundo en casi 2 veces. En los procesadores futuros, también podemos esperar una aceleración de cómputo significativa utilizando unidades de hardware de precisión media. Esta técnica funciona para modelos a gran escala con más de 100 millones de parámetros entrenados en grandes conjuntos de datos. Con este enfoque, podemos reducir el consumo de memoria de los modelos de aprendizaje profundo en casi 2 veces. En los procesadores futuros, también podemos esperar una aceleración de cómputo significativa utilizando unidades de hardware de precisión media.
Los métodos de precisión mixtos combinan el uso de diferentes formatos numéricos en una carga de trabajo computacional. Este documento describe la aplicación de precisión mixta al entrenamiento de redes neuronales profundas.
Beneficios
La complejidad de las DNN ha ido en aumento para lograr estos resultados, lo que a su vez ha aumentado los recursos computacionales necesarios para entrenar estas redes. Una forma de reducir los recursos necesarios es usar aritmética de menor precisión, que tiene los siguientes beneficios.
- Disminuya la cantidad requerida de memoria: El formato de coma flotante de precisión media (FP16) utiliza 16 bits, en comparación con los 32 bits de precisión simple (FP32). Reducir la memoria requerida permite entrenar modelos más grandes o entrenar con minilotes más grandes.
- Acortar el tiempo de entrenamiento o inferencia: El tiempo de ejecución puede ser sensible a la memoria o al ancho de banda aritmético. La precisión media reduce a la mitad el número de bytes a los que se accede, lo que reduce el tiempo empleado en capas con memoria limitada. Las GPU NVIDIA ofrecen hasta 8 veces más rendimiento aritmético de media precisión en comparación con la precisión simple, lo que acelera las capas con limitaciones matemáticas.
Ref
- https://docs.nvidia.com/deeplearning/performance/mixed-precision-training/index.html
- https://docs.nvidia.com/deeplearning/performance/pdf/Training-Mixed-Precision-User-Guide.pdf
- https://arxiv.org/pdf/1710.03740.pdf
- https://en.wikipedia.org/wiki/Floating-point_arithmetic