Per-sequence normalization averages each completion’s token losses before averaging across the batch, giving every sequence equal influence regardless of length. For losses ℓᵢ,ₜ and completion length |aᵢ|, L = (1/B) Σᵢ (1/|aᵢ|) Σₜ ℓᵢ,ₜ. section 6.3.2
Its optimization behavior differs from alternative loss reductions:
- Shorter sequences receive larger per-token gradients than longer sequences when sequence-level losses are equally weighted. section 6.3.2
- Per-token normalization weights every token equally, while fixed-length normalization preserves sequence-level averaging but uses a constant Lmax denominator. section 6.3.2
- The method emphasizes outcomes over individual tokens but can over-weight short strategies or downweight strategies that naturally require more tokens. section 6.3.2
Unequal token influence
For losses [1,1,1,1,10] and [1,1,1,1,1,1,1,1,1,10], the sequence means are 2.8 and 1.9; per-sequence normalization averages them to 2.35, giving short-sequence tokens stronger gradients. section 6.3.2
Equation 6.46
\[\label{eq:loss_per_sequence} L = \frac{1}{B} \sum_{i=1}^{B} \frac{1}{|a_i|} \sum_{t=1}^{|a_i|} \ell_{i,t}.\]Equation 6.46 gives the formal reduction; the masked implementation first averages active completion-token losses per sequence, then averages sequences. section 6.3.2
