Sixteen bytes per parameter
The first surprise in distributed training is that the model weights are a minority of the memory.
Standard mixed-precision training with the Adam optimizer keeps five things per parameter. A 16-bit copy of the parameter used in the forward and backward pass, at 2 bytes. A 16-bit gradient, at 2 bytes. Then, in 32-bit because they accumulate small updates and would underflow otherwise: a master copy of the parameter at 4 bytes, the first moment estimate at 4 bytes, and the second moment estimate at 4 bytes.
That totals 16 bytes per parameter, and only 2 of them are the weights you would ship for inference.
Run it on a 70-billion-parameter model. Parameters in 16-bit: 140 GB. Gradients: 140 GB. The 32-bit optimizer trio: 840 GB. Total model state: 1120 GB.
An 80 GB accelerator holds one seventieth of that. Fourteen of them, perfectly filled, would hold the state and have nothing left for activations. This is why training is a distributed systems problem and inference often is not.

