EXL2 vs GGUF vs GPTQ vs AWQ vs BnB: Quantization Formats Compared in 2026

EXL2 vs GGUF vs GPTQ vs AWQ vs BnB compared: five quantization formats for local LLMs in 2026, with size, quality, and hardware tables. Pick the right format for your hardware.

EXL2 vs GGUF vs GPTQ vs AWQ vs BnB in 2026

Quantization is what makes a 70B model fit in 24GB of VRAM. In 2026 there are five major formats to know, each with different tradeoffs. This page helps you pick.

Format comparison

EXL2GGUFGPTQAWQBnB
Year20232023202220232022
Ownerturboderp (ExLlamaV2)ggerganov (llama.cpp)Frantar et al.MIT (Lin et al.)bitsandbytes team
Primary useNVIDIA inferenceuniversalNVIDIA inferenceNVIDIA inferencetraining-time quant
Quantization levels2.0 – 8.0 bpwQ2_K – Q8_0 + i-quants2/3/4/8-bit2/3/4/16-bit4/8-bit (NF4)
Calibrationrequirednot requiredrequiredrequirednot required
Perplexity loss at 4-bit<2%<2%2-3%<2%3-5% (training)
HardwareNVIDIA RTXCPU, NVIDIA, AMD, AppleNVIDIANVIDIANVIDIA (training)
ToolsExLlamaV2llama.cpp, Ollama, MullamaAutoGPTQAutoAWQtransformers + bitsandbytes
Conversionsfrom GPTQ/AWQ/HFuniversal targetfrom HFfrom HFfrom HF

Quality vs size (Llama 3.1 8B)

FormatBits per weightFile sizeMMLUTokens/sec on 3090
FP16 (reference)16.016 GB69.028
Q8_0 GGUF8.58.5 GB68.735
Q5_K_M GGUF5.75.7 GB68.445
Q4_K_M GGUF4.94.9 GB67.952
AWQ 4-bit4.34.3 GB67.858
EXL2 4.0 bpw4.04.5 GB67.762
GPTQ 4-bit4.34.3 GB67.350
Q3_K_M GGUF3.93.9 GB66.060
Q2_K GGUF2.72.7 GB60.565

EXL2 has the best tokens/sec on NVIDIA because it is optimized for that exact hardware. GGUF is the most flexible. AWQ has the best quality-per-byte for very small quants. GPTQ is the legacy format, superseded by AWQ.

When to use each

Choose EXL2 when…

  • You are on NVIDIA consumer GPUs (RTX 3090, 4090, 5090) and want the fastest inference.
  • You have the original FP16 model and can run a calibration pass to produce the EXL2 file.
  • You use ExLlamaV2 as your inference engine (Tabby, lmdeploy, and some others support it too).

Choose GGUF when…

  • You want the widest hardware support (CPU, NVIDIA, AMD, Apple Silicon, mobile).
  • You use Ollama, Mullama, LM Studio, or llama.cpp as your daily driver.
  • You want k-quants (Q4_K_M, Q5_K_M, etc.) which are the best quality-per-byte at most sizes.
  • You need i-quants (IQ1, IQ2, IQ3) for very low VRAM.

Choose GPTQ when…

  • You have an older model that only exists in GPTQ (some Hugging Face uploads are GPTQ-only).
  • You need compatibility with vLLM, TGI, or TensorRT-LLM which all read GPTQ.
  • Otherwise, prefer AWQ (newer, slightly better quality at the same size).

Choose AWQ when…

  • You are deploying on NVIDIA GPUs for production serving.
  • You need activation-aware quantization for the best quality at 3-4 bit.
  • You use vLLM, TGI, or TensorRT-LLM (all three have native AWQ support).

Choose BnB (bitsandbytes) when…

  • You are doing QLoRA fine-tuning (4-bit base + LoRA adapters).
  • You do not need a separate quantized file — BnB quantizes on-the-fly during training.
  • For inference, prefer one of the other four.

Conversion paths

FromToTool
HF safetensorsGGUFllama.cpp/convert_hf_to_gguf.py
HF safetensorsGPTQAutoGPTQ
HF safetensorsAWQAutoAWQ
HF safetensorsEXL2ExLlamaV2 convert.py
GPTQEXL2ExLlamaV2 convert_gptq_to_exl2.py
AWQEXL2ExLlamaV2 convert_awq_to_exl2.py
GGUF(universal)load with llama.cpp

Setup examples

GGUF (Ollama)

# Automatic — Ollama picks the right GGUF quant
ollama run llama3.1:8b
# Uses Q4_K_M by default

EXL2 (Tabby)

# Convert a HF model to EXL2
python convert.py -i ./Llama-3.1-8B-Instruct -o ./llama-3.1-8b-exl2 -c ./calibration-data

# Serve with Tabby (or ExLlamaV2 directly)
tabby serve --model ./llama-3.1-8b-exl2

AWQ (vLLM)

# AutoAWQ produces a quantized model
autoawq-cli quantize --model meta-llama/Llama-3.1-8B-Instruct \
  --output-dir ./llama-3.1-8b-awq --bits 4

# Serve with vLLM
vllm serve ./llama-3.1-8b-awq --quantization awq

Decision matrix

Your hardwareBest format
NVIDIA RTX 3090/4090/5090EXL2 (fastest) or AWQ (best quality)
NVIDIA A100/H100 (production)AWQ (served via vLLM)
AMD GPUGGUF (only choice)
Apple SiliconGGUF (universal) or MLX (native)
CPU onlyGGUF (only choice)
Mobile (Android/iOS)GGUF (Q4_K_M) or MLX (iOS)
Raspberry Pi / JetsonGGUF (Q4_0 or Q5_0)
24GB GPU, want max qualityAWQ 4-bit
12GB GPU, want max speedEXL2 4-bit
8GB GPU, max modelQ3_K_M GGUF or Q2_K GGUF
6GB GPU, smallest modelQ2_K GGUF or Q4_0 GGUF
Fine-tune a quantized modelBnB (QLoRA)

See also

Frequently Asked Questions

Which quantization format should I use in 2026?

GGUF is the lingua franca and works on every hardware (CPU, NVIDIA, AMD, Apple). EXL2 is the fastest on NVIDIA consumer GPUs (RTX 3000/4000/5000). AWQ is the best quality-per-byte on NVIDIA. GPTQ is the legacy format, still works but no longer the leader. BnB (bitsandbytes) is for training, not inference.

What's the difference between Q4_K_M and Q4_0?

Q4_K_M is k-quant medium quality: 4.5 bits per weight on average, with a mixed strategy that uses more bits for important weights. Q4_0 is the legacy 4-bit uniform format, larger and slightly less accurate. Q4_K_M is the modern default; Q4_0 is only useful for older hardware that doesn't support k-quants.

Can I convert between formats?

GGUF can be derived from any other format (it's the universal target). GPTQ and AWQ models can be converted to GGUF. EXL2 can be derived from GPTQ or AWQ. The conversions are one-command in llama.cpp's conversion scripts.

Do I lose quality with quantization?

At 4-bit, modern formats (Q4_K_M, Q4_K_S, EXL2 4.0, AWQ 4-bit) lose <2% on MMLU vs the FP16 model. At 3-bit the loss is 3-5%. At 2-bit (Q2_K) the loss is 8-15% and the model often becomes incoherent. Stay at 4-bit or above for quality.