로컬 AI 양자화 포맷 완전 정리: GGUF, EXL2, AWQ, GPTQ, GGML의 모든 것
결론 먼저
포맷 선택은 "어떤 GPU를 쓰느냐"로 결정된다. NVIDIA 소비자 GPU면 EXL2가 가장 빠르고, 범용성이 필요한 GGUF가 표준이다. 서버 환경이면 AWQ가 정답이다. GPTQ는 레거시고, GGML은 이미 사망했다. 이 글에서는 각 포맷의 실제 벤치마크 수치와 구체적인 모델별 크기를 분석한다.
1. 포맷별 핵심 아키텍처 비교
| 확장자 | 주요 백엔드 | 타겟 하드웨어 | 핵심 특징 |
|---|---|---|---|
| GGUF | llama.cpp, Ollama, LM Studio | CPU / Apple Silicon | 메타데이터 KV 규격화, 오프로딩 지원, 범용 표준 |
| EXL2 | ExLlamaV2, TabbyAPI | NVIDIA GPU 전용 | 가변 bpw 양자화, CUDA 커널 최적화, 최고 속도 |
| AWQ | vLLM, TGI, AutoAWQ | GPU 전용 (서버) | 중요 가중치 1% 보존, 낮은 perplexity, 서버 최적 |
| GPTQ | AutoGPTQ | GPU 전용 (구형) | 2차 도함수 기반, 레거시, AWQ에 밀림 |
| GGML | llama.cpp (구버전) | CPU 중심 | GGUF의 직계 조상, 하위 호환성 붕괴로 사망 |
2. GGUF: 로컬 에이전트의 표준
GGUF는 GGML의 치명적 결함(하위 호환성 붕괴)을 해결하기 위해 메타데이터 헤더를 KV(Key-Value) 형태로 규격화한 포맷이다.
왜 GGUF가 표준인가
- 범용성: CPU, Apple Silicon, NVIDIA, AMD, 모바일, 라즈베리파이까지 모든 환경에서 동작
- 메타데이터 캡슐화: 모델 아키텍처, 토큰 정보, 컨텍스트 제한이 파일 하나에 포함
- 오프로딩: VRAM 부족 시 초과분을 CPU RAM으로 넘겨 느리게나마 구동
- 커뮤니티 지원: HuggingFace, Ollama, LM Studio 등 모든 플랫폼에서 기본 지원
GGUF 양자화별 품질 벤치마크
7B 모델 기준, FP16 대비 perplexity 증가량:
| 양자화 | bpw | 크기 (7B) | Perplexity Δ | MMLU (Llama 8B) | 품질 평가 |
|---|---|---|---|---|---|
| Q8_0 | 8.5 | 5.73 GB | +0.0004 | 68.7 (-0.3) | 사실상 무손실 |
| Q6_K | 6.6 | 4.42 GB | +0.004 | - | 인식 불가 |
| Q5_K_M | 5.7 | 3.80 GB | +0.014 | 68.4 (-0.6) | 최고의 가성비 |
| Q4_K_M | 4.9 | 3.28 GB | +0.053 | 67.9 (-1.1) | 대부분 사용자에게 충분 |
| Q3_K_M | 3.9 | 2.67 GB | +0.244 | 66.0 (-3.0) | VRAM 제약 시에만 |
| Q2_K | 2.7 | 1.86 GB | +1.0+ | 60.5 (-8.5) | 권장하지 않음 |
핵심: Q4_K_M과 Q5_K_M의 perplexity 차이는 0.04 수준으로, 일상 사용에서 인식하기 어렵다. 다만 다단계 수학/추론에서는 Q5_K_M이 측정 가능한 향상을 보인다.
사용 사례별 추천
| 사용 사례 | 추천 양자화 | 이유 |
|---|---|---|
| 일상 채팅/어시스턴트 | Q4_K_M | perplexity 차이 인식 불가 |
| AI 코딩 어시스턴트 | Q4_K_M | HumanEval 동일 점수 |
| 다단계 수학/추론 | Q5_K_M | 측정 가능한 perplexity 향상 |
| 창작 글쓰기/장문 | Q5_K_M 또는 Q6_K | 장문 일관성 유지 |
| 최대 품질 (VRAM 여유) | Q8_0 | 거의 무손실 |
3. EXL2: NVIDIA 극한 속도
EXL2(ExLlamaV2)는 수치적 비트 수에 갇히지 않고 소수점 단위의 가변 비트 양자화를 수행한다. NVIDIA CUDA 커널을 100% 활용하도록 설계되어 동일 4비트 모델이라도 GGUF보다 1.5~2배 빠르다.
bpw 레벨별 파일 크기
| bpw | 7B 모델 | 14B 모델 | 품질 수준 |
|---|---|---|---|
| 2.25 | ~2.0 GB | ~4.0 GB | 부정확, 사용 불가 |
| 3.0 | ~2.6 GB | ~5.3 GB | 품질 저하 눈에 띔 |
| 3.5 | ~3.1 GB | ~6.1 GB | perplexity 6.55 |
| 4.0 | ~4.2 GB | ~7.9 GB | perplexity 6.33, 추천 기본 |
| 4.5 | ~4.7 GB | ~8.8 GB | perplexity 6.27 |
| 5.0 | ~5.2 GB | ~10.0 GB | perplexity 6.26 |
| 6.0 | ~6.3 GB | ~12.0 GB | perplexity 6.23 |
| 8.0 | ~8.5 GB | ~16.0 GB | 거의 무손실 (FP8 근접) |
GGUF vs EXL2 TPS 벤치마크
Llama 3.1 8B, 단일 스트림 decode (512 토큰 출력):
| 포맷 | RTX 4090 | RTX 3090 | RTX 4060 Ti |
|---|---|---|---|
| EXL2 4.0 bpw | 240 t/s | ~170 t/s | ~90 t/s |
| AWQ 4-bit | 225 t/s | ~150 t/s | ~80 t/s |
| GPTQ 4-bit (Marlin) | 220 t/s | ~155 t/s | ~78 t/s |
| GGUF Q4_K_M | 165 t/s | ~95 t/s | ~55 t/s |
| FP16 | 95 t/s | ~55 t/s | ~30 t/s |
핵심: EXL2 4.0 bpw는 GGUF Q4_K_M보다 RTX 4090에서 약 45% 빠르다. 다만 VRAM이 1MB만 부족해도 OOM 크래시가 발생하므로, GPU VRAM 경계선에 맞춰 정확한 bpw 파일을 매칭해야 한다.
주의점
- NVIDIA GPU 전용 (AMD, Apple Silicon 사용 불가)
- 모델 선택폭이 좁음 (커뮤니티 양자화 모델이 적음)
- VRAM 경계선 계산 필수 (예: RTX 4060 Ti 8GB → 4.0 bpw 7B勉强, 4.5 bpw는 OOM)
4. AWQ: 서버 에이전트의 표준
AWQ(Activation-aware Weight Quantization)는 추론 과정에서 텐서의 활성화 채널을 관찰하여 중요도가 높은 가중치(약 1%)를 선별적으로 보존한다. GPTQ보다 정밀도와 속도면에서 우위에 있다.
AWQ vs GPTQ 벤치마크
Llama-2-13B 4-bit 양자화 비교 (RTX 3090):
| 포맷 | Perplexity | VRAM | 모델 크기 | 속도 (t/s) |
|---|---|---|---|---|
| AWQ 4-bit (group 32) | 4.325 | 10.57 GB | 7.62 GB | 39.5 |
| GPTQ 4-bit (group 32) | 4.338 | 8.70 GB | 7.63 GB | 42.4 |
| EXL2 4.0 bpw | 4.376 | 7.88 GB | 6.50 GB | 56.8 |
| GGUF Q4_K_M | 4.333 | 8.99 GB | 7.50 GB | 30.8 |
AWQ의 수학적 이점
- 모든 레이어를 균등하게 깎아내는 GPTQ와 달리, 중요 가중치를 보존하므로 코딩·수학·다단계 추론 벤치마크 점수 방어력이 월등
- MMLU 기준: AWQ -1.2, GPTQ -1.5 (FP16 대비)
- HumanEval Pass@1: AWQ 51.8%, GPTQ 46% (Llama 3.1 8B 기준)
사용 시나리오
- vLLM, TGI 등 대규모 파이프라인에서 주로 사용
- 리눅스 컨테이너 환경에서 안정적인 API 서버를 열 때 최적
- 다중 GPU 인프라 구축 시 선호
5. GPTQ: 레거시 포맷
GPTQ(Generalized Post-Training Quantization)는 전통적인 2차 도함수 기반 포스트 트레이닝 양자화 기법이다. AWQ 기술 등장 이후 연산 정밀도 및 속도면에서 다소 밀려 현재는 새 모델에 사용되지 않는다.
GPTQ의 한계
- AWQ 대비 perplexity 약간 높음 (4.338 vs 4.325)
- HumanEval 코딩 벤치마크에서 AWQ보다 낮은 점수 (46% vs 51.8%)
- 신규 모델 양자화 시 커뮤니티에서 AWQ를 우선 선택
아직 사용되는 경우
- 기존에 이미 GPTQ 양자화가 완료된 모델을 사용할 때
- AutoGPTQ가 설치된 레거시 환경에서
- vLLM의 Marlin 커널이 GPTQ를 가속할 때
6. GGML: 사망한 포맷
GGML(Georgi Gerganov Machine Learning)은 llama.cpp의 직계 조상 포맷이다. 구조적 한계로 인해 모델 메타데이터 아키텍처가 바뀔 때마다 하위 호환성이 깨지는 치명적인 결함이 있어 현재는 사용되지 않고 GGUF로 완전히 대체되었다.
GGML의 역사적 의의
- llama.cpp의 첫 번째 포맷으로 로컬 LLM 생태계의 시작을 알림
- GGUF로 전환되면서 모든 백엔드에서 GGML 지원 중단
- HuggingFace에서 다운로드 가능한 모델도 대부분 GGUF 전환 완료
7. 구체적 모델별 포맷/크기 비교
Qwen3-4B
| 포맷 | 크기 | 비고 |
|---|---|---|
| FP16 SafeTensors | ~8.2 GB | HuggingFace 공식 |
| GGUF Q4_K_M | 2.3 GB | Qwen 공식 GGUF |
| GGUF Q8_0 | ~4.5 GB | 커뮤니티 양자화 |
| EXL2 4.0 | ~2.0 GB | 변환 가능 |
| Ollama | ollama run qwen3:4b | 자동 Q4_K_M |
K2-Horizon-3.7B
| 포맷 | 크기 | 비고 |
|---|---|---|
| FP16 SafeTensors | ~7.5 GB | IFM 공식 (Apache 2.0) |
| GGUF | IFM/K2-Horizon-3.7B-GGUF | HuggingFace 공식 제공 |
| vLLM/SGLang | 네이티브 지원 | 524K 토큰 컨텍스트 |
Gemma 4 E4B (8B 매개변수)
| 포맷 | 크기 | 비고 |
|---|---|---|
| BF16 | 15.1 GB | Google 공식 |
| GGUF Q4_K_M | 4.98 GB | unsloth 커뮤니티 |
| GGUF Q5_K_M | 5.48 GB | unsloth 커뮤니티 |
| GGUF Q8_0 | 8.19 GB | unsloth 커뮤니티 |
| Ollama | ollama pull gemma4:e4b | 자동 양자화 |
| MLX | Apple Silicon 전용 | 네이티브 |
Llama 3.1 8B (종합 비교)
| 포맷 | 크기 | Perplexity | t/s (RTX 3090) |
|---|---|---|---|
| FP16 | 16.0 GB | 6.20 | 28 |
| GGUF Q4_K_M | 4.9 GB | 6.38 | 52 |
| GGUF Q5_K_M | 5.7 GB | 6.28 | 45 |
| GGUF Q6_K | 6.6 GB | 6.23 | 35 |
| GGUF Q8_0 | 8.5 GB | 6.21 | 35 |
| AWQ 4-bit | 4.3 GB | 6.36 | 58 |
| EXL2 4.0 bpw | 4.2 GB | 6.33 | 62 |
| GPTQ 4-bit | 4.3 GB | 6.40 | 50 |
8. 하드웨어별 포맷 선택 결정표
| 하드웨어 | 추천 포맷 | 비고 |
|---|---|---|
| NVIDIA RTX 3090/4090/5090 | EXL2 (최고 속도) 또는 AWQ (최고 품질) | NVIDIA 전용 가속 |
| NVIDIA 서버 (A100/H100) | AWQ (vLLM/TGI 서빙) | 프로덕션 서빙 최적 |
| AMD GPU | GGUF (유일한 선택지) | ROCm/Vulkan 지원 |
| Apple Silicon | GGUF (범용) 또는 MLX (네이티브) | Metal 지원 |
| CPU 전용 | GGUF (유일한 선택지) | SIMD 최적화 |
| 모바일 | GGUF (Q4_K_M) | 안드로이드/iOS |
| 라즈베리파이/Jetson | GGUF (Q4_0 또는 Q5_0) | 저전력 |
VRAM 티어별 모델 추천 (2026년 9월)
| VRAM | 추천 모델 | 포맷 |
|---|---|---|
| S (<8GB) | Gemma 4 E4B | Q4_K_M |
| S+ (12-16GB) | Gemma 4 12B | Q4_K_M |
| M (8-32GB) | Qwen3.6-27B Q6 또는 Gemma 4 31B Q4 | Q4-Q6 |
| L (32-64GB) | Qwen3.6-27B Q8 | Q8 |
| XL (64-128GB) | Qwen3.5-122B Q4 | Q3-Q4 |
9. 2026년 현재 커뮤니티 합의
r/LocalLLaMA 749k+ 회원 커뮤니티의 2026년 합의:
- GGUF는 "링구아 프랑카" — 모든 하드웨어에서 동작, 가장 광범위한 포맷
- EXL2는 NVIDIA 소비자 GPU에서 가장 빠름 — 그러나 NVIDIA 전용, 모델 선택폭 좁음
- AWQ는 GPTQ를 대체 — 같은 비트폭에서 약간 더 나은 품질
- GPTQ는 레거시 — 기존 모델에만 사용, 새 모델은 AWQ
- Q4_K_M이 기본 시작점 — "대부분의 사용자에게 충분한 품질"
- 더 큰 모델 + Q4 > 더 작은 모델 + Q8 — 매개변수가 정밀도보다 중요
10. llama.cpp 최신 개발 (2026)
- Imatrix 양자화 표준화:
llama-imatrix도구로 캘리브레이션 후 더 정확한 저비트 양자화 가능 - IQ4_XS 부상: Q4_K_M와 동등 품질, 크기는 약 10% 작음 (8B 기준 ~4.17 vs ~4.58 GB)
- KV 캐시 양자화:
--cache-type-k q8_0 --cache-type-v q8_0플래그로 KV 캐시 50% 절약 - 텐서별 선택적 양자화:
--tensor-type옵션으로 민감한 어텐션 벡터를 더 높은 정밀도로 유지 - Gemma 4 공식 QAT 모델: Google이 직접 GGUF Q4_0 체크포인트 제공
11. 핵심 요약
- GGUF는 범용 표준: CPU, Apple Silicon, AMD, 모바일까지 모든 환경에서 동작
- EXL2는 NVIDIA 최고 속도: GGUF 대비 45% 빠르나, NVIDIA 전용이고 VRAM 계산 필수
- AWQ는 서버 표준: GPTQ를 대체하며, 중요 가중치 보존으로 높은 품질 유지
- GPTQ는 레거시: 새 모델에는 사용되지 않음
- Q4_K_M이 기본 시작점: 대부분의 사용자에게 충분한 품질
- 더 큰 모델 + Q4 > 더 작은 모델 + Q8: 매개변수가 정밀도보다 중요