Blog
llm

Reading the Label: A Field Guide to Local LLM Formats, Quantization, and Variants

2026-06-08

Anatomy of a model name

You go to download a model and the list looks like this:

qwen3.6:27b-nvfp4
gemma4:12b-it-qat
Qwen3.6-35B-A3B-4bit-DWQ
Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf
mlx-community/Qwen3.6-27B-8bit

Alphabet soup. But every one of those suffixes is a deliberate, independent choice, and once you can read them you can pick the right file for your machine in seconds instead of downloading 20 GB to find out it doesn’t fit. This is a standalone decoder ring — no prior reading required.

The four axes

Almost everything in a model name is one of four independent decisions. Keep them separate in your head and the soup turns into a recipe:

  1. Architecture — how the model is built: dense vs mixture-of-experts (MoE).
  2. Precision / quantization — how many bits each weight uses: BF16, Q8, Q4_K_M, nvfp4, int4…
  3. File format / runtime — how the weights are packaged and what software runs them: safetensors, GGUF, MLX, GPTQ/AWQ, EXL2.
  4. Fine-tune stage — what the model was trained to do: base, instruct (-it), chat, reasoning, coding.

A name like Qwen3.6-35B-A3B-4bit-DWQ is just one pick from each bucket (plus a quality trick). Let’s take the buckets one at a time.

Axis 1 — Precision: what a “weight” actually costs

A model is billions of numbers (weights). Precision is how many bits you spend storing each one. Fewer bits = smaller file and less memory = but eventually, worse quality.

The full-precision formats (training-grade):

The size math is simple — bytes per weight × parameter count:

PrecisionBytes/weightA 13B model
FP324~52 GB
BF16 / FP162~26 GB
8-bit1~13 GB
4-bit~0.5~7 GB

That’s the whole reason quantization exists: a 13B model at BF16 needs 26 GB; at 4-bit it needs ~7 GB and fits on a laptop.

The precision ladder

The key insight from that ladder: quality stays near-lossless all the way down to ~6 bits, holds up well at 5 and 4 bits, and only really degrades at 3 bits and below. That’s why Q4–Q5 is the default sweet spot — most of the memory savings, almost none of the quality loss.

Axis 2 — Quantization: the zoo of ways to get to 4 bits

“4-bit” isn’t one thing. How you squeeze a 16-bit weight down to 4 bits matters enormously for quality. Two big families:

Post-training quantization (PTQ) — take a finished model and compress it. Fast, no retraining. Most quants are PTQ.

Quantization-aware training (QAT) — train (or fine-tune) the model while simulating the rounding, so it learns to be robust to low precision. More expensive to produce, but a QAT int4 model is noticeably closer to full quality than a naive PTQ int4. Google ships -qat builds of Gemma for exactly this reason.

Now the suffixes you’ll actually see:

And one that is not quantization at all but often sits nearby:

Axis 3 — File format & runtime: where it’ll actually run

The format decides which software loads the model, and that software decides which hardware you can use. This is the axis people most often get wrong (downloading a CUDA-only quant for a Mac).

Which format runs where

The short version: on a Mac, prefer MLX (fastest) or GGUF (most flexible). On an NVIDIA box, GGUF, GPTQ/AWQ, or EXL2. On CPU-only, GGUF. MLX and the CUDA formats don’t cross over.

A note from experience: on Apple Silicon, MLX decodes meaningfully faster than the GGUF/llama.cpp engine — but GGUF lets you cap the context window while MLX loads the model’s full native context. So the “fastest” format isn’t always the right one if memory is tight.

Axis 4 — Architecture: dense vs MoE (and what “A3B” means)

Dense vs Mixture-of-Experts

The trade-off that trips people up: an MoE is fast like its active size but heavy like its total size. A 35B-A3B decodes roughly as fast as a ~3B model, but all 35B parameters still have to live in memory (you never know in advance which experts a token will need). So MoE buys you speed, not a smaller memory footprint.

Axis 5 (bonus) — the fine-tune stage

What the weights were last trained to do:

Putting it together: decode these

Zooming out: quantization is one lever in a bigger stack

Everything above is about reading a model’s label — but the label only captures part of how a model is made fast and cheap. Quantization is just one model-level optimization among several, and all of them live inside a larger stack. It helps to see the whole map:

Where optimizations fit in the AI stack

The other model-level levers you’ll hear about:

And the stack those levers sit in — Application → Model → Infrastructure → Chip → Energy:

So when you pick Q4_K_M over BF16, you’re pulling one lever (precision) at one layer (Model). Knowing the rest of the map is what lets you reason about why a model is slow or expensive when the quantization alone doesn’t explain it.

How to choose, by hardware

Cheat sheet

Precision

LabelBitsUse it when
BF16 / FP1616quality first, memory is no object
Q8_08near-lossless, modest savings
Q5_K_M~5.5high quality, smaller
Q4_K_M~4.8default sweet spot
IQ4 / IQ3 / IQ22–4squeezing onto tight hardware
Q2_K~2.6last resort; visible quality loss

Quant method

TagGist
PTQ (most)compress a finished model
QATtrained to be quantization-robust → best low-bit quality
k-quant (_K)mixed bit-widths per tensor (GGUF)
imatrix / IQcalibration-guided low-bit quants
AWQ / GPTQGPU PTQ methods
nvfp4 / mxfp44-bit float with block scaling
DWQdistilled quality recovery (MLX)
distillationa different, smaller model (not a quant)

Format → hardware

FormatRuns best on
MLXApple Silicon (fastest)
GGUFanything (Mac/NVIDIA/CPU)
GPTQ / AWQ / EXL2NVIDIA GPUs
safetensorsfull-precision source; PyTorch/vLLM

Once the name stops being soup, the decision is fast: figure out your format (your hardware decides it), pick a 4–5-bit quant unless you have memory to burn, and check whether that headline parameter count is dense or MoE so you know what’ll actually fit in RAM. Everything else is a footnote.