
摘要
网络量化显著降低了模型推理的复杂度,已在实际部署中得到广泛应用。然而,现有的大多数量化方法主要针对卷积神经网络(CNNs)设计,在应用于全量化视觉Transformer时,性能会严重下降。本文指出,这一问题的根源在于LayerNorm输入存在严重的通道间差异,并提出一种系统性方法——2的幂因子(Power-of-Two Factor, PTF),以有效缓解全量化视觉Transformer的性能退化并进一步降低推理复杂度。此外,我们观察到注意力图中存在极端非均匀分布的现象,为此提出Log-Int-Softmax(LIS)方法,通过采用4比特量化与BitShift运算,既保持了注意力分布的表达能力,又简化了推理过程。在多种基于Transformer的架构与基准测试上的全面实验表明,我们的全量化视觉Transformer(FQ-ViT)在性能上超越了以往方法,甚至在注意力图上使用更低的比特宽度仍能取得优异表现。例如,在ImageNet上,ViT-L模型达到84.89%的Top-1准确率;在COCO数据集上,Cascade Mask R-CNN(Swin-S)模型达到50.8 mAP。据我们所知,FQ-ViT是首个在全量化视觉Transformer上实现近似无损精度下降(约1%)的方法。相关代码已开源,地址为:https://github.com/megvii-research/FQ-ViT。
代码仓库
megvii-research/FQ-ViT
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| quantization-on-imagenet | FQ-ViT (DeiT-T) | Activation bits: 8 Top-1 Accuracy (%): 71.61 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (Swin-S) | Activation bits: 8 Top-1 Accuracy (%): 82.71 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (ViT-B) | Activation bits: 8 Top-1 Accuracy (%): 83.31 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (DeiT-B) | Activation bits: 8 Top-1 Accuracy (%): 81.20 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (Swin-T) | Activation bits: 8 Top-1 Accuracy (%): 80.51 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (ViT-L) | Activation bits: 8 Top-1 Accuracy (%): 85.03 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (Swin-B) | Activation bits: 8 Top-1 Accuracy (%): 82.97 Weight bits: 8 |
| quantization-on-imagenet | FQ-ViT (DeiT-S) | Activation bits: 8 Top-1 Accuracy (%): 79.17 Weight bits: 8 |