The redundancy nobody needed
Look again at what data parallelism does with 64 GPUs. Each holds the same parameters, computes different gradients that are then averaged to be identical, and runs an optimizer that produces the same update from the same inputs.
After the all-reduce, all 64 replicas hold byte-identical model state. The system stores 64 copies of something that is, by construction, the same on every device.
The Zero Redundancy Optimizer starts from that observation. If the state is identical everywhere, no device needs all of it. Each can hold one sixty-fourth, and the pieces can be gathered when they are actually needed.
The subtlety is that the pieces are needed at different times and for different durations. Optimizer states are touched once per step, during the update. Gradients are needed at the end of the backward pass. Parameters are needed continuously, in every layer of every forward and backward pass.
That ordering, from rarely-needed to constantly-needed, is exactly the order of the three ZeRO stages.

