Improving Post-Training Quantization on Object Detection with Task Loss-Guided Lp Metric
quantization에서의 두 접근 방식 QAT(Quantization Aware Training)와 PTQ(Post Training Quantization) 중에서 PTQ 방식에서의 성능 하락을 완화하기 위한 DetPTQ라는 새로운 방식을 제시
Apr 25, 2024
요약
- quantization에서의 두 접근 방식 QAT(Quantization Aware Training)와 PTQ(Post Training Quantization) 중에서 PTQ 방식에서의 성능 하락을 완화하기 위한 DetPTQ라는 새로운 방식을 제시
- object detection 분야에서 DetPTQ를 적용하기 위해 ODOL(Object Detection Output Loss)라는 새로운 loss function을 제시
- 대부분의 case에서 기존의 PTQ의 성능보다 더욱 우수한 성능을 보여줌
Introduction & Related Work
- QAT(Quantization Aware Training)
- 학습 단계에서 미리 inference에 quantization을 적용하는 방식
- 학습 시에 fake quantization node를 추가하여 quantization 시뮬레이션을 통해 weight에 반영
- 학습을 진행하는 동시에 fine-tuning을 같이 진행하는 느낌
- quantization 전후의 모델 성능 하락폭을 최소화할 수 있음
- 사전 학습된 모델에 해당 방식으로 학습을 할 경우에는, 당시에 활용한 dataset을 그대로 가져와야하는 단점이 존재함
- PTQ(Post Training Quantization)
- floating point 모델로 이미 학습이 된 weight값들에 대하여 quantization하는 방식
- parameter size가 큰 대형 모델의 경우에는 성능 하락폭이 크지 않지만, 소형 모델에서는 성능 하락폭이 커짐
- edge device와 같이 소형 embed 추론 환경에서는 작은 error나 outlier 값에 더더욱 민감하기 때문에 적용하기가 훨씬 어려움
- object detection에서도 object classification과 더불어 bbox를 예측하는 과정을 거치기 때문에 mAP에 상당한 영향을 주게 됨
- Local Quantization Reconstruction
- deep learning 모델 특성상 특정 layer의 결과의 작은 차이가 propagation을 통해 큰 차이로 귀결되기 때문에 layer 및 block별로 quantization parameter를 조절하려고 시도
- quantization 전후의 feature map을 비교하기 위해 L2 norm 등의 고정된 metric을 사용
- 본 논문에서는 이러한 고정된 metric을 사용하는 것이 quantization 성능에 부정적인 영향을 미칠 것이라고 주장
- DetPTQ & ODOL(Object Detection Output Loss)
- 각각 서로 다른 layer의 Lp metric에서 p 값을 변화시킴에 따라 성능이 달라지는 것을 확인
- 다양한 feature에 대한 최적의 p 값을 결정하기 위해 DetPTQ를 제안하여 가장 낮은 성능 하락을 보이는 p 값을 선택
- quantization할 때 loss 변화를 나타낼 수 있는 Object Detection Output Loss (ODOL)를 제안
- DetPTQ는 Lp loss가 ODOL에 근사되는 p 값을 선택
- PTQ 관련 식
- 기본적인 PTQ
- 각각의 feature별로 PTQ 적용 + p값을 2가 아닌 여러 값으로 활용할 때의 loss function
- quantization에서의 loss는 다음과 같음
- quantization의 목표는 위의 loss를 최소화하는 scale factor s를 찾는 과정
- 모델의 layer마다 optimal scale factor를 결정하는 p값이 다른 것을 다음 표에서 확인
- L_perf를 최소화하기 위한 ideal한 scale factor (s_p)*를 찾는 것이 목표
- 하지만 ideal scale factor (s_ideal)*는 labeling 되어있지 않기 때문에 실험적으로 찾아야함
- quantization 전후의 결과를 비교하기 위해 ODOL이라는 새로운 loss 함수를 정의
- 새롭게 정의한 ODOL loss 함수가 L_perf의 그래프에 근사하면 L_perf를 대체할 수 있을 것으로 기대
- detection 결과를 classification과 location의 두 부분으로 나누어 해석
- classification loss는 KL distance나 L2를 사용하고, location loss는 L1이나 IOU를 사용
- classification loss와 location loss를 다양하게 조합하여 다음과 같이 그래프를 그렸을 때 L_perf 그래프의 minimum loss 지점에서의 scale factor와 유사한 값을 갖는 조합은 KL + L1로 판명
- 주어진 p값(논문의 실험에서는 P = {1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5})에 대해 L_perf(위의 실험에 의한 결과를 바탕으로 하면 ODOL)를 최소화하는 scale fator (s_p)*를 찾는 과정
Method
Influence of Different p Values
Object Detection Output Loss (ODOL)
DetPTQ Framework
Experimental Results
- layer별로 다르게 quantization하지 않는 간단한 PTQ의 경우에서 다양한 metric을 사용했을 때의 결과 비교
- layer별로 다르게 quantization하는 복잡한 PTQ(다양한 SOTA 방식)의 경우에 대한 결과 비교
Ablation Study
The Quantization Parameters in ODOL
- layer별로 다른 quantization을 적용하는 복잡한 PTQ의 경우 scale factor 이외에도 weight값을 올릴지 내릴지 결정하는 rounding 변수 V도 존재함
- L_perf을 계산할 때 (s_p)* 이외에도 V 또한 영향을 주는데 해당 값의 유무에 따른 결과를 비교하기 위해 실험을 진행
- V로 인해 parameter가 굉장히 많이 늘어난데 비해 optimal p값은 바뀌지 않는 것을 확인
- 최종적으로 L_perf를 계산할 때는 scale factor만 고려하는 것으로 결정
Effect of ODOL on Different Functions
- ODOL의 classification loss와 location loss의 다양한 조합에 따른 mAP 변화
- 위에서 언급한 대로 KL + L1 조합이 가장 성능이 좋음
Conclusion
- layer별로 quantization을 진행하는 복잡한 PTQ에 대해 각 layer별 loss를 계산하는 metric의 다양화
- 정답 label이 주어지지 않은 다양한 최적의 p값을 계산하기 위해 ODOL을 제안
- 수많은 경우에 SOTA 성능보다 더 좋은 quantization 성능을 보임
Share article