Training deep transformer models is primarily bounded by activation memory rather than parameter storage. During the forward pass of standard backpropagation, automatic differentiation engines cache intermediate activations across every attention head, layer normalization, and feed-forward sublayer so they can be referenced during the backward pass to evaluate gradients. For a transformer with N layers, sequence length L, batch size B, and hidden dimension d_model, storing these activations requires memory that scales linearly with depth, O(N * B * L * d_model).
When scaling sequence lengths to tens of thousands of tokens or stacking models beyond 80 layers, activation caching quickly exhausts high-bandwidth memory (HBM) on modern GPUs. While standard systems employ gradient checkpointing to recompute layers on demand, an alternative architectural approach eliminates activation storage altogether: the Reversible Transformer.
By adapting the reversible residual network architecture originally introduced in Gomez et al. (2017) and formalized for sequence models by Kitaev et al. (2020) in the Reformer architecture, reversible transformers structure residual connections so that every layer's inputs can be reconstructed analytically from its outputs during the backward pass. This reduces activation memory consumption from O(N) to O(1) with respect to network depth.

The Activation Memory Bottleneck in Standard Transformers
To understand why reversibility is valuable, consider the activation memory consumption of a standard transformer layer. A conventional residual block operates on an input tensor X through two sequential sublayers: multi-head self-attention and a position-wise feed-forward network (FFN):
H = X + Attention(LayerNorm(X)) Y = H + FFN(LayerNorm(H))
To evaluate parameter gradients during the backward pass via the chain rule, autograd systems must cache:
- Input tensors to nonlinear operations: The inputs to LayerNorm, softmax, and activation functions (such as GeLU or SwiGLU).
- Intermediate projections: Query, Key, and Value projections in attention, alongside intermediate hidden projections in the FFN (which typically expand d_model by a factor of 4 to d_ff = 4 * d_model).
- Attention matrices: In un-fused attention, the full B x H_heads x L x L attention score matrix.
Across N layers, this activation footprint dwarfs the static weight memory during pre-training. For example, pre-training a 70B parameter model with sequence length 8,192 without checkpointing would require hundreds of gigabytes of activation storage per device, exceeding the physical memory of standard 80GB HBM accelerators.
The Reversible Residual Formulation (RevNet)
The mathematical mechanism for eliminating activation storage originates from reversible dynamical systems and invertible flows, such as NICE (Dinh et al., 2014). Gomez et al. (2017) adapted this bipartite coupling formulation to residual networks in the Reversible Residual Network (RevNet).
Instead of maintaining a single activation stream X, the hidden state is partitioned into two distinct streams, X1 and X2, each of dimension d_model. A reversible residual block applies transformations F and G alternately across the streams:
Y1 = X1 + F(X2) Y2 = X2 + G(Y1)
The key property of this formulation is that the forward mapping is strictly bijective and invertible, regardless of whether functions F and G are themselves invertible. Because addition is reversible under subtraction, the layer inputs (X1, X2) can be recovered from the layer outputs (Y1, Y2) through simple algebraic inversion:
X2 = Y2 - G(Y1) X1 = Y1 - F(X2)
During the backward pass, backpropagation traverses the network in reverse order, starting from the final layer outputs (Y1_N, Y2_N). Each layer reconstructs its own input activations (X1_i, X2_i) on the fly, computes parameter gradients, and passes reconstructed inputs to the preceding layer (i - 1). Consequently, the training engine only needs to store the activations of the final layer, eliminating intermediate layer caching entirely.
Mapping Reversibility to Transformer Architecture: Reformer
In standard convolutional RevNets, the input tensor is split along the channel dimension. In the Reformer architecture, Kitaev et al. (2020) recognized that a transformer layer naturally comprises two distinct operations: Multi-Head Attention and the Feed-Forward Network.
Rather than splitting the hidden dimension in half (which would reduce the width of attention heads), Reformer duplicates the input representations at the model entrance (X1 = X, X2 = X) and pairs the attention block as function F and the feed-forward block as function G:
Y1 = X1 + Attention(LayerNorm(X2)) Y2 = X2 + FFN(LayerNorm(Y1))
At the final layer of the transformer stack, the two output streams are combined to produce the final hidden representation before unembedding:
Y_out = 0.5 * (Y1_N + Y2_N)
Exact Backward Pass Execution
During backpropagation, a custom autograd function receives the incoming gradients with respect to the block outputs, dL/dY1 and dL/dY2. The backward computation proceeds through four sequential steps:
- Reconstruct intermediate input X2:
X2 = Y2 - G(Y1)
- Compute gradients through G and accumulate dL/dY1:
dL/dW_G = (dL/dY2) * (dG(Y1) / dW_G) dL/dY1_total = dL/dY1 + (dL/dY2) * (dG(Y1) / dY1)
- Reconstruct initial input X1:
X1 = Y1 - F(X2)
- Compute gradients through F and obtain input gradients:
dL/dW_F = (dL/dY1_total) * (dF(X2) / dW_F) dL/dX2 = dL/dY2 + (dL/dY1_total) * (dF(X2) / dX2) dL/dX1 = dL/dY1_total
Once (X1, X2) and (dL/dX1, dL/dX2) are determined, the activations (Y1, Y2) can be freed from memory, and the reconstructed tensors are passed to the previous layer.
Memory and Computational Complexity
Reversible transformers introduce a clear trade-off between memory footprint and computational overhead:
1. Memory Scaling
In a conventional transformer with N layers, activation memory scales as O(N * B * L * d_model). In a reversible transformer, because only the activations of the executing layer and the final output state are held in memory, activation storage scales as O(B * L * d_model), which is independent of the number of layers N.
2. Computational Overhead
Because functions F and G must be evaluated once during the forward pass and re-evaluated once during the backward pass to calculate parameter gradients dL/dW, the backward pass incurs an additional forward execution per layer.
Under standard backpropagation, the backward pass requires approximately 2x the FLOPs of the forward pass (2F backward FLOPs vs. 1F forward FLOPs, for a total of 3F). In a reversible layer, re-evaluating F and G adds 1F FLOPs to the backward pass, bringing total training cost to 4F FLOPs. This represents a theoretical computational overhead of approximately 33.3% compared to non-reversible training.
Technical Challenges and Why Mainstream LLMs Diverged
Despite the theoretical elegance of O(1) activation scaling, contemporary frontier LLMs (such as LLaMA, GPT-4, and Claude) do not use reversible layers. The transition away from architectural reversibility in production LLM training is governed by three primary engineering realities:
1. Numerical Inexactness and Floating-Point Drift
The analytical guarantee that X1 = Y1 - F(X2) assumes exact real arithmetic. In practice, deep neural networks train using low-precision floating-point formats (FP16 or BF16). Floating-point addition and subtraction are non-associative:
(A + B) - B != A (under finite precision rounding)
Across 80 to 120 stacked layers, small truncation errors accumulate during backward reconstruction. While studies like MacKay et al. (2018) demonstrated that reversible networks in FP32 are stable, in BF16 or FP8 regimes, numerical drift can degrade gradient fidelity and destabilize training runs.
2. The Rise of Selective Activation Checkpointing
Standard gradient checkpointing (Chen et al., 2016) achieves near-identical memory reductions without requiring changes to the model architecture. By saving only layer-boundary activations and recomputing intra-layer activations during backprop, checkpointing achieves O(sqrt(N)) or O(1) memory scaling at the exact same ~33% compute overhead.
Furthermore, Korthikanti et al. (2023) introduced Selective Activation Checkpointing, showing that storing cheap matrix multiplication inputs while recomputing only high-memory, memory-bandwidth-bound operations (such as softmax, dropout, and LayerNorm) saves up to 70% of activation memory with less than 3% recomputation overhead.
3. FlashAttention and Hardware IO Fusion
A significant portion of transformer activation memory historically stemmed from the O(L^2) attention weight matrix. The introduction of FlashAttention (Dao et al., 2022) and FlashAttention-2 solved this problem directly at the GPU SRAM level by tiling the softmax computation and never materializing the L x L attention matrix to HBM. When combined with selective checkpointing, modern standard transformers eliminated the memory ceiling that initially motivated Reformer's reversible design.
Architectural Comparison Across Memory Management Paradigms
- Standard Transformer: Activation memory scales as O(N * B * L * d_model); compute overhead is 0% (baseline 3F); requires no architectural changes; bit-exact precision.
- Reversible Transformer (Reformer): Activation memory scales as O(B * L * d_model); compute overhead is ~33% (4F); requires bipartite stream architecture (X1, X2); susceptible to FP16/BF16 roundoff drift.
- Transformer with Full Checkpointing: Activation memory scales as O(B * L * d_model); compute overhead is ~33% (4F); standard uncoupled residual architecture; bit-exact precision.
- Transformer with FlashAttention and Selective Checkpointing: Activation memory scales as O(B * L * d_model); compute overhead is less than 5%; standard uncoupled residual architecture; bit-exact precision.
Modern Applications: Vision Transformers and Edge Training
While mainstream language models standardized on selective checkpointing and FlashAttention, reversible architectures remain actively deployed in memory-constrained vision and edge domains.
Mangalam et al. (2022) introduced Reversible Vision Transformers (RevViT), demonstrating that reversible residual connections allow training 16-layer to 32-layer Vision Transformers with up to 84% less activation memory while matching standard ViT top-1 classification accuracy on ImageNet-1K. In high-resolution video classification and 3D medical imaging, where input tensor dimensions exceed standard GPU memory limits, reversible connections provide a mechanism to train large spatial models without distributed pipeline parallelism.
Sources
- The Reversible Residual Network: Backpropagation Without Storing Activations (Gomez et al., NeurIPS 2017)
- Reformer: The Efficient Transformer (Kitaev, Kaiser, Levskaya, ICLR 2020)
- Reversible Vision Transformers (Mangalam et al., CVPR 2022)
- Training Deep Nets with Sublinear Memory Cost (Chen et al., 2016)
- Reducing Activation Recomputation in Large Transformer Models (Korthikanti et al., 2023)
- FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (Dao et al., 2022)
- NICE: Non-linear Independent Components Estimation (Dinh et al., 2014)



