Round to nearest, and where it stops working
The naive method is round-to-nearest: compute a scale from the observed range, divide, round, done. No calibration data, no optimisation, a few seconds of work.
Where it works and where it breaks is a clean pattern, and the pattern is the subject of this lesson.
| Setting | Round-to-nearest result |
|---|---|
| Weights at 8 bits, any model size | fine |
| Weights at 4 bits, small models | fine |
| Weights at 4 bits, large models | degrades noticeably; the next lesson's algorithms address it |
| Activations at 8 bits, large models | collapses; no amount of clever rounding fixes it |
That second failure is the strange one. Activations at 8 bits should be easy: 256 levels is generous for values that mostly sit within a small range. The reason it breaks is not about rounding at all. It is about what large transformers do to their own activation distributions.

