딥러닝 모델은 일반적으로 FP32(Floating Point 32-bit) 형식의 가중치를 사용한다. 하지만 모델 크기가 커질수록 메모리 사용량이 증가하고 추론 속도가 느려질 수 있다.
특히 모바일 기기나 임베디드 환경에서는 제한된 자원 안에서 모델을 실행해야 하기 때문에 모델을 더 작고 빠르게 만드는 과정이 필요하다.
이때 사용되는 대표적인 최적화 기법이 양자화(Quantization)이다.
양자화란 무엇인가
양자화는 모델이 사용하는 숫자 표현 방식을 더 작은 비트 수로 변환하는 기술이다.
예를 들어 FP32 가중치를 INT8 형태로 변환하면 메모리 사용량을 줄일 수 있고 추론 속도도 향상될 수 있다.
다만 숫자 표현 범위가 줄어들기 때문에 일부 모델에서는 정확도가 감소할 수 있다.
Post-Training Quantization(PTQ)
Post-Training Quantization은 모델 학습이 모두 끝난 후 양자화를 적용하는 방법이다.
이미 학습된 FP32 모델을 가져와 INT8과 같은 낮은 정밀도로 변환한다.
추가 학습이 필요하지 않기 때문에 적용 과정이 간단하다는 장점이 있다.
예를 들어 PyTorch에서 학습한 모델을 배포 직전에 INT8 모델로 변환하는 경우가 이에 해당한다.
다만 모델에 따라 정확도 손실이 발생할 수 있으며 특히 작은 객체를 탐지하거나 정밀한 예측이 필요한 모델에서는 성능 저하가 나타날 수 있다.
![]()
Quantization-Aware Training(QAT)
Quantization-Aware Training은 학습 과정에서 양자화 환경을 미리 고려하며 모델을 학습시키는 방법이다.
실제로는 FP32로 학습하지만 INT8 환경에서 발생할 수 있는 오차를 학습 과정에 반영한다.
모델은 양자화로 인해 발생하는 오차에 적응하면서 학습하게 된다.
그 결과 최종적으로 INT8 모델로 변환하더라도 정확도 손실을 줄일 수 있다.
다만 추가 학습 과정이 필요하기 때문에 PTQ보다 구현과 학습 비용이 높다.
![]()
언제 사용하는가
PTQ가 적합한 경우
- 빠르게 모델을 배포해야 하는 경우
- 추가 학습 데이터가 없는 경우
- 약간의 정확도 감소를 허용할 수 있는 경우
QAT가 적합한 경우
- 정확도 손실을 최소화해야 하는 경우
- 자율주행, 의료 영상 등 높은 신뢰성이 필요한 경우
- 추가 학습이 가능한 환경인 경우
PTQ와 QAT 비교
| 구분 | PTQ | QAT |
|---|---|---|
| 적용 시점 | 학습 후 | 학습 중 |
| 추가 학습 | 불필요 | 필요 |
| 구현 난이도 | 낮음 | 높음 |
| 정확도 유지 | 상대적으로 낮음 | 상대적으로 높음 |
정리
양자화는 모델 크기를 줄이고 추론 속도를 향상시키기 위한 대표적인 모델 최적화 기법이다.
PTQ는 학습이 완료된 모델에 간단하게 적용할 수 있다는 장점이 있으며, QAT는 추가 학습이 필요하지만 더 높은 정확도를 유지할 수 있다.
따라서 실제 서비스에서는 요구되는 정확도와 개발 비용을 고려하여 적절한 양자화 방법을 선택하게 된다.
'데이터 분석' 카테고리의 다른 글
| Streamlit으로 AI 모델을 웹 애플리케이션에 통합하는 과정 (0) | 2026.06.26 |
|---|---|
| 모델 경량화 후 성능 저하를 확인하기 위한 테스트 방법 (0) | 2026.06.19 |
| 딥러닝 모델을 ONNX와 TensorRT로 변환하는 이유 (0) | 2026.06.19 |
| Kubernetes란 무엇일까? Docker와의 관계 이해하기 (0) | 2026.06.15 |
| Docker Compose는 언제 사용할까? Dockerfile과의 차이점 (0) | 2026.06.15 |