Data-free量化

本文介绍了Data-free量化,一种在没有真实数据的情况下进行模型量化的方法。重点探讨了DFQ、ZeroQ和GDFQ三种技术,它们分别通过不同的策略利用BN层信息或生成数据来实现量化。DFQ通过BN层的γ和β参数估计输入范围,ZeroQ利用BN层统计量进行数据蒸馏,而GDFQ则使用GAN生成数据进行量化训练。这些方法在数据受限的场景下为模型压缩提供了可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:https://www.yuque.com/yahei/hey-yahei/quantization-data_free
欢迎转载&引用,但烦请注明出处~

Data-free指的是不需要数据,它可以是完全不依赖数据也不利用生成数据,也可以是利用某些手段来生成数据。在量化上,Data-free既可以用于后训练量化,也可以用于重训练量化。Data-free量化的研究主要是希望在真实数据未知的情况下,对输入进行离线量化操作,通常都是借助BN层的统计信息(均值、方差)来直接确定输入的量化参数,或者生成校准数据来校准得到量化参数。

动机

一般论文会解释说,在某些高隐私的应用场景下,比如医疗数据、医药数据、个人隐私数据等等,这些数据是难以获取甚至无法获取的——但对于模型训练者而言,我既然能用这些数据来训练网络了,为什么不能进一步用这些数据来做量化校准或者做重训练量化?我觉得可能更合理(但也不会很普适)的应用场景是某一方要提供专门的模型压缩服务,模型训练者又不想提供数据给第三方模型压缩服务商,不过如果模型压缩的服务方是以出售或提供工具的形式给模型训练者,那么这样的需求也是不存在的。

总的来说,Data-free的应用场景是很局限的,看似有需求但其实需求应该是比较弱的。不过这两年关于Data-free量化出了几篇论文,我们不妨也拿出来讨论一下。

DFQ

论文:《Data-Free Quantization Through Weight Equalization and Bias Correction (ICCV2019)逐层量化权重吸收输入量化的偏移项
参考:《ICCV2019高通Data-Free Quantization论文解读 | 知乎, IronBoy

为了得到输入的量化参数,我们通常需要得到输入的一个截断范围,DFQ主要考虑“Conv+BN+ReLU”的结构,用BN层训练得到的 γ \gamma γ β \beta β参数(注意不是指数平滑平均得到的均值和标准差),来估计输入的范围。

回顾一下BN的过程
x ( i ) = x ( i ) − μ B σ B 2 + ϵ z ( i ) = γ x ( i ) + β \begin{aligned} \mathbb{ x^{(i)} } &= \frac{ x^{(i)} - \mu_B }{ \sqrt{\sigma^2_B + \epsilon} } \\ z^{(i)} &= \gamma \mathbb{ x^{(i)} } + \beta \end{aligned} x(i)z(i)=σB2+ϵ x(i)μB=γx(i)+β
BN层的输入首先被规范化到均值为0,方差为1的分布下,然后通过一个仿射变换,此时输出的均值为 β \beta β,标准差为 γ \gamma γ。DFQ提出,既然知道BN层输出后的均值和标准差,那么不妨用他们来确定截断范围 [ β i − n γ i , β i + n γ i ] [\beta_i-n\gamma_i, \beta_i+n\gamma_i] [βinγ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值