모델 양자화
IT 위키
모델 양자화(模型量子化, Model Quantization)는 딥러닝 모델의 수치 표현 정밀도를 낮춰 메모리 사용량과 연산량을 줄이는 최적화 기법이다. 주로 대형 언어 모델(LLM)이나 모바일·엣지 디바이스에서 효율적인 추론을 위해 사용된다.
개요
딥러닝 모델은 일반적으로 32비트 부동소수점(float32)으로 학습되지만, 추론 시에는 16비트(float16), 8비트(int8), 4비트(int4) 등 더 낮은 정밀도의 형식으로 변환할 수 있다. 이러한 변환을 통해 모델의 크기를 줄이고 연산 속도를 향상시킬 수 있다.
종류
- 정적 양자화(Static Quantization): 학습 이후 전체 모델을 정적으로 양자화하는 방식
- 동적 양자화(Dynamic Quantization): 실행 시점에 가중치나 활성값을 동적으로 양자화
- 양자화 인식 학습(QAT, Quantization-Aware Training): 학습 단계에서 양자화를 고려하여 정확도 손실을 최소화
- 후처리 양자화(Post-training Quantization): 별도의 학습 없이 훈련된 모델에 양자화 적용
장점
- 모델 크기 감소: 저장 공간 절감 및 모델 전송 속도 향상
- 추론 속도 향상: CPU 및 GPU에서 더 빠른 연산 가능
- 메모리 사용량 감소: 모바일 및 엣지 디바이스에 적합
단점
- 정확도 손실: 정밀도 감소로 인해 예측 정확도가 하락할 수 있음
- 하드웨어 제약: 일부 정밀도(예: int4)는 특정 하드웨어에서만 지원됨
- 추가 튜닝 필요: 양자화 적용 후 정확도 회복을 위한 조정이 요구될 수 있음
활용 사례
- 대형 언어 모델(LLM)의 로컬 추론(예: GGML, llama.cpp 등)
- 온디바이스 AI 앱에서의 실시간 예측
- 경량화된 AI 모델 배포를 위한 사전 처리 과정
도구 및 프레임워크
- PyTorch: torch.quantization, bitsandbytes 등
- TensorFlow Lite: 정적/동적 양자화 지원
- ONNX Runtime: 양자화된 ONNX 모델 추론
- Hugging Face Transformers: 8bit, 4bit 모델 제공
같이 보기
참고 문헌
- Jacob, B. et al. (2018). Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. CVPR.
- Zhang, S. et al. (2020). Accelerating Deep Learning Inference via Quantization. arXiv preprint.
- Hugging Face. (2023). 8-bit and 4-bit quantization in Transformers.