混合精度训练
本文介绍了一个使用 8 位浮点表示法训练深度神经网络的方法,减少计算精度和主权重复制的精度要求,并且通过强化误差传播和降低量化噪声的方法来提高模型性能。实验表明,所提出方法在多个数据集和不同工作负载下与精度基线相比不降反升。
May, 2019
本文介绍了使用较低的精度来训练深度神经网络的成功实践,通过引入基于块的操作和浮点随机取整等技术,成功地实现了在 8 位浮点数下对多种深度学习模型和数据集进行了精确的训练。这些新技术为新一代硬件训练平台奠定了基础,并具有提高 2-4 倍吞吐量的潜力。
Dec, 2018
传统优化方法依赖于使用单精度浮点算术,在内存大小和计算性能方面具有成本。然而,混合精度优化技术利用单精度和半精度浮点算术来降低内存需求,同时保持模型准确性。我们在训练模型期间提供了一种算法,通过摆脱参数的浮点副本,实际上只保留半精度数,进一步减少内存使用。我们还通过在反向传播期间执行优化器步骤来探索去除梯度值的好处。在实践中,我们实现了高达 25% 的峰值内存使用降低和 15% 的更快训练速度,同时保持相同水平的准确性。
Sep, 2023
该研究探讨有限精度数据表示和计算对神经网络训练的影响,并通过使用随机舍入的低精度定点计算方法在 16 位宽度的数据表示下训练深度网络来减少能量消耗并获得高分类准确性。
Feb, 2015
科学机器学习 (SicML) 中的物理信息神经网络 (PINNs) 和深度算子网络 (DeepONets) 是用于解决偏微分方程的主要技术,但是使用混合精度训练这些网络既可以降低计算时间和内存消耗,又可以保持模型的准确性。
Jan, 2024
本文提出使用浮点数表示权重和使用定点数表示激活,证明了相较于定点数表示,使用浮点数表示权重更加高效,同时能够优化硬件乘加器设计,实验表明这个方法最多可减少 36% 的权重存储和 50% 的硬件乘加器功耗。
Mar, 2017
该研究探讨了使用低精度浮点数表示法(例如 8 位浮点数格式)对深度学习模型进行训练和推理的影响,结果表明合适的低精度格式选择可加快训练和降低功耗,而不会降低准确性。
Jun, 2022
该研究考虑了使用不同精度数据的卷积神经网络对其分类准确性的影响,发现误差容限不仅在不同网络之间有差异,而且在网络内部也有变化;进一步提出了一种方法,可以找到网络的低精度配置,同时保持高准确性。研究表明,相对于在所有层中使用 32 位浮点表示的传统实现,数据足迹可以平均减少 74%,最高可降至 92%,而相对准确性损失不到 1%。
Nov, 2015
本文研究了使用 Brain Floating Point(BFLOAT16)半精度格式进行深度学习训练的有效性,并实现了在 Tensorflow、Caffe2、IntelCaffe 和 Neon 中进行 BFLOAT16 操作的方法。结果表明,使用 BFLOAT16 张量进行深度学习培训,在达到同样的状态 - 最先进的结果并不需要调整超参数。
May, 2019