Usually, modern LLMs are trained with half-precision activations. I believe this is fine for most operations with the exceptions of accumulators. Here heavy quantization can lead to significant error accumulation and error propagation. Pytorch's TorchTitan even defaults to full-precision for gradient accumulation across shards. Yet, the we do quantize the backbone accumulator of LLMs, the residual stream. In this post, we will explore the implications of this choice.