Ultra-Low Precision 4-bit Training of Deep Neural Networks

Sun X., Wang N., Chen C., Ni J., Agrawal A., Cui X., Venkataramani S. and Maghraoui K. E. and Srinivasan V. Ultra-low precision 4-bit training of deep neural networks. NeurIPS, 2020.

本文提出了一种特殊的 FP4 格式以及 Grad Scale 机制来实现 4-bit 量化.

主要内容

Radix-4 FP4 format

  • 4-bit 的训练是很难的 (实际上 8-bit 的目前也才刚刚有了成色), 作者认为一大难点是这种情况下所能表示的数值范围过于有限了. 所以, 作者不采用常用的 [sign, exponent, mantissa] = [1, 2, 1] 的格式, 而是使用 [sign, exponent, mantissa] = [1, 3, 0] 的格式. radix-4 FP4 可以表示 (如果我没理解错):

    43,42,,42,43,43,42,,42,43.

  • 然后 rounding 规则为:

    round(x)={4n1x4n/1.6,4nx>4n/1.6.

    注意到, (4n+4n1)/2=4n/1.6.

GradScale

  • FP16 的训练, 通常需要先将 loss scale 到最大表示范围处, 以尽可能用尽所有的资源, 然后梯度再 1 / scale 回去.

  • FP4 仅通过一次 scale 是远远不够的. 所以作者给每一层都设置了可学习的 scale 参数 scalei,L. 它的更新方式如下:

  • 即如果梯度的最大值已经落在 (Max/2,Max] 这个合理区间内, 则不需要调整. 如果梯度的最大值落在 [0,Max/2] 这个 underflow 区间内, 则需要增大 scalei,L (更新方式是 ×2). 如果梯度的最大值落在 (Max,+), 此时 overflow, 需要减小 scalei,L (更新方式是 /2).

Two-Phase Rounding (TPR)

  • 作者还提出了两种 rounding 方式, 分别用于梯度回传中 dL/dx,dL/dW. 说实话, 我没看明白为什么这种做法能够保留更多信息?
posted @   馒头and花卷  阅读(103)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示