개요
Model Quantization(모델 양자화)은 신경망의 가중치와 활성화 값의 정밀도를 FP32에서 FP16/INT8/INT4 등으로 낮추는 압축 기법입니다. 메모리 사용량과 연산량을 줄여 Large Language Models (LLMs)를 소비자 하드웨어에서 실행할 수 있게 합니다.
핵심 효과:
- FP32 → INT4: 메모리 8배 감소 (7B 모델: 28GB → 3.5GB)
- 대형 모델의 양자화가 소형 모델의 풀 정밀도보다 성능이 나은 경우가 많음
- 70B INT4 > 13B FP16 (벤치마크 기준)
양자화 방식
PTQ (Post-Training Quantization)
학습 완료 후 가중치를 낮은 정밀도로 변환. 소량의 캘리브레이션 데이터셋(수백 샘플)만 필요.
- 장점: 빠름, 전체 학습 데이터 불필요, 대형 모델에 실용적
- 단점: 정확도 2~5% 하락 가능
- 대표 기법: GPTQ, AWQ, SmoothQuant
QAT (Quantization-Aware Training)
학습 과정에서 양자화를 시뮬레이션. 모델이 낮은 정밀도에 적응하도록 학습.
- 장점: 정확도 손실 1~2% 이내 (PTQ 대비 우수)
- 단점: 추가 학습 시간/데이터 필요, 대형 모델에는 비실용적
- 원리: Forward pass에서 fake-quantize → backward pass는 FP로 수행
- 활용: Google Gemma QAT (RTX 3090에서 27B 모델 실행)
수치 포맷
| 포맷 | 비트 | 이산 레벨 | 메모리 절감 (vs FP32) | 정확도 손실 | 용도 |
|---|---|---|---|---|---|
| FP32 | 32 | - | 기준선 | 없음 | 학습 |
| FP16/BF16 | 16 | - | 2배 | 무시 가능 | 학습/추론 |
| FP8 | 8 | - | 4배 | 거의 없음 (lossless) | 프로덕션 추론 |
| INT8 | 8 | 256 | 4배 | <1% | 프로덕션 추론 |
| INT4 | 4 | 16 | 8배 | 2~5% | 로컬/엣지 |
| FP4 (NVFP4) | 4 | - | 8배 | 2~5% | Blackwell GPU |
| NF4 | 4 | - | 8배 | 2~5% (정규분포 최적) | bitsandbytes |
FP8 상세
- H100/Ada/SM120에서 프로덕션 표준
- FlashAttention-3 + FP8: H100에서 1.3 PFLOPS 달성
- 기존 FP8 대비 2.6배 낮은 수치 오차
- 사실상 무손실 — 별도 품질 검증 불필요
FP4 (NVFP4) 상세
- Blackwell (B200) GPU 전용
- 실질적으로 가장 낮은 실용 정밀도
- TensorRT-LLM에서 자동 FP4 커널 활용
- HuggingFace에 사전 양자화 모델 제공 (DeepSeek-R1-FP4, Llama-3.3-70B-FP4 등)
주요 양자화 기법
GPTQ (GPU Post-Training Quantization)
- 방식: 가중치 행렬의 각 행을 독립적으로 양자화, 2차 정보(Hessian) 기반 보정
- 정밀도: 2/3/4/8비트
- 추론 시: INT4 가중치를 FP16으로 복원하여 연산
- 캘리브레이션: 데이터셋 품질에 민감
- 처리량: 712 tok/s (Marlin 커널, vLLM)
- 품질: HumanEval ~46% (FP16 기준 56.1%)
AWQ (Activation-aware Weight Quantization)
- 방식: 활성화 통계 기반으로 중요 가중치 채널(~1%) 식별 → 스케일링 후 양자화
- 핵심: 모든 가중치가 동등하지 않다는 가정 (중요 가중치 보존)
- 처리량: 741 tok/s (Marlin 커널, vLLM) — 최고 속도
- 품질: HumanEval 51.8%, 원본 품질의 ~95% 유지
- GPTQ 대비: 더 높은 품질 유지, 더 빠른 추론
GGUF (GGML Unified Format)
- 성격: 양자화 기법이 아닌 파일 포맷 (llama.cpp의 GGML 라이브러리 기반)
- 특징: CPU 추론 + GPU 오프로딩 지원
- 최적 플랫폼: CPU, Apple Silicon
- 인기 프로파일: Q4_K_M (8~16GB VRAM에서 품질/효율 최적 균형)
- 품질: HumanEval 51.8%, Perplexity 6.74 (FP16: 6.56)
- 처리량: 93 tok/s (vLLM) — GPU 대비 느림
SmoothQuant
- 방식: 활성화의 이상치를 가중치로 수학적으로 이동
- 효과: 활성화와 가중치 모두 양자화 가능 (W8A8)
- 활용: INT8 가중치 + INT8 활성화 조합
bitsandbytes
- 개발: Hugging Face 생태계 통합
- 8비트 (LLM.int8()): 이상치 활성화는 FP16, 나머지 INT8 (혼합 정밀도)
- 4비트 (NF4 + Double Quantization):
- NF4: 정규분포 데이터에 정보이론적 최적 포맷
- Double Quantization: 양자화 상수 자체도 양자화 → 추가 메모리 절감
- 품질: 최저 Perplexity 증가 (6.67, FP16: 6.56)
- 처리량: 168 tok/s — 느리지만 품질 최상
QLoRA
- 방식: 4비트 양자화 기본 가중치 + 16비트 Low-Rank Adaptation (LoRA) 어댑터
- 효과: 65B 모델을 단일 소비자 GPU에서 파인튜닝 가능
- 용도: 양자화된 모델의 파인튜닝
벤치마크 비교 (vLLM, Llama 기준)
| 기법 | 처리량 (tok/s) | Perplexity | HumanEval | TTFT |
|---|---|---|---|---|
| FP16 (기준) | 461 | 6.56 | 56.1% | 기준 |
| Marlin-AWQ | 741 | 6.84 | 51.8% | 12.6ms |
| Marlin-GPTQ | 712 | 6.97 | ~46% | - |
| bitsandbytes | 168 | 6.67 | 51.8% | - |
| GGUF Q4_K_M | 93 | 6.74 | 51.8% | - |
핵심 인사이트:
- 커널이 알고리즘보다 중요: Marlin 커널 적용 시 AWQ 10.9배, GPTQ 2.6배 속도 향상
- 모든 기법이 Perplexity 6% 이내 — 대부분 실사용에서 차이 미미
- AWQ가 속도와 품질의 최적 균형점
용도별 추천
| 용도 | 추천 기법 | 이유 |
|---|---|---|
| 프로덕션 서빙 (NVIDIA GPU) | Marlin-AWQ | 최고 처리량 741 tok/s + 우수한 품질 |
| 품질 최우선 | FP8 | 사실상 무손실 |
| CPU / Apple Silicon | GGUF Q4_K_M | CPU 추론 지원, 8~16GB 최적 |
| 로컬 실험 / 입문 | GGUF + Ollama | 설정 최소, 즉시 실행 |
| 프로덕션 서버 | AWQ 또는 GPTQ + vLLM | 높은 처리량 + 정확도 유지 |
| 파인튜닝 | QLoRA (NF4) | 단일 GPU에서 대형 모델 파인튜닝 |
| Blackwell GPU | NVFP4 | 하드웨어 네이티브 지원 |
| 비용 효율 (동기) | W4A16 | 비용 대비 성능 최적 |
| 비용 효율 (비동기) | W8A8 (FP8) | Continuous Batching에서 우수 |
VRAM별 실행 가이드
| VRAM | 추천 양자화 | 실행 가능 모델 예시 |
|---|---|---|
| 4GB | GGUF Q4_K_S | 1~3B 모델 |
| 8GB | GGUF Q4_K_M | 7B 모델 |
| 12GB | GGUF Q4_K_M / AWQ | 7~13B 모델 |
| 16GB | AWQ / GPTQ | 13B 모델, 7B FP16 |
| 24GB | AWQ / GPTQ | 32B 양자화, 13B FP16 |
| 48GB | FP8 | 70B 양자화 |
| 80GB (A100) | FP8 / FP16 | 70B FP16 |
양자화 도구
| 도구 | 지원 포맷 | 특징 |
|---|---|---|
| llama.cpp | GGUF | 직접 양자화, CPU 추론 |
| AutoGPTQ | GPTQ | Hugging Face 통합 |
| AutoAWQ | AWQ | Hugging Face 통합 |
| bitsandbytes | NF4, INT8 | Transformers 내장 지원 |
| NVIDIA Model Optimizer | FP8, FP4, INT4/8 | TensorRT-LLM 최적화 |
| Quanto | INT4/8, FP8 | Hugging Face 차세대 도구 |