📦
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 / 모바일 디바이스 배포