2026-08-03 · 8 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, the hybrid layer composition and the two figures reproduced above, 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.