薛定谔的浮点:深度学习训练中浮点容器的动态自适应
机器学习
2024-05-20 v2 硬件体系结构
摘要
神经网络训练期间张量在内存中的传输主导了时间与能耗。为提升能效与性能,研究一直在探索使用更窄数据表示的方法。迄今这些尝试依赖用户导向的试错以实现收敛。我们提出免除用户此责的方法。我们的方法在训练期间动态调整用于激活值与权重的浮点容器的大小与格式,实现三维自适应:i) 使用何种数据类型,ii) 在哪一张量上,以及 iii) 其如何随时间变化。指数与尾数的不同含义与分布使我们为其各自采用定制方法。我们提出两对有损方法,以在不影响精度的情况下尽可能消除尾数位与指数位。Quantum Mantissa 与 Quantum Exponent 是利用梯度下降算法以逐层粒度学习最小尾数与指数位宽的机器学习压缩方法。它们自动学到许多张量仅需 1 或 2 个尾数位以及 3 或 4 个指数位。总体而言,这两种机器学习方法将占用空间减少 。另者,BitWave 观察训练期间损失函数的变化以在网络范围内调整尾数与指数位宽,带来 的占用空间缩减。最后,我们提出一种可选方法 Gecko,以利用自然涌现的不对称指数分布,对来自 Quantum Exponent 或 BitWave 的结果指数做无损压缩,平均将压缩率提升至 与 。
引用
@article{arxiv.2204.13666,
title = {Schr\"odinger's FP: Dynamic Adaptation of Floating-Point Containers for Deep Learning Training},
author = {Miloš Nikolić and Enrique Torres Sanchez and Jiahui Wang and Ali Hadi Zadeh and Mostafa Mahmoud and Ameer Abdelhadi and Kareem Ibrahim and Andreas Moshovos},
journal= {arXiv preprint arXiv:2204.13666},
year = {2024}
}