首页 > 其他分享 >Ultra-Low Precision 4-bit Training of Deep Neural Networks

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

时间:2025-01-07 21:33:15浏览次数:1  
标签:Training scale Neural Max Precision FP4 梯度 bit 1.6

目录

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 可以表示 (如果我没理解错):

    \[4^{-3}, 4^{-2}, \cdots, 4^2, 4^3, \\ -4^{-3}, -4^{-2}, \cdots, -4^2, -4^3. \]

  • 然后 rounding 规则为:

    \[round(x) = \left \{ \begin{array}{ll} 4^{n-1} & x \le 4^n / 1.6, \\ 4^{n} & x > 4^n / 1.6. \\ \end{array} \right. \]

    注意到, \((4^n + 4^{n-1}) / 2 = 4^n / 1.6\).

GradScale

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

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

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

Two-Phase Rounding (TPR)

  • 作者还提出了两种 rounding 方式, 分别用于梯度回传中 \(dL / dx, dL/dW\). 说实话, 我没看明白为什么这种做法能够保留更多信息?

标签:Training,scale,Neural,Max,Precision,FP4,梯度,bit,1.6
From: https://www.cnblogs.com/MTandHJ/p/18658418

相关文章

  • 论文阅读:ERNIE 3.0: Large-scale Knowledge Enhanced Pre-training for Language Unde
    简介ERNIE3.0融合了自回归和自编码,在由纯文本和大规模知识图谱组成的4TB语料库上训练大规模知识增强模型,传播了自然语言理解、自然语言生成和知识提取三个任务范式。框架自然语言处理的不同任务范式始终依赖于相同的底层抽象特征,例如词汇信息和句法信息,但顶级具体特征的要......
  • Scalable Methods for 8-bit Training of Neural Networks
    目录概RangeBatchNormalization代码BannerR.,HubaraI.,HofferE.andSoudryD.Scalablemethodsfor8-bittrainingofneuralnetworks.NeurIPS,2018.概本文针对BatchNorm模块在低精度(8-bit)的情况下进行一个合适的改进.RangeBatchNormalization对于......
  • Training Deep Neural Networks with 8-bit Floating Point Numbers
    目录概主要内容WangN.,ChoiJ.,BrandD.,ChenC.andGopalakrishnanK.Trainingdeepneuralnetworkswith8-bitfloatingpointnumbers.NeurIPS,2018.概本文提出了一种8-bit的训练方式.主要内容本文想要实现8-bit的训练,作者认为主要挑战是两个向量的......
  • 【AI学习笔记5】用C语言实现一个最简单的MLP网络 A simple MLP Neural network in C
    用C语言实现一个最简单的MLP网络AsimpleMLPNeural NetworkinClanguage 从图像中识别英文字母【1】从图像中识别多个不同的数字,属于多分类问题;每个图像是5*5的像素矩阵,分别包含1-5五个字母数字; 网络结构:一个隐藏层的MLP网络;       每个图像是5x5个......
  • Mixed Precision Training
    目录概主要内容NarangS.,DiamosG.,ElsenE.,MicikeviciusP.,AlbenJ.,GarciaD.,GinsburgB.,HoustonM.,KuchaievO.,VenkateshG.andWuH.Mixedprecisiontraining.ICLR,2018.概本文提出了混合精度训练.主要内容从FP32到FP16的一个重要问题是,......
  • 论文阅读:Securely Outsourcing Neural Network Inferenceto the Cloud with Lightweig
    目录1.引言(Introduction)2.预备知识(Preliminary)2.1加法秘密共享(AdditiveSecretSharing)3.系统概述(SystemOverview)3.1系统架构3.2威胁模型与隐私目标4.设计方案(ProposedDesign)4.1安全卷积层(SCONV)4.2安全批归一化(SBN)4.3安全ReLU激活(SReLU)4.4安全最大池......
  • HAWQ: Hessian AWare Quantization of Neural Networks With Mixed-Precision
    目录概HAWQ(HessianAWareQuantization)DongZ.,YaoZ.,GholamiA.,MahoneyM.W.andKeutzerK.HAWQ:Hessianawarequantizationofneuralnetworkswithmixed-precision.ICCV,2019.概本文利用Hessian的topeigenvalues来定位对应block所需要的量化bitw......
  • PACT: Parameterized Clipping Activation for Quantized Neural Networks
    目录概主要内容ChoiJ.,WangZ.,VenkataramaniS.,ChuangP.I.,SrinivasanV.andGopalakrishnanK.PACT:Parameterizedclippingactivationforquantizedneuralnetworks.2018.概本文提出对网络中的激活值进行裁剪以实现更低量化.主要内容作者的思想很简单......
  • 对准确度(accuracy)、精确率(precision)、召回率(recall)、F1值文章的总结
    前言准确度、精确率、召回率、F1值作为评估指标,经常用到分类效果的评测上。比较好理解的二分类问题,准确度评估预测正确的比例,精确率评估预测正例的查准率,召回率评估真实正例的查全率。如何把这些评估指标用到多分类上呢,比如有三个类别A、B、C,准确度好理解,只要关系是否预测正确即......
  • 通过代码彻底搞懂 Ragas 的 Context Precision 是什么
    通过代码彻底搞懂Ragas的ContextPrecision是什么在信息检索和机器学习中,评估检索结果的质量非常重要。ContextPrecision是一个用于衡量"检索上下文"中相关文本块比例的指标。它的计算方法是对上下文中每个文本块的精度@k值取平均。精度@k是指在排名k位置的相关文本......