前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZeroQ:基于Data-Free的30秒快速量化方法

ZeroQ:基于Data-Free的30秒快速量化方法

作者头像
AI异构
发布2020-09-22 10:47:58
1.9K0
发布2020-09-22 10:47:58
举报
文章被收录于专栏:AI异构AI异构

ZeroQ:基于Data-Free的30秒快速量化方法

ZeroQ 是北京大学与 Berkeley 联合发表在 CVPR 2020 的 Data-Free 量化工作。本文是一种无需数据集,通过优化随机数据产生“蒸馏数据”,进而实现均匀量化和混合比特量化的方法。与最近提出的 DFQ 方法相比,ZeroQ 在 MobileNetV2上可以实现1.71%的量化精度提高,另外 ZeroQ 的计算开销非常低,并且可以在不到30秒的时间内完成整个量化过程。

  • 论文题目:ZeroQ: A Novel Zero Shot Quantization Framework
  • 论文网址:https://arxiv.org/abs/2001.00281v1
  • 代码参考:https://github.com/amirgholami/ZeroQ

动机

量化是减少神经网络推理时间和减少内存占用的一种有前途的方法。但是,大多数现有的量化方法都需要访问原始训练数据集以在量化期间进行再训练。例如,由于隐私和安全性考虑,对于具有敏感或专有数据的应用程序通常是不可能的。现有的zero-shot量化方法使用不同的启发式方法来解决此问题,但是它们导致性能不佳,尤其是在量化到超低精度时。在这里,我们提出ZeroQ,这是一种新颖的zero-shot量化框架,可以解决这一问题。ZeroQ允许混合精度量化,而无需访问训练或验证数据。这是通过优化“蒸馏数据集”来实现的,该数据集经设计可匹配网络不同层上的批标准化的统计数据ZeroQ支持统一和混合精度量化。对于后者,我们引入了一种新颖的基于Pareto边界的方法,可以自动确定所有图层的混合精度位设置,而无需进行手动搜索。我们在各种模型上广泛测试了我们提出的方法,包括ImageNet上的ResNet18/50/152,MobileNetV2,ShuffleNet,SqueezeNext和InceptionV3,以及Microsoft COCO数据集上的RetinaNet-ResNet50。特别是,我们证明,与最近提出的DFQ方法相比,ZeroQ在MobileNetV2上可以实现1.71%的量化精度提高。重要的是,ZeroQ的计算开销非常低,它可以在不到30秒的时间内完成整个量化过程(ImageNet上ResNet50的一个epoch训练时间的0.5%)。

方法

ZeroQ方法示意图

蒸馏数据(Distilled Data)
算法

通过(3)式优化得到“蒸馏数据”

x^{r}

,其中

\mu_{i}

\sigma_{i}

是模型输入伪数据后BN层的统计特征均值和标准差,

\tilde{\mu}_{i}

\tilde{\sigma}_{i}^{r}

是卷积层输出值的统计特征均值和标准差。

\min _{x^{r}} \sum_{i=0}^{L}\left\|\tilde{\mu}_{i}^{r}-\mu_{i}\right\|_{2}^{2}+\left\|\tilde{\sigma}_{i}^{r}-\sigma_{i}\right\|_{2}^{2} \quad (3)
可视化

蒸馏数据可视化

为验证蒸馏数据的有效性,通过(2)式测量了模型对每一层量化的敏感性,灵敏度度量在原始模型和量化模型之间使用KL散度。

\Omega_{i}(k)=\frac{1}{N} \sum_{j=1}^{N_{d i s t}} \mathrm{KL}\left(\mathcal{M}\left(\theta ; x_{j}\right), \mathcal{M}\left(\tilde{\theta}_{i}(k-\text {bit}) ; x_{j}\right)\right) \quad (2)

其中

\Omega_{i}(k)

衡量第 i 层量化为 k 位时的敏感程度,而

\tilde{\theta}_{i}(k-\text {bit})

指第 i 层中具有 k 位精度的量化模型参数。如果

\Omega_{i}(k)

小,表示模型对 k-bit 量化不敏感。当量化为 4bit 权重时,ResNet50 中每一层的灵敏度如下图左所示;下图右为量化为 2/4/8 位权重精度时的 ResNet50 灵敏度(使用蒸馏数据测得)。可以看出量化位宽越少,敏感度越高。

量化敏感性可视化分析

帕累托边界(Pareto Frontier)

混合精度量化的主要挑战是确定整个模型的确切位精度配置,为减少搜索空间。本文采用的方法主要思想是对敏感度更高的层使用较高的位精度,对敏感度较低的层使用较低的位精度。为了计算精确的位精度设置,本文提出了一种类似于Pareto 边界方法。对于 Starget 的目标量化模型大小,本文针对导致 Starget 模型大小的每个位精度配置测量模型的整体敏感性,选择与最小整体灵敏度相对应的位精度设置,即解决优化问题(4)。

\min _{\left\{k_{i}\right\}_{i=1}^{L}} \Omega_{s u m}=\sum_{i=1}^{L} \Omega_{i}\left(k_{i}\right) \text { s.t. } \sum_{i=1}^{L} P_{i} * k_{i} \leq S_{\text {target }} \quad (4)

帕累托边界结果可视化

实验结果

ImageNet 结果

ResNet18量化结果

ResNet50量化结果

MobileNetV2量化结果

ShuffleNet量化结果

目标检测结果

Microsoft COCO RetinaNet量化结果

消融实验

蒸馏数据的有效性

蒸馏数据的有效性

敏感度分析

敏感度分析

目标检测二值量化——BiDet

神经网络二值量化——ReActNet

神经网络低比特量化——TQT

神经网络低比特量化——LSQ

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI异构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ZeroQ:基于Data-Free的30秒快速量化方法
    • 动机
      • 方法
        • 蒸馏数据(Distilled Data)
        • 帕累托边界(Pareto Frontier)
      • 实验结果
        • ImageNet 结果
        • 目标检测结果
      • 消融实验
        • 蒸馏数据的有效性
        • 敏感度分析
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档