모델 양자화

IT 위키
인공무능 (토론 | 기여)님의 2025년 10월 8일 (수) 02:34 판

모델 양자화(模型量子化, Model Quantization)는 딥러닝 모델의 수치 표현 정밀도를 낮춰 메모리 사용량과 연산량을 줄이는 최적화 기법이다. 주로 대형 언어 모델(LLM)이나 모바일·엣지 디바이스에서 효율적인 추론을 위해 사용된다.

개요

딥러닝 모델은 일반적으로 32비트 부동소수점(float32)으로 학습되지만, 추론 시에는 16비트(float16), 8비트(int8), 4비트(int4) 등 더 낮은 정밀도의 형식으로 변환할 수 있다. 이러한 변환을 통해 모델의 크기를 줄이고 연산 속도를 향상시킬 수 있다.

종류

  • 정적 양자화(Static Quantization): 학습 이후 전체 모델을 정적으로 양자화하는 방식
  • 동적 양자화(Dynamic Quantization): 실행 시점에 가중치나 활성값을 동적으로 양자화
  • 양자화 인식 학습(QAT, Quantization-Aware Training): 학습 단계에서 양자화를 고려하여 정확도 손실을 최소화
  • 후처리 양자화(Post-training Quantization): 별도의 학습 없이 훈련된 모델에 양자화 적용

양자화 수준

아래 표는 비트 수(정밀도)에 따른 양자화의 단계적 비교를 보여준다. 비트 수가 줄어들수록 표현 가능한 숫자 개수가 줄어들고, 모델 용량은 작아지며, 속도는 빨라지는 대신 정확도는 점차 낮아진다.

비트 수 표현 가능한 값의 개수 (2^b) 예시 표현 값 (대칭형, L=2 기준) 1B 파라미터 기준 모델 용량 (대략) 대표 사용 예시
2bit 4개 {-2.0, -0.67, +0.67, +2.0} 약 0.25 GB 테스트용, 초경량 모델
3bit 8개 {-2.0, -1.43, -0.86, -0.29, +0.29, +0.86, +1.43, +2.0} 약 0.38 GB 실험용, 경량 챗봇
4bit 16개 {-2.0, -1.71, -1.43, … , +1.43, +1.71, +2.0} 약 0.5 GB LLM 로컬 추론, llama.cpp 기본
5bit 32개 균등 32단계 (-L~+L) 약 0.63 GB 고정밀 경량 모델
8bit 256개 FP32 근사 수준 (-L~+L) 약 1.0 GB 일반적인 INT8 추론, TFLite/ONNX
16bit 65,536개 거의 float 수준 약 2.0 GB FP16 추론 (GPU)
32bit 약 4.3×10^9개 완전 부동소수점 약 4.0 GB FP32 학습 (기본)

예시: 3비트 양자화

가중치 X = [1.1, 2.4, -0.3, 0.8] 비트 수 b = 3, 범위 L = 2 일 때:

  1. 클리핑 (-L, L) = (-2, 2)
  → Xc = [1.1, 2.0, -0.3, 0.8]
  1. 스케일 계산 s = 2L / (2^b - 2) = 4 / 6 = 0.667
  2. 정수화 Xint = round(Xc / s) = [2, 3, 0, 1]
  3. 복원 Xq = s × Xint = [1.33, 2.0, 0.0, 0.67]

결과적으로, 원래의 실수 벡터가 3비트 정밀도의 8단계 정수 레벨로 근사되어 표현된다. 0 근처의 작은 값들은 0으로 흡수되며, 이로 인해 일부 정보 손실(Quantization Error)이 발생하지만 추론 속도와 메모리 사용량은 대폭 감소한다.

일반적 경향

  • 비트 수가 감소할수록 → 모델 크기 작아지고, 추론 속도 빨라짐
  • 비트 수가 증가할수록 → 정밀도와 정확도 향상, 메모리 사용량 증가
  • 실무에서는 **4bit~8bit** 구간이 가장 균형 잡힌 영역으로 많이 사용됨.


장단점

장점

  • 모델 크기 감소: 저장 공간 절감 및 모델 전송 속도 향상
  • 추론 속도 향상: 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.

각주