GGUF vs GPTQ vs AWQ vs EXL2: LLM Model Formats Explained (2026)
MarkTechPost Asif Razzaq
GGUF, GPTQ, AWQ, EXL2 and EXL3 all squeeze model size, but they’re not the same thing. The big trap is mixing file format with quantization method.
Based on reporting by MarkTechPost, Asif Razzaq — read the original for the full story.
Summary, retelling and take written by AI under human oversight; images are AI-generated illustrations. How we work · Report an error
Most of the confusion around local LLMs comes from treating everything as one layer. It isn’t. Some names describe how tensors are packed on disk. Others describe how the weights are squeezed down to fewer bits. And a few, like EXL2 and EXL3, are both a method and a storage layout tied to a specific inference stack.
The simplest place to start is the boring one: safetensors and older PyTorch .bin files. The old pickle-based .bin and .pt files can execute arbitrary code when loaded, which is a real problem if the checkpoint came from somewhere sketchy. Safetensors was built to avoid that. It is just a small JSON header plus raw tensor buffers, and it can be memory-mapped and loaded piece by piece. The catch is that a lot of quantized models also use .safetensors; the container does not tell you the quantization story by itself.
GGUF sits in a different lane. It was made for llama.cpp and related executors, replacing older GGML-style files that could not handle changing metadata gracefully. GGUF carries more than weights: tokenizer data, special tokens, even a Jinja chat template can live inside the file. The naming scheme tells you the quantization family, and the Hugging Face docs spell out the trade-offs. Q8_0 is still the near-lossless default. Q4_K_M, Q5_K_M and Q6_K trade more size for more quality, while the newer I-quant types push lower still.
Hugging Face’s table for a Llama-2-7B-class model shows the basic pattern: FP16 at 13.0 GB, Q8_0 at 7.0 GB, Q6_K at 5.5 GB, Q5_K_M at 4.8 GB, and Q4_K_M at 4.1 GB, with only a modest perplexity bump at the higher-bit settings. That is illustrative, not universal, but the shape is the point. GGUF is what people reach for when they want local inference on CPU, Apple Silicon, or a mixed CPU+GPU setup without fussing over a GPU-only runtime.
GPTQ and AWQ are the GPU-side workhorses, but they solve the problem differently. GPTQ uses approximate second-order information and a small calibration set to quantize weights in one pass, while AWQ looks at activation magnitudes to protect a small set of salient channels without backprop or reconstruction. Both are stored in safetensors, not a special new container. And both have their old tooling aging out: AutoGPTQ is no longer maintained, and AutoAWQ is officially deprecated.
EXL2 and EXL3 are the more opinionated options. EXL2 is built for ExLlamaV2 and can mix bitrates across and within layers, which is why you see names like 4.65bpw instead of a clean 4-bit label. EXL3, the successor, keeps the tensor structure more intact and adds very low bitrates, KV-cache quantization, and support for consumer NVIDIA GPUs through ExLlamaV3. On the other end, bitsandbytes NF4 is less about shipping a pre-quantized file and more about quantizing a model as it loads, which is why it stays popular for QLoRA fine-tuning.
The practical takeaway is pretty simple: a file format is not a quantization method, and a quantization method is not a runtime. That distinction saves a lot of bad download choices and a lot of confused forum posts.
My take — AI-written commentary, not fact-checked reporting
The industry keeps inventing new acronyms because it is easier than admitting the same old trade-off: smaller models are cheaper, and they also get stranger. GGUF wins for local simplicity, while the GPU-serving crowd keeps chasing cleaner runtimes and lower bitrates. The real surprise is how many people still pick a format before they pick a machine.
Read more about this at: MarkTechPost