2026-08-03 · 7 min · linear-attention · kimi · attention · explainer · math
Here is a small thing I keep turning over. The forgetting mechanism inside Kimi Delta Attention — the linear attention in Kimi K3 — is the same mathematics as radioactive decay. Not "reminiscent of", not "a useful analogy". The same two-line derivation, with tokens where a physicist writes seconds.
Two laws that are one law
A radioactive sample loses a fixed fraction of its remaining atoms per unit time. That gives the exponential law everyone meets in school:
A KDA channel loses a fixed fraction of its remaining state per token. Take the recurrence and strip it to the decay term — set the write strength to zero and watch a stored value with no new input arriving:
Those are the same function. Since ,
The retention factor and the decay constant are two spellings of one number. A channel with close to 1 is a long-lived isotope; a channel with small is one that barely outlives its own creation.
So it has a half-life
Once you accept that, the half-life comes for free. Ask for the where half the signal is gone:
That is the whole result, and it is worth internalizing because it converts an opaque hyperparameter into a number with units you can reason about. α = 0.99 gives a half-life of about 69 tokens. Not "some decay" — sixty-nine tokens, roughly a long sentence. Drag it:
The curve is Sₙ = αⁿS₀ — a channel’s memory after n tokens. It crosses the dashed half-line at n½ = ln(0.5)/ln(α), the same formula a physicist uses for an isotope, because αⁿ and e^(−λn) are the same function with λ = −ln α. At α = 0.99 a channel has forgotten half of what it knew after about 69 tokens. Nudge α to 0.999 and that becomes roughly 693.
The lever is brutally nonlinear near 1, which is the part worth feeling rather than reading. Going from α = 0.99 to α = 0.999 does not extend memory by a tenth of a percent; it multiplies the half-life by ten, from about 69 tokens to about 693. Each additional nine buys another factor of ten. That is why linear-attention gates are usually parameterized in log space — the useful resolution all lives in the last few decimal places, and a linear parameterization would spend nearly all its range on channels that forget immediately.
The interesting part: α is per channel
If KDA had one global α this would be a cute observation and nothing more. It doesn't. In K3, α is a channel-wise vector — the report writes the state update as
where is a per-channel one-step retention factor and is the delta-rule
write strength. Diag(αₜ) is the load-bearing notation: every one of the channels gets its own decay
constant, so a single head carries a whole spectrum of half-lives simultaneously.
A single α gives a model one memory horizon. Because KDA learns α per channel, one head holds many at once — the fast channels here are effectively a local n-gram window, forgetting within a clause, while the slowest (α = 0.9999993, a half-life near 990k) is still holding half its signal at the end of a million-token context. Slide the context marker and watch the “holds” column collapse from the bottom up as the window grows. That spread is the mechanism behind a linear-attention model having both sharp recency and long recall from the same fixed-size state.
This is what makes a fixed-size state genuinely useful rather than merely cheap. The head is not choosing between "remember recent things sharply" and "remember old things vaguely" — it runs both at once, on different channels. The fast channels behave like a local window: they hold the current clause and dump it. The slow channels are closer to a running summary that survives the entire context. Attention over a KV cache gets its long-range recall by storing everything; KDA gets a version of it by storing a small number of things at deliberately different rates.
It also reframes what "training the gate" means. The model is not learning whether to forget. It is learning a distribution of timescales — effectively allocating channels across memory horizons, the way a filter bank allocates across frequencies.
What K3's config actually pins down
The released weights make a couple of things concrete. K3 runs 69 KDA layers out of 93, three of every four,
with a Gated MLA layer as the fourth — so most of the model's sequence mixing is this decay process, and the
full-attention layers are the periodic exact-recall anchor. Head dimension is 128, and the gate is full-rank
(use_full_rank_gate: true) rather than a low-rank approximation — though see the update below for exactly how
the per-channel variation is produced.
The config also carries gate_lower_bound: -5.0. Read as a floor on log-α, that bounds the fastest a channel is
allowed to forget: , which is a half-life of about 0.14 tokens — a channel
that has essentially dumped its state by the very next step. The ceiling is the interesting end and it is open:
as α approaches 1 the half-life grows without bound. To keep half your signal across a full 1M-token context you
need α ≈ 0.99999931. That number has seven leading nines, which is exactly why the bound is expressed in log
space.
Why this is more than a nice analogy
Two things fall out of it that are practically useful.
It gives you a unit. "The gate decays the state" is unfalsifiable prose. "This channel has a half-life of 69 tokens" is a claim you can check against a model's behaviour — and it tells you immediately that a channel with a 7-token half-life cannot be the thing carrying a fact across a document, no matter what the attribution heatmap suggests.
It explains the parameterization. Every design choice around these gates — log-space parameterization, bounded gates, careful initialization near 1 — follows from the shape of . The function is nearly flat for most of and then explodes in the last sliver. Any scheme that samples α uniformly wastes almost all of its capacity on channels that forget within a few tokens.
The same algebra runs through every gated linear-attention variant, not just KDA — Mamba's , the decay in RetNet and RWKV, the forget gate of an LSTM. They differ in how α is produced and whether it depends on the input. They agree on the underlying law, which has been sitting in physics textbooks the whole time.
Sources: the Kimi K3 technical report for
the KDA recurrence and the hybrid layer composition, and the released
Kimi K3 config.json for the layer split, head dimension,
use_full_rank_gate and gate_lower_bound. The half-life framing and the derivation are mine; the channel
α values in the spectrum widget are illustrative, chosen to span the range, while every half-life shown is
computed exactly from them.