📦

Quantization (양자화)

모델 가중치를 낮은 정밀도로 변환하여 경량화

양자화(Quantization)는 신경망의 가중치와 활성화 값을 낮은 비트 수로 표현하여 모델을 경량화하는 기술입니다. 일반적인 LLM은 FP16(16비트 부동소수점)으로 저장되어, 70B 모델이 ~140GB 메모리를 차지합니다. 이를 INT4(4비트)로 양자화하면 ~35GB로 줄어들어 일반 GPU에서도 실행 가능합니다. Post-Training Quantization(PTQ)은 학습 없이 변환하는 방식이고, Quantization-Aware Training(QAT)은 학습 중에 양자화를 고려합니다. GPTQ, AWQ, GGUF 등 다양한 양자화 포맷이 있으며, llama.cpp의 GGUF가 로컬 실행에 가장 널리 사용됩니다.

핵심 개념

1

원본 모델의 가중치 분포 분석 (이상치, 범위 등)

2

양자화 범위 결정 — 가중치 값을 낮은 비트로 매핑할 구간 설정

3

가중치를 지정된 비트 수로 변환 (FP16 → INT4: 각 값을 0~15 범위로 스케일링)

4

스케일 팩터와 제로 포인트를 별도 저장 (역양자화에 사용)

5

추론 시: 양자화된 가중치 × 스케일 팩터로 근사값 복원 → 계산

6

정확도 검증: 양자화 전후 성능 비교 (perplexity, 벤치마크 등)

장점

  • 모델 크기 1/2~1/8 감소
  • 추론 속도 향상 (메모리 대역폭 병목 해결)
  • 일반 소비자 GPU에서 대형 모델 실행 가능
  • 비용 절감 (서빙 인프라)

단점

  • 정확도 손실 (특히 4비트 이하)
  • 이상치(outlier) 처리 어려움
  • 양자화 포맷별 호환성 이슈
  • 일부 태스크에서 성능 저하 심화

사용 사례

llama.cpp + GGUF (CPU/Apple Silicon에서 LLM 실행) GPTQ (GPU 양자화) AWQ (Activation-aware Quantization) Ollama / LM Studio 로컬 LLM Edge AI / 모바일 디바이스 배포