跳到主要内容
起居室老虎
返回

I-ViT: Integer-only Quantization for Efficient Vision Transformer Inference

更新于:

摘要: 视觉变换器(ViTs)在各种计算机视觉应用中已经达到了最先进的性能。然而,这些模型具有相当的存储和计算开销,这使得它们在边缘设备上的部署和高效推理变得具有挑战性。量化是一种减少模型复杂度的有前景的方法,而二进制算术管道可以使量化模型执行高效的仅整数推理。不幸的是,二进制算法基于卷积神经网络中的均匀性条件,这不适用于ViTs中的非线性组件,使得ViTs的仅整数推理成为一个开放问题。在本文中,我们提出了I-ViT,一种ViTs的仅整数量化方案,以使ViTs能够使用整数算术和位移来执行整个推理的计算图,而无需任何浮点算术。在I-ViT中,线性操作(例如,MatMul和Dense)遵循带有二进制算术的仅整数管道,非线性操作(例如,Softmax,GELU和LayerNorm)通过所提出的轻量级仅整数算术方法进行近似。更具体地说,I-ViT应用了所提出的Shiftmax和ShiftGELU,这些方法设计为使用整数位移来近似相应的浮点操作。我们在各种基准模型上评估了I-ViT,结果显示仅整数INT8量化的准确性与全精度(FP)基线相当(甚至略高)。此外,我们利用TVM在GPU的整数算术单元上进行实际硬件部署,与FP模型相比,实现了3.72∼4.11×的推理加速。Pytorch和TVM的代码已在https://github.com/zkkli/I-ViT上发布。

1. Intro

Untitled.png

传统的CNN相关的量化工作中一般要求被量化的操作具有“齐次性”,只适合线性或者分段线性的操作。但是ViT中的GELU,Softmax等操作都不是线性的。对比的FastTransformer直接保留了中间的FP32操作(防止掉点),代价是推理非常慢,因为推理速度完全受制于浮点运算单元等,而它们的性能显然不如纯整型的计算过程。

Contribution:

Untitled.png

2. Related Works

2.1. Vision Transformers

ViT, DeiT, 总体来讲在大数据集上超过了传统的基于卷积的神经网络,但是参数量很大,计算的overhead很高。

2.2. Model Quantization

之前的量化工作集中在CNN上,比如DoReFa,LQ-NET,LSQ,但是在ViT上没用。

ViT上的量化工作有Q-ViT,PTQ4ViT,FQ-ViT,RepQ-ViT。但是上面这些量化的工作在inference的过程中还是需要有浮点的介入(Quantization & dequantization的过程),效率不高。

2.3. Integer-only quantization

相比有浮点介入的操作,纯整型的pipeline效率肯定更高一些。I-BERT在BERT上实现了纯整型的推理,但是中间的高阶多项式推理的开销比较大,并且两者使用的数据不同,分布不同,I-BERT中的估计不一定准确。在这篇文章之前还没有在ViT上实现的纯整形量化。

3. Methodology

3.1. Overview

Untitled.png

Formula:

Multi-head Self-Attention:

Multi-Layer Perceptron:

量化是均匀对称量化:

上面量化的操作只适合线性的操作而不适合softmax等非线性的操作,因此文章中提出了一些型的方法逼近原本的非线性操作,并且利用移位等操作减小开销。

3.2. Dyadic Arithmetic for Linear Operations

输入要包括两个参数,比如输入,矩阵乘的过程写作:

然后要把 reduce到INT8上来:

缩放因子S都是浮点数,但是一般重新scale到

所以最终有:

这个操作过程中就不涉及任何浮点数,只有纯整型的操作了。

3.3. Integer-only Softmax: Shiftmax

普通softmax:

文章里做改进的实际上也是减去max之后的safe-softmax:

近似:

最终有:

Untitled.png

3.4. Integer-only GELU: ShiftGELU

,所以

用Shiftmax里面的估计:

Untitled.png

3.5. Integer-only LayerNorm: I-LayerNorm

纯整数算均值和方差都可以,但是开方不行,所以用下面这种迭代的方法估计:

其中的初始值是。最开始设计的收敛判定是,但是latency可能会受影响。后面改成固定的10次迭代,大部分情况下都能收敛。

4. Experiments

We evaluate I-ViT in both accuracy on the large-scale classification task and latency on the practical hardware to fully demonstrate the superiority, and I-ViT can accelerate over the FP model while achieving similar (or even slightly higher) accuracy.

跟FP,FasterTransformer,I-BERT对比,做了L1 LayerNorm in Fully-8bit和Log-Int-Softmax的消融实验。

4.1. Accuracy Evaluation

Untitled.png

4.2. Latency Evaluation

总体latency的提升大概三到四倍,见下图。好像只比I-BERT强零点几ms。

4.3. Ablation Studies

Untitled.png

Untitled.png

5. Conclusion

In the future, we will consider deploying I-ViT on dedicated integer-only hardware (e.g., FPGAs) to obtain better acceleration performance. Furthermore, we also plan to extend I-ViT to more complex vision tasks (e.g., object detection and semantic segmentation).


分享这篇文章:

上一篇
The Minimum Equivalent DNF Problem and Shortest Implicants
下一篇
Efficient and Effective Methods for Mixed Precision Neural Network Quantization for Faster, Energy-efficient Inference