모델의 파라미터를 낮은 비트 수로 표현하여 모델 크기와 계산량을 줄이는 방법
학습 후 모델의 weight와 activation을 양자화하는 방법
개요: 모델이 학습을 마친 후, 32-bit 부동 소수점으로 표현된 weight와 activation을 8-bit 정수로 변환하여 저장하는 방법
과정:
장점:
단점:
관련 연구:
"Quantizing deep convolutional networks for efficient inference: A whitepaper" by Y. LeCun, L. Bottou, et al. (2016)
이 논문에선, weight의 채널별 양자화(per-channel quantization)와 activation의 레이어별 양자화(per-layer quantization)를 사용하여 8비트 정밀도로 변환
다양한 CNN 아키텍처에서 부동 소수점 네트워크와 비교할 때 분류 정확도가 2% 이내로 유지될 수 있음
학습 후 weight와 activation을 8비트 정밀도로 변환
Per-channel quantization
는 채널 의 값, 는 채널 의 scale factor
Per-layer quantization
는 해당 레이어의 scale factor
이를 통해 모델 크기를 4배 줄이고, CPU 및 DSP에서 2-3배, 고정 소수점 SIMD 기능이 있는 특수 프로세서에서는 최대 10배의 속도 향상을 얻을 수 있음
추론 시 weight를 양자화하는 방법
개요: 모델의 추론 과정에서 weight를 실시간으로 8-bit 정수로 변환하여 연산을 수행하는 방법
과정:
장점:
단점:
관련 연구:
"Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference" by J. Jacob, P. Warden, et al. (CVPR 2018)
Zero point란 ?
실제 값의 양자화된 표현이 0이 되는 값
이를 통해 실제 값의 범위를 양자화된 값으로 적절하게 매핑할 수 있음
학습 시 양자화를 고려하여 학습하는 방법
개요: 모델이 학습 과정에서 quantization의 영향을 고려하도록 하여 quantization로 인한 성능 저하를 최소화하는 방법
과정:
장점:
단점:
관련 연구:
"Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference" by J. Jacob, P. Warden, et al. (2018)
양자화된 모델의 정확도를 유지하기 위해 학습 과정에서 "Fake Quantization" 사용
Fake Quantization 이란?
- 학습 중에 모델이 실제로 양자화된 상태에서 동작하는 것처럼 시뮬레이션하는 기법
- 모델이 학습하는 동안 weight와 activation 값을 8비트 정수로 변환하여 양자화된 값으로 계산
- 모델이 양자화로 인한 오류를 학습하면서 보정
- 이는, 학습 후 실제 양자화를 적용했을 때 모델의 정확도가 크게 떨어지지 않도록 함
학습 중에 정수 양자화를 시뮬레이션하여 양자화 오류를 모델이 학습하도록 함
양자화로 인한 오류를 최소화하여 양자화 후에도 모델의 정확도를 크게 저하시키지 않음
학습 후 모델의 weight를 양자화하는 방법
- Static Quantization과 Post-Training Quantization은 개념적으로 유사하지만,
Static Quantization은 주로 모든 레이어와 activation 값을 대상으로 하는 반면,
Post-Training Quantization은 특정 최적화 기법이나 부분적인 양자화를 포함할 수 있음- 따라서 Post-Training Quantization은 더 유연하고 다양한 방법을 포함할 수 있는 반면, Static Quantization은 보다 일반적인 접근 방식
개요: 학습된 모델의 weight를 8-bit 또는 4-bit 정수로 변환하여 메모리와 계산 자원을 절약하는 방법
과정:
장점:
단점:
관련 연구:
"Post-Training 4-bit Quantization of Convolutional Networks for Rapid-Deployment" by A. Mishra, E. Nurvitadhi, et al. (2017)
i) Analytical Clipping for Integer Quantization (ACIQ)
ii) Per-channel bit allocation
iii) Bias-correction
다양한 비트 수를 사용하여 양자화하는 방법
개요: 모델의 각 층 또는 각 파라미터에 대해 적절한 비트 수를 선택하여 양자화하는 방법
과정:
장점:
단점:
관련 연구:
"HAQ: Hardware-Aware Automated Quantization with Mixed Precision" by Y. Wang, Y. Chen, et al. (2019)
Weight와 activation을 1-bit로 표현하는 방법