Half the Nonlinearity Is Wasted: Measuring and Reallocating the Transformer's MLP Budget

Peter Balogh
3/3/2026
cs.LGcs.CL

No official code found. Best implementation: pbalogh/half-the-nonlinearity (0 stars, MIT, last commit 2026-03-06).

Abstract

We investigate when transformer MLP nonlinearity is actually necessary. A gate with $d+1$ parameters decides when to replace the full MLP with a linear surrogate. Through systematic investigation across six models (162M-2.8B parameters), two architectures, and three corpora, we establish that nonlinearity need cannot be predicted from token identity: cross-corpus correlation is zero ($r < 0.05$). The routing decision is fully contextual. Despite weak per-instance predictability, the gate exploits a heavily skewed distribution where most MLP computations are near-linear, achieving 25-56% linear routing at <1% perplexity cost in GPT-2. In GPT-2 Large, 11 of 36 layers beat baseline with gating and no layer exceeds 3.7% all-linear cost. This success is architecture-dependent: Pythia models show higher costs, though Pythia-2.8B's full 32-layer sweep reveals one layer that narrowly beats baseline. As a proof of concept, we progressively replace middle-layer MLPs with frozen linear matrices: 5 of 24 layers linearize at zero cost. With a full training budget, 4 linearized layers yield a 10.2% perplexity improvement -- and a two-phase gated approach pushes this to 17.3%, beating a vanilla fine-tuning control and confirming that the nonlinear MLPs at these layers were actively harmful.

View on arXivView PDF

Code Implementations(1)

MIT

Code, data, and paper for 'Half the Nonlinearity Is Wasted: Measuring and Reallocating the Transformer's MLP Budget'

00TeX, PythonMar 3, 20267 months agoMIT

Similar Papers

Cite this paper

@article{balogh2026half,
  title  = {Half the Nonlinearity Is Wasted: Measuring and Reallocating the Transformer's MLP Budget},
  author = {Peter Balogh},
  year   = {2026},
  eprint = {2603.03459},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2603.03459v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2603.03459.svg)](https://codeofpaper.com/paper/2603.03459)

Discussion