From FP32 to FP8 and INT4: scales, zero points, granularity, calibration, outliers, PTQ, QAT, memory, bandwidth, and accuracy.
This chapter follows the series' four-layer pyramid: intuition first, then consequences, system design, and finally implementation-level checks. It is written to be useful both as a first explanation and as a review sheet before reading the primary papers.
Quantization trades representational resolution for cheaper storage and arithmetic; its success depends less on the advertised bit-width than on where scales are computed and which outliers are protected.
What you should be able to do after reading
- Explain the mechanism without relying on the feature name.
- Trace the relevant tensors, losses, or messages through one concrete example.
- Distinguish a paper claim from an inference, implementation choice, or marketing shorthand.
- Design a minimal experiment that could prove the idea wrong.
Where this chapter fits in the ten-phase map
Low precision touches every earlier mechanism: attention projections, cached representations, expert FFNs, routers, and MTP branches. A format that works for one matrix may fail in a reduction or collective. Phase 8 therefore treats precision as part of the distributed system, not a checkpoint conversion.
The dependency is useful when debugging. If the model-level equation is correct but the measured result is poor, walk backward through representation, numerical format, memory layout, routing or communication, and finally the evaluation harness. The first broken contract is usually more actionable than the final benchmark delta.
1. A quantizer is a mapping
A uniform affine quantizer divides a floating range into discrete codes using a scale and optional zero point. Quantization rounds; dequantization reconstructs an approximation. Clipping error and rounding error pull in opposite directions, so choosing the represented range is central.
2. Bit-width is not a complete format
INT8, INT4, FP8 E4M3, and FP8 E5M2 allocate range and precision differently. Floating formats preserve a wide dynamic range with variable spacing; integers provide regular levels around a chosen scale. Workloads need different formats for weights, activations, gradients, and optimizer states.
3. Granularity controls outlier damage
One scale per tensor is cheap but lets a single outlier set the step size for millions of ordinary values. Per-channel, per-group, and per-tile scales isolate outliers at increasing metadata and kernel cost. DeepSeek’s FP8 design uses fine-grained groups for exactly this reason.
4. PTQ and QAT solve different problems
Post-training quantization transforms a trained checkpoint using calibration data and possibly reconstruction. Quantization-aware training simulates low precision during optimization so weights adapt to its noise. Training a frontier model directly in FP8 is yet another problem because every step changes distributions.
5. Memory savings do not guarantee speed
A 4-bit model reduces weight bandwidth and capacity, but unpacking, scale loads, unsupported kernels, and small batches may erase gains. End-to-end latency depends on hardware-native arithmetic, kernel fusion, KV cache, and whether the workload is bandwidth or compute bound.
Engineering lens. For every concept above, identify the tensor, state, metric, or system boundary that makes it observable. Then ask which assumption would make the claim fail. This keeps the chapter testable instead of leaving it as architecture vocabulary.
Worked example
Quantize values [-1.0,-0.2,0.1,0.9] to signed 3-bit symmetric integers. Compute the max-derived scale, rounded codes, reconstructed values, and mean squared error. Then add an outlier 10.0 and observe how every ordinary value loses resolution.
Do the arithmetic with small dimensions first. Small examples expose index shifts, hidden assumptions, and missing denominators that disappear inside a billion-parameter headline. Once the hand-worked result is correct, automate it and compare the program output against the same values.
Implementation and measurement plan
Evaluate perplexity and task metrics, but also model size, peak memory, prefill/decode latency, throughput, energy, and kernel coverage. Calibrate on representative sequence lengths and domains; a tiny clean sample can hide activation outliers.
- State the exact model, checkpoint, hardware, and date behind every numerical claim.
- Separate algorithmic complexity, theoretical FLOPs, measured latency, memory, and end-to-end cost.
- Build a small reference implementation before optimizing kernels or distributing it.
- Compare against an equal-compute or equal-parameter baseline and report the denominator.
- Record failure cases and scope limits beside the successful result.
From a paper claim to an engineering contract
The primary anchor for this chapter is DeepSeek-V3 Technical Report from DeepSeek-V3. Reading a number from that source is only the first step. A reproducible contract has four layers:
| Layer | Question to write down | Evidence |
|---|---|---|
| Mechanism | What operation, loss, state, or routing decision changes? | Equation, pseudocode, tensor shapes |
| Implementation | How is it realized on the named hardware and software stack? | Kernel, precision, layout, process groups |
| Measurement | Which denominator and baseline make the comparison fair? | Raw metrics, config, repeated runs |
| Scope | Where should the claim stop being trusted? | Failure cases, ablations, dated limitations |
This separation prevents a frequent error in frontier-model writing: converting a theoretical reduction into a latency promise, or converting one internal benchmark into a universal quality ranking. The implementation can fail to realize the algorithm, and the workload can fail to expose the intended benefit.
Failure modes and misleading shortcuts
- Quoting weight bits while leaving scales and embeddings uncounted misstates size.
- Perplexity parity does not ensure reasoning or rare-token parity.
- A quantized checkpoint can run slower on unsupported hardware.
- Weight-only results do not describe KV cache memory.
- Calibration data leakage can inflate benchmark quality.
These are not footnotes. Frontier-model engineering is dominated by boundary conditions: a method can be mathematically correct and still lose to memory traffic, data skew, numerical drift, evaluation leakage, or a poorly stated comparison. A credible result makes those boundaries visible.
How to audit claims about this topic
Rewrite each claim with its missing boundary: name the exact mechanism, identify the tensor or resource it changes, and attach the workload and measurement. Then construct a counterexample at the edge of the claim. If a sentence cannot survive that rewrite, treat it as orientation—not evidence.
Next, trace provenance. Prefer the primary report for configuration and results, the released code for implementation behavior, and your own profiler for product performance. Secondary explainers are valuable for intuition but should not silently become the source of a numerical claim.
Decision guide: when should you use this idea?
Use it when the bottleneck named in the thesis appears in profiler traces or controlled quality experiments, the necessary kernels and runtime support exist, and the added system complexity can be observed in production. Start with the smallest configuration that exposes the bottleneck.
Delay it when a dense or higher-precision baseline does not yet converge, the evaluation harness is unstable, or the claimed resource is not limiting the workload. Sophisticated architecture cannot compensate for an invalid baseline.
Reject it when its benefit exists only under a denominator irrelevant to the product—for example, theoretical FLOPs while user latency worsens—or when numerical, safety, or operational regressions exceed the measured gain.
Hands-on study lab
- 1. Implement a symmetric quantizer.
- 2. Compare per-tensor and per-channel error.
- 3. Profile memory-bound versus compute-bound layers.
- 4. Build a deployment scorecard beyond model size.
For each exercise, save the configuration, a tiny deterministic fixture, the raw measurements, and one failed case. The goal is not merely to make the code run; it is to make the conclusion independently checkable.
Quick self-check
What is the central idea?
Quantization trades representational resolution for cheaper storage and arithmetic; its success depends less on the advertised bit-width than on where scales are computed and which outliers are protected.
What is the most common reading mistake?
Quoting weight bits while leaving scales and embeddings uncounted misstates size.
What evidence should I demand?
An exact configuration, a fair baseline, primary-source support, end-to-end measurements, and failure cases at the limits of the claim.
How do I explain it to a new engineer?
Begin with the bottleneck, show one tiny worked example, trace the changed state, and only then introduce the official name. Finish by naming one situation where the method will not help.
How do I review an implementation?
Check indexing and masks, parameter sharing, dtype transitions, layouts, process-group scope, raw metric denominators, and behavior under an adversarial or worst-case fixture. A passing happy-path shape test is not enough.
Teach-back synthesis
Close the page and reconstruct the argument in five sentences: the bottleneck; the mechanism; the state or tensor that changes; the fair measurement; and the main failure mode. Then reopen the page and compare. If you can repeat the feature names but cannot state those five sentences, revisit the worked example.
Finally, connect the idea to two neighboring phases. DeepSeek's advantage is not one isolated invention: compressed attention changes the cache, sparse experts change active compute, FP8 changes arithmetic and bandwidth, distributed schedules hide communication, and reasoning training spends the resulting capacity differently. The series becomes useful when those dependencies form one mental model.
Key takeaways
- From FP32 to FP8 and INT4: scales, zero points, granularity, calibration, outliers, PTQ, QAT, memory, bandwidth, and accuracy.
- The mechanism, training recipe, runtime implementation, and measured product behavior are separate layers of evidence.
- Numbers remain meaningful only with their workload, precision, hardware, context length, and date attached.
- A small reproducible test is more valuable than a large uncheckable diagram.
Primary sources and further reading
- DeepSeek-V3. DeepSeek-V3 Technical Report.
- Micikevicius et al.. FP8 Formats for Deep Learning.
- PyTorch. Automatic Mixed Precision documentation.