Quantization and VRAM: BF16, FP8, INT8 and INT4

Quantization stores a model's weights in fewer bits. Weights are usually the largest part of GPU memory, so it is the first lever people reach for — but it shrinks only the weights, and every step down trades some accuracy.

Bytes per parameter

Weights take parameters × bytes per parameter. BF16 and FP16 are the reference — most models are released in one of them — and every other precision is a multiple of it.

PrecisionBytes / parameterLlama 3.1 8B InstructQwen2.5 32B InstructLlama 3.3 70B InstructLlama 3.1 405B Instruct
FP32429.91 GiB122.0 GiB262.8 GiB1511.9 GiB
BF16 / FP16214.96 GiB61.02 GiB131.4 GiB756.0 GiB
FP818.46 GiB31.96 GiB67.66 GiB381.9 GiB
INT818.46 GiB31.96 GiB67.66 GiB381.9 GiB
INT40.535.41 GiB18.34 GiB37.78 GiB206.5 GiB

Weights only, before the KV cache and overhead. At FP8, INT8 and INT4 the embedding and the output layer stay at 16 bits.

The formats you will meet

Why 4-bit is not exactly half a byte

Real 4-bit formats also store their scaling factors — a 16-bit scale for every group of 128 weights in AWQ and GPTQ, an 8-bit scale for every block of 32 in MXFP4 — which comes to about 4.25 bits a weight, and they keep the embedding and the output layer at 16 bits. LLMScale counts both, so its 4-bit figure comes out well above half of BF16: Qwen2.5-7B lands within 2% of Qwen's own AWQ checkpoint, and Qwen3-8B at FP8 matches RedHat's FP8 checkpoint to the hundredth of a GiB. A checkpoint that already ships quantized is sized by its own files. QLoRA's NF4 with double quantization measures 4.127 bits, or 0.516 bytes, per parameter, and that is the figure the fine-tuning calculator uses.

It does not shrink the KV cache

The KV cache has a precision of its own, set by the serving engine rather than by the weights' format. Take Llama 3.3 70B Instruct with one user at 128k context: its weights take 131.4 GiB at BF16 and 37.78 GiB at INT4, while the KV cache stays at 40.00 GiB in FP16 — more than the INT4 weights. Storing the cache in FP8 is a separate choice that halves it; see KV cache size.

Mixture-of-Experts models

Every expert is quantized, and every expert still has to be in memory. Mixtral 8x7B Instruct holds 46.70B parameters: 86.99 GiB of weights at BF16, 23.46 GiB at INT4. Its 12.90B active parameters decide how much work each token does, not how much memory the model takes.

Choosing a precision