PTQ4ViT

문상준·2025년 10월 27일

논문 리뷰

목록 보기
15/24
post-thumbnail

PTQ4ViT: Post-Training Quantization for Vision Transformers with Twin Uniform Quantization


PTQ4ViT에 대한 내용

Abstract.

Softmax, GeLU 이후 activation의 distribution
≠ gaussian distribution
+
MSE, cosine distance를 통한, optimal SF 결정은 정확 X


Twin uniform Q
+
Hessian guided metric을 통한, SF optimizing

1 Introduction

생소했던 개념들

  • Self-attention module은 global information을 포착
  • PTQ는 label 없는 calibraion images를 사용

문제1. 특수 분포 activation

  1. Softmax:
    Softmax를 거친 값들은 [0, 1] 범위에서 매우 unbalanced된 distribution을 갖음.
    대부분 값이 0에 매우 가까움.
    +
    큰 값의 수는 매우 적지만, 이 값들은 두 patch 간 높은 연관성(attention)을 의미. ⇒ 매우 중요한 값
    ⇒ 이 큰 값을 Q 범위에 포함시키기 위해, 큰 SF 要
    ⇒ 大多數의 작은 값들이 0으로 Q됨
    ⇒ Q Error ↑
  2. GeLU:
    GeLU를 거친 값들은 asymmetrical한 distribution 갖음.
    양수 값들은 분포가 넓음.
    +
    음수 값들은 skewed됨.

⇒ 이런 특수 distribution을 해결하기 위해, Twin uniform Q
이는 값들은 두 범위로 분리하여 각각 Q.

문제2. SF를 결정하는 지표 정확 X

MSE, Cosine distance, Pearson correlation coefficient등이 있었음.
⇒ local information만 사용
⇒ suboptimal
Hessian guided metric

2.1 Vision Transformer

생략

2.2 QuantizationFang, J., Shafiee, A., Abdel-Aziz, H., Thorsley, D., Georgiadis, G., Hassoun, J.: Post-training piecewise linear quantization for deep neural networks. In: ECCV (2020)

3 Method

3.1 Base PTQ for Vision Transformer

생략

3.2 Twin Uniform Quantization

  • Softmax 후 활성화 분포: 활성화 분포가 매우 불균형하며(unbalanced), 대부분의 값이 0에 매우 가깝고 소수의 값만이 1에 가깝습니다.
  • GELU 후 활성화 분포: GELU 함수를 거친 값들은 높은 비대칭 분포(highly asymmetric distribution)를 가지며, 무한정한 양수 값들은 범위가 큰 반면 음수 값들은 분포 범위가 매우 작습니다.

Twin uniform Q

Twin uniform Q는 2개의 Q 범위 R1,R2R_1, R_2를 갖음.
각각은 다른 SF ΔR1\Delta_{R1}ΔR2\Delta_{R2}에 의해 제어됨.

  • Softmax 後 값에 대한 범위 설정
    작은 ΔR1softmax\Delta_{R1}^{softmax}를 사용하여, R1=[0,2k1ΔR1softmax)R_1=[0, 2^{k-1}\Delta{R1}^{softmax})를 잘게 Q.
    +
    상대적으로 큰 ΔR2softmax=12k1\Delta_{R2}^{softmax}=\frac{1}{2^{k-1}}로 고정하여, R2=[0,1]R_2=[0, 1]을 크게 크게 Q. ∵ calibration 영향을 피하기 위해.

  • GeLU 後 값에 대한 범위 설정
    작은 ΔR1GeLU=0.1702k1\Delta_{R1}^{GeLU}=\frac{0.170}{2^{k-1}}로 고정하여, R1=[2k1ΔR1GeLU,0]R_1=[-2^{k-1}\Delta_{R1}^{GeLU}, 0]를 잘게 Q. ∵ 음수 전체 범위 [GeLUmin,0][GeLU_{min}, 0]를 포괄하려고.
    +
    상대적으로 큰 ΔR2g\Delta_{R2}^g를 사용하여, R2=[0,2k1ΔR2GeLU]R_2=[0, 2^{k-1}\Delta_{R2}^{GeLU}]를 크게 크게 Q.

⇒ 이제 optimal ΔR1softmax,ΔR2GeLU\Delta_{R1}^{softmax}, \Delta_{R2}^{GeLU}만 찾으면 됨.


그림4에서, optimal 빨간색 범위만 찾으면 됨!!!

3.3 Hessian Guided Metric

Optimal SF를 찾기위해, 여러 metric(MSE, Cosine, Pearson, ...)으로 layer-wise + greedy하게 했었음

물론 Q 前/後 마지막 layer output 간의 distance (L=CE(y^,y)L = CE(\hat{y}, y))를 사용하는 것이 PTQ에서 가장 정확.
But,
forward 너무 많이 해야됨.

Hessian Guided Metric

weight WW를 변수로 취급할 때, Loss의 expectation은 E[L(W)]E[L(W)]

Q는 weight에 작은 perturbation ϵ\epsilon을 갖게 함.
W^=W+ϵ\hat{W}=W+\epsilon

⇒ Taylor series expansion을 통해, Q가 Loss에 미치는영향을 분석 可能


optimal SF를 찾아야 함!!!
minΔ(E[L(W^)]E[L(W)])min_{\Delta}(E[L(\hat{W})]-E[L(W)])을 layer-wise하게 구성해야함.


gˉ(W)\bar{g}(W)는 잘 training된 model에서 0을 갖고, ϵ=(Ol^Ol)\epsilon = (\hat{O_l}-O_l)이어서.

3.4 PTQ4ViT Framework

1단계: Output(yy) 및 gradient 수집

1 ~ 6 line

2단계: Optimal SF찾기

7 ~ 14 line

문제점

10 ~ 13 line에서 특정 layer를 Q하면,
ϵ=(O^lOl)\epsilon = (\hat{O}^l-O^l)이 바뀌는데,
그럼 Hˉ(W)=diag((LO1l)2,...,(LOOll)2)\bar{H}(W) = diag((\frac{∂L}{∂O_1^l})^2, ..., (\frac{∂L}{∂O^l_{|O_l|}})^2) 도 매번 새로 계산해야 되는데, 그렇게 안함...
∵ GPU 메모리 줄이려고...

4 Experiments

4.1 Experiment Settings

  • Softmax 後: ΔR1softmax\Delta^{softmax}_{R1}의 탐색 공간은 [12k,12k+1,...,12k+10][\frac{1}{2^k}, \frac{1}{2^{k+1}}, ..., \frac{1}{2^{k+10}} ]
  • α,beta\alpha, beta, # Round
    • BasePTQ
      • α=0.5,beta=1.2\alpha = 0.5, beta = 1.2, # Round = 1
    • PTQ4ViT
      • α=0,beta=1.2\alpha = 0, beta = 1.2, # Round = 3
  • ImageNet
  • Calibration 32개

4.2 Results on ImageNet Classification Task

4.3 Ablation Study

Conclusion

생략

0개의 댓글