Gradient Dissent · Thu 22 Oct 2026 · NVIDIA's looped models
In a looped model the same middle block runs again and again. Each pass proposes a new state, and the gate decides how far to move toward it. It decides separately for every token and every channel. The figures respond to taps and drags.
Read the gate from right to left. \(\operatorname{softplus}(\gamma)\) is a learned cap for each channel. The sigmoid, between 0 and 1, says how much of that cap this token uses on this loop, and the gate matrix \(W_\beta\) computes it from the whole state.
Koi-4B: 14 input layers, 24 in the loop, 14 output layers.
At one loop every layer runs exactly once, so the model costs the same as an ordinary 52-layer model. Each extra loop adds 24 layers of compute and no parameters. The arc over each block is the old state, which the gate blends with the block's proposal.
Drag the blue and orange points.
Row \(j\) of \(W_\beta\) is a detector for channel \(j\). It takes a weighted sum over all \(d\) channels of \(\tilde s\): a large positive sum opens the gate, a large negative one closes it. The toy below has \(d = 8\); Koi-4B has \(d = 3{,}072\).
\(\tilde s\) across the top, \(W_\beta\) below, one row per channel
This token's step \(\beta_j\), inside its cap
Toy numbers with \(d = 8\), made up to show the arithmetic. They are not the paper's weights.
\(W_\beta\), \(b_\beta\) and \(\gamma\) are shared by every loop. The step still changes from loop to loop, because \(\tilde s_i\) changes as the state moves.
\(\beta\) for each loop (rows) and channel (columns)
How far each loop moved the state
Grey: the change the block proposed. Green: how far the gate let the state move. A toy loop block (a fixed random layer with tanh), with section 4's token and gate.
As the state settles, each loop proposes a smaller change. Dory1.0-4B, which has no gate, settles the same way: over 16 loops its state moved 2.6% at loop 2 and about 0.3% per loop by loop 10.
This is one loop as the paper's 0.5B ablations run it, without adding the input back. Each channel keeps part of its input and takes part of the block's output. An ordinary model has no such choice: it always takes all of the block's output.
For section 4's token: how much of each channel comes from the block
Orange: the share taken from the block, the number at right. Grey: the share kept from the input.
GPT-0.5B trained on 300B tokens, validation loss; lower is better. Ladhak et al., section 6.2.
The model trained only at one loop runs every layer once, like the baseline. Without the input added back the two differ only in the gate, and the gate model is 0.025 lower.
| Rule | Update | Result, GPT-0.5B | |
|---|---|---|---|
| Replace | \(s_i = r_i\) | Highest one-loop loss; worse at 5 loops than at 4 | |
| Residual | \(s_i = s_{i-1} + r_i\) | Stops improving after 3 loops | |
| Delta | \(s_{i-1} + \alpha \odot (r_i - s_{i-1})\) | Second at every depth, 0.006–0.007 behind | |
| Adaptive delta, the gate | \(s_{i-1} + \beta_i \odot (r_i - s_{i-1})\) | Lowest loss at every loop count |
Delta's \(\alpha\) is learned for each channel but is the same for every token; it starts at 0.05. Ladhak et al., section 6.1.
GPT-0.5B trained with mixed loop counts (up to 5), validation loss. Ladhak et al., Table 14.
| Koi-4B, the paper's model | Dory1.0-4B, released weights | |
|---|---|---|
| Between loops | A gated step, \(s + \beta \odot (r - s)\) | Replace, then normalize: \(\operatorname{norm}(\mathcal{R}(\operatorname{norm}(s + h_{\text{in}})))\) |
| Inside each layer | Ordinary residual layers | nGPT's step, \(h \leftarrow \operatorname{norm}(h + |\alpha| \odot (f(h) - h))\) |
| Who sets the step | Each token and channel, through \(W_\beta\) | Each channel, through \(\alpha\); the same for every token |
| Gate parameters | \(W_\beta\) is \(3{,}072 \times 3{,}072\), plus \(b_\beta\) and \(\gamma\) | None among its 507 tensors |
Koi-style: \(\beta\) from \(W_\beta \tilde s\)
Dory-style: \(\alpha\) for each channel
Toy values; rows are tokens, columns are channels. Each panel has its own colour scale.
Dory's per-layer step is the paper's "delta" rule, moved inside every layer. In the paper's 0.5B ablation, delta came second, 0.006–0.007 behind the gate. The question for the room: does nGPT's per-layer step already do most of the gate's job?
More for Thursday: the 17 slides, the 10-minute audio overview and the companion write-up.