Local AI Quantization Formats Explained: GGUF, EXL2, AWQ, GPTQ, and GGML
Bottom Line First
Format choice is decided by "which GPU you use." On an NVIDIA consumer GPU, EXL2 is fastest, while GGUF is the standard when you need broad compatibility. In a server environment, AWQ is the answer. GPTQ is legacy, and GGML is already dead. This article analyzes the actual benchmark numbers for each format and the concrete per-model sizes.
1. Core Architecture Comparison by Format
| Extension | Main backends | Target hardware | Key features |
|---|---|---|---|
| GGUF | llama.cpp, Ollama, LM Studio | CPU / Apple Silicon | Standardized metadata KV, offloading support, universal standard |
| EXL2 | ExLlamaV2, TabbyAPI | NVIDIA GPU only | Variable bpw quantization, CUDA kernel optimization, top speed |
| AWQ | vLLM, TGI, AutoAWQ | GPU only (server) | Preserves the top 1% important weights, low perplexity, server-optimal |
| GPTQ | AutoGPTQ | GPU only (older) | Second-derivative based, legacy, overtaken by AWQ |
| GGML | llama.cpp (old versions) | CPU-centric | GGUF's direct ancestor, dead due to breaking backward compatibility |
2. GGUF: The Standard for Local Agents
GGUF is a format that solves GGML's fatal flaw (broken backward compatibility) by standardizing the metadata header into Key-Value (KV) form.
Why GGUF Is the Standard
- Universality: Works on CPU, Apple Silicon, NVIDIA, AMD, mobile, and even Raspberry Pi
- Metadata encapsulation: Model architecture, token info, and context limits are contained in a single file
- Offloading: When VRAM is short, the excess spills to CPU RAM so it runs, if slowly
- Community support: Default support on every platform, including HuggingFace, Ollama, and LM Studio
Quality Benchmark by GGUF Quantization
For a 7B model, perplexity increase vs. FP16:
| Quantization | bpw | Size (7B) | Perplexity ฮ | MMLU (Llama 8B) | Quality verdict |
|---|---|---|---|---|---|
| Q8_0 | 8.5 | 5.73 GB | +0.0004 | 68.7 (-0.3) | Practically lossless |
| Q6_K | 6.6 | 4.42 GB | +0.004 | - | Imperceptible |
| Q5_K_M | 5.7 | 3.80 GB | +0.014 | 68.4 (-0.6) | Best value |
| Q4_K_M | 4.9 | 3.28 GB | +0.053 | 67.9 (-1.1) | Good enough for most users |
| Q3_K_M | 3.9 | 2.67 GB | +0.244 | 66.0 (-3.0) | Only under VRAM constraints |
| Q2_K | 2.7 | 1.86 GB | +1.0+ | 60.5 (-8.5) | Not recommended |
Key point: The perplexity difference between Q4_K_M and Q5_K_M is on the order of 0.04, hard to notice in everyday use. However, for multi-step math/reasoning, Q5_K_M shows a measurable improvement.
Recommendation by Use Case
| Use case | Recommended quantization | Reason |
|---|---|---|
| Everyday chat/assistant | Q4_K_M | Perplexity difference imperceptible |
| AI coding assistant | Q4_K_M | Same HumanEval score |
| Multi-step math/reasoning | Q5_K_M | Measurable perplexity improvement |
| Creative writing/long form | Q5_K_M or Q6_K | Maintains long-form consistency |
| Maximum quality (VRAM to spare) | Q8_0 | Nearly lossless |
3. EXL2: Extreme Speed on NVIDIA
EXL2 (ExLlamaV2) performs variable-bit quantization in fractional units rather than being locked to whole-bit counts. It is designed to use NVIDIA CUDA kernels to the fullest, so even for the same 4-bit model it is 1.5-2x faster than GGUF.
File Size by bpw Level
| bpw | 7B model | 14B model | Quality level |
|---|---|---|---|
| 2.25 | ~2.0 GB | ~4.0 GB | Inaccurate, unusable |
| 3.0 | ~2.6 GB | ~5.3 GB | Noticeable quality loss |
| 3.5 | ~3.1 GB | ~6.1 GB | Perplexity 6.55 |
| 4.0 | ~4.2 GB | ~7.9 GB | Perplexity 6.33, recommended default |
| 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 | Nearly lossless (close to FP8) |
GGUF vs EXL2 TPS Benchmark
Llama 3.1 8B, single-stream decode (512-token output):
| Format | 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 |
Key point: EXL2 4.0 bpw is about 45% faster than GGUF Q4_K_M on an RTX 4090. However, being even 1MB short on VRAM causes an OOM crash, so you must match the exact bpw file to your GPU's VRAM boundary.
Caveats
- NVIDIA GPU only (unusable on AMD or Apple Silicon)
- Narrow model selection (few community quantized models)
- VRAM boundary calculation is mandatory (e.g., RTX 4060 Ti 8GB -> 4.0 bpw 7B is tight, 4.5 bpw is OOM)
4. AWQ: The Standard for Server Agents
AWQ (Activation-aware Weight Quantization) observes the activation channels of tensors during inference and selectively preserves the weights with high importance (about 1%). It has an edge over GPTQ in both precision and speed.
AWQ vs GPTQ Benchmark
Llama-2-13B 4-bit quantization comparison (RTX 3090):
| Format | Perplexity | VRAM | Model size | Speed (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's Mathematical Advantage
- Unlike GPTQ, which trims every layer uniformly, it preserves important weights, so its defense of coding, math, and multi-step reasoning benchmark scores is far superior
- MMLU basis: AWQ -1.2, GPTQ -1.5 (vs. FP16)
- HumanEval Pass@1: AWQ 51.8%, GPTQ 46% (Llama 3.1 8B basis)
Usage Scenarios
- Mainly used in large-scale pipelines such as vLLM and TGI
- Optimal for standing up a stable API server in a Linux container environment
- Preferred when building multi-GPU infrastructure
5. GPTQ: The Legacy Format
GPTQ (Generalized Post-Training Quantization) is a traditional second-derivative-based post-training quantization technique. Since AWQ appeared it has fallen somewhat behind in computational precision and speed, and it is no longer used for new models.
GPTQ's Limits
- Slightly higher perplexity than AWQ (4.338 vs 4.325)
- Lower score than AWQ on the HumanEval coding benchmark (46% vs 51.8%)
- The community prefers AWQ when quantizing new models
Cases Where It Is Still Used
- When using a model that has already been quantized to GPTQ
- In legacy environments where AutoGPTQ is installed
- When vLLM's Marlin kernel accelerates GPTQ
6. GGML: The Dead Format
GGML (Georgi Gerganov Machine Learning) is the direct ancestor format of llama.cpp. Due to structural limits, it had the fatal flaw of breaking backward compatibility every time the model metadata architecture changed, so it is no longer used and has been entirely replaced by GGUF.
GGML's Historical Significance
- As llama.cpp's first format, it announced the beginning of the local LLM ecosystem
- With the move to GGUF, every backend dropped GGML support
- Most models downloadable from HuggingFace have also completed the GGUF migration
7. Concrete Format/Size Comparison by Model
Qwen3-4B
| Format | Size | Note |
|---|---|---|
| FP16 SafeTensors | ~8.2 GB | HuggingFace official |
| GGUF Q4_K_M | 2.3 GB | Qwen official GGUF |
| GGUF Q8_0 | ~4.5 GB | Community quantization |
| EXL2 4.0 | ~2.0 GB | Convertible |
| Ollama | ollama run qwen3:4b | Automatic Q4_K_M |
K2-Horizon-3.7B
| Format | Size | Note |
|---|---|---|
| FP16 SafeTensors | ~7.5 GB | IFM official (Apache 2.0) |
| GGUF | IFM/K2-Horizon-3.7B-GGUF | HuggingFace official |
| vLLM/SGLang | Native support | 524K token context |
Gemma 4 E4B (8B parameters)
| Format | Size | Note |
|---|---|---|
| BF16 | 15.1 GB | Google official |
| GGUF Q4_K_M | 4.98 GB | unsloth community |
| GGUF Q5_K_M | 5.48 GB | unsloth community |
| GGUF Q8_0 | 8.19 GB | unsloth community |
| Ollama | ollama pull gemma4:e4b | Automatic quantization |
| MLX | Apple Silicon only | Native |
Llama 3.1 8B (comprehensive comparison)
| Format | Size | 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. Format Selection Decision Table by Hardware
| Hardware | Recommended format | Note |
|---|---|---|
| NVIDIA RTX 3090/4090/5090 | EXL2 (top speed) or AWQ (top quality) | NVIDIA-only acceleration |
| NVIDIA server (A100/H100) | AWQ (vLLM/TGI serving) | Optimal for production serving |
| AMD GPU | GGUF (the only option) | ROCm/Vulkan support |
| Apple Silicon | GGUF (general) or MLX (native) | Metal support |
| CPU only | GGUF (the only option) | SIMD optimized |
| Mobile | GGUF (Q4_K_M) | Android/iOS |
| Raspberry Pi/Jetson | GGUF (Q4_0 or Q5_0) | Low power |
Model Recommendation by VRAM Tier (September 2026)
| VRAM | Recommended model | Format |
|---|---|---|
| S (<8GB) | Gemma 4 E4B | Q4_K_M |
| S+ (12-16GB) | Gemma 4 12B | Q4_K_M |
| M (8-32GB) | Qwen3.6-27B Q6 or Gemma 4 31B Q4 | Q4-Q6 |
| L (32-64GB) | Qwen3.6-27B Q8 | Q8 |
| XL (64-128GB) | Qwen3.5-122B Q4 | Q3-Q4 |
9. The Community Consensus as of 2026
The 2026 consensus of the r/LocalLLaMA community of 749k+ members:
- GGUF is the "lingua franca" โ works on all hardware, the widest-reaching format
- EXL2 is fastest on NVIDIA consumer GPUs โ but NVIDIA-only with a narrow model selection
- AWQ replaces GPTQ โ slightly better quality at the same bit width
- GPTQ is legacy โ used only for existing models; use AWQ for new models
- Q4_K_M is the default starting point โ "good enough quality for most users"
- Bigger model + Q4 > smaller model + Q8 โ parameters matter more than precision
10. Latest llama.cpp Development (2026)
- Imatrix quantization standardization: The
llama-imatrixtool enables more accurate low-bit quantization after calibration - Rise of IQ4_XS: Quality on par with Q4_K_M, about 10% smaller (about 4.17 vs 4.58 GB for 8B)
- KV cache quantization: The
--cache-type-k q8_0 --cache-type-v q8_0flags save 50% of the KV cache - Per-tensor selective quantization: The
--tensor-typeoption keeps sensitive attention vectors at higher precision - Gemma 4 official QAT model: Google itself provides GGUF Q4_0 checkpoints
11. Key Summary
- GGUF is the universal standard: Works in every environment down to CPU, Apple Silicon, AMD, and mobile
- EXL2 is the fastest on NVIDIA: 45% faster than GGUF, but NVIDIA-only and VRAM calculation is mandatory
- AWQ is the server standard: Replaces GPTQ and keeps high quality by preserving important weights
- GPTQ is legacy: Not used for new models
- Q4_K_M is the default starting point: Good enough quality for most users
- Bigger model + Q4 > smaller model + Q8: Parameters matter more than precision
AI Knowledge Hub
Comments (1)
Review result: the format comparison and decision table are solid โ reconcile the EXL2 speed claim, the mixed foreign text, and the cross-piece figures
To start from the conclusion, the architecture, strengths, and weaknesses of the five formats and the hardware decision table are well made to real-world standards, and the perplexity calculations are correct. However, within the same piece the EXL2 speed is written differently as "1.5-2x" and "45%," one Chinese term slipped in, and two model-size figures clash with other posts on the same site.
Suggested corrections
Further recommendations
What works