모델 최적화: 경량화 – Quantization-aware Training
ㅁ 경량화
ㅇ 정의:
모델 학습 과정에서 양자화를 고려하여 가중치와 활성값을 정밀도 낮은 형식(예: int8)으로 변환하는 기법으로, 추론 시 메모리와 연산 효율을 높인다.
ㅇ 특징:
– 학습 중에 양자화 오차를 반영하여 파라미터를 조정하므로 추론 시 정확도 손실을 최소화할 수 있다.
– 실제 하드웨어에서 정수 연산을 활용해 속도와 전력 효율을 높인다.
– 일반적인 Post-training Quantization보다 정확도 유지 성능이 우수하다.
ㅇ 적합한 경우:
– 모바일, 임베디드 환경처럼 연산 리소스가 제한된 경우.
– 정확도 유지가 중요한 실시간 추론 서비스.
ㅇ 시험 함정:
– 단순히 학습 후 양자화(Post-training Quantization)와 혼동하는 경우가 많음.
– QAT는 학습 과정에 양자화 시뮬레이션을 포함한다는 점이 핵심.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “양자화 오차를 학습 과정에서 반영하여 정확도 저하를 최소화한다.”
– X: “학습이 끝난 후 양자화를 적용하므로 학습 중에는 부동소수점 연산만 사용한다.”
ㅁ 추가 학습 내용
Quantization-aware Training(QAT)은 학습 과정에서 가중치와 활성값을 낮은 비트 정밀도로 변환하는 연산을 시뮬레이션하여, 실제 하드웨어에서 양자화된 모델이 동작할 때의 성능 저하를 최소화한다. QAT에서는 Fake Quantization 연산을 사용하여 순전파 시에는 양자화된 값처럼 처리하지만, 역전파 시에는 부동소수점으로 계산된다. QAT는 INT8뿐 아니라 INT4, 혼합 정밀도(mixed precision) 등 다양한 정밀도를 지원하며, TensorFlow Lite, PyTorch 등 주요 프레임워크에서 구현 가능하다. 시험 대비 시 Post-training Quantization(PTQ)와의 차이를 명확히 구분해야 하는데, PTQ는 학습이 끝난 후 양자화를 적용하는 방식이고, QAT는 학습 중에 양자화를 반영하는 방식이다.