BRECQ

块重建-BRECQ

在PTQ的框架下,使用了 以块为单位的量化方法,将PTQ的位宽提升到int 2的水准。

量化背景

均匀对称量化中,我们需要最小化量化误差

第一个W是浮点权重,第二个是量化权重 

在QAT中,研究者追求最小化任务目标也就是任务损失

但是在PTQ中我们只有,并且只有很少数量的校准数据

泰勒展开

为了分析量化带来的损失,研究者使用了泰勒展开定量分析

是梯度 ,  是Hessian矩阵,是权重的变动

块重建

在PTQ中,network-wise reconstruction对二阶误差有准确的估计,但是它在PTQ的校准数据集上容易出现过拟合的现象,因此我们寻求另一种方法。

layer-wise reconstruction 是一个不错的选择,它类似于贪心算法,致力于得到量化后每一层的输出与原模型FP32的输出形状一致,layer reconstruction相当于一个逐层的正则化器。在局部看来这是一个很好的方法,能够具有更高的泛化能力。但是将目光格局放大,layer reconstruction的最终结果不一定是最佳的结果。

因此作者找到了在这两者之间的一个粒度-block reconstruction。块被定义成神经网络的基本模块,通常只有三四层。在文章中定义了四个粒度

本文在这四个重建粒度之间进行了选择,发现块重建在大量网络结构以及图像分类和检测任务中都是最优的选择。

同时,为了进一步提升离线量化上限,本文也探索了离线量化的混合精度问题。在以往的文献中,混合精度往往都是层间独立的,即用不同的比特数求出每层的敏感度,再将敏感度加起来得到整个网络的敏感度。可以用如下公式来表示,c 是比特向量,包含了每层的比特数,H© 是硬件评估函数,测量了模型的规模,或者延迟等硬件参数。层与层之间不是独立的,因此使用块敏感度度量,将每个块内所有的比特排列的敏感度测量出来,块之间的敏感度则是认为独立可直接相加。

实验

消融实验 在ResNet-18和MobileNetV2上进行消融实验。

在各种数据集上与其他方法进行比较(AdaRound方法也是商汤的,两者有一定的关系)

总结

通过对二阶误差的分析,提出了训练后量化框架BRECQ。在块粒度的量化重建达到了跨层依赖和一阶近似的良好平衡,特别是在2位权重量化中BRECQ兼容混合精度,降低了搜索成本。BRECQ在PTQ方面达到了最高的性能,并且是第一个与使用4位的QAT相当的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值