Why On-Policy Tokens Can Have Low Fisher
On-policy Fisher can be small even when logits move, because it sums token-level sensitivity differences and likely candidates may move together.
Read the paper ↗What it is
- Token contributions A response’s Fisher can be understood as a sum of contributions from each next-token decision along the generated sequence.
- Relative logit movement A parameter matters to a token decision when it changes candidate-token scores differently, rather than shifting them all together.
- Likely-token alignment If the model is most likely to choose tokens that a parameter affects similarly, that parameter can have low Fisher for that decision.
Why it matters
This gives an intuitive account of why a parameter can affect logits yet contribute little Fisher during on-policy generation: the likely choices may move together, preserving their relative probabilities.
Before getting into the machinery, here is the short version: Fisher is not a count of how much a parameter moves logits. It cares about whether that movement changes the probability of the token the model samples. If likely alternatives move together, their relative odds barely change, so their contribution can be small.
-
What is being measured: The canonical example is one next-token decision after “She drank a cup of”. If “tea” and “coffee” are both plausible, a parameter that raises both scores similarly changes their shared plausibility more than their contest with each other. Generalize that contrast across candidate tokens, and you have the local source of token Fisher.
-
Why look token by token: A generated response is a chain of next-token choices, so its log probability adds the per-token log probabilities. The corresponding score adds the per-token score contributions. For on-policy samples, each new token score averages to zero once the current prefix is fixed; that makes cross-token products disappear in expectation. In other words, sequence Fisher can be read as token contributions accumulated along the sampled path. The cancellation is an expectation statement, not something that must hold for each response. So what determines the size of one token’s contribution?
-
What the token contribution notices: Imagine each candidate logit has a sensitivity label saying how much it changes when one parameter moves. The token probability only responds to differences from the probability-weighted average label: a shared shift cancels, much like adding the same constant to every option in a lookup table. Formally, ; in words, subtract the average logit movement from candidate ’s movement. Squaring and averaging this contrast gives token Fisher, so the equation measures probability-weighted spread in sensitivities.
-
Why the model’s probabilities matter: Think of the pairwise view as comparing two candidate tokens, with their probability product deciding how much their sensitivity gap counts. Likely pairs matter; a dramatic difference between two tokens the model almost never considers may barely register. A uniform-vocabulary comparison is like asking what the same sensitivity pattern would look like if every token got an equal chance. The analogy is useful for seeing which pairs count, but probability mass is not a causal explanation by itself. So does alignment mean every low-Fisher parameter is irrelevant? No: it can move likely logits together and still affect the distribution elsewhere, or at another prefix.
Read the deep dive
Why People Wanted It
On-policy training samples responses from the model itself. A parameter can change many logits and still barely change the probability of the response if it moves likely alternatives together. So the real question is not simply which parameters affect logits, but which parameters change the model’s relative preference among the tokens it is likely to choose.
The Core Move
Split sequence Fisher into token-level contributions, then express each contribution as probability-weighted differences between a parameter’s sensitivities for pairs of candidate-token logits.
For a response , its score for parameter is , where and is the prompt plus preceding generated tokens. The diagonal model Fisher is , with the expectation over prompts and on-policy responses.
Why Sequence Fisher Splits Across Tokens
Now the version for readers who want more of the machinery: the sequence-to-token identity depends on on-policy sampling, not merely on writing a sequence probability as a product.
At prefix , the next-token score has conditional mean zero: . For an earlier position , its score is already determined by the history available at . Conditioning on that history therefore makes the expected cross term vanish: . Expanding the squared sequence score leaves the sum of token score squares in expectation. The cancellation is in expectation, not for each individual response.
This gives , where . Positions after termination can be assigned zero score. Why should each token contribution be small? The answer is in the logits’ pairwise differences.
Why Token Fisher Measures Pairwise Sensitivity Differences
Here is the part that gets technical: differentiating log-softmax turns each token score into a contrast against the probability-weighted average sensitivity.
Write for the sensitivity of token ’s logit to parameter , and let . Then . In words, the parameter’s effect on a token’s log probability is its logit movement minus the average movement across the distribution.
Squaring and averaging over the sampled token gives . Equivalently, . The second form makes the constraint explicit: a uniform shift of all logits contributes nothing, and equal sensitivities among likely alternatives contribute little. This is variance under the model’s token probabilities, not a measure of the absolute size of logit changes. Which candidates matter most to that variance?
Why Probability Mass Must Align with Sensitivity
Now the deeper interpretation: the same sensitivity pattern can produce different Fisher depending on where the model places probability mass.
In the pairwise expression, each pair’s squared sensitivity gap is weighted by . Thus pairs of likely tokens dominate; a large difference involving only very unlikely tokens can contribute little. If high-probability candidates have similar sensitivities, token Fisher is small even when the parameter affects their logits substantially. A parameter that raises both “tea” and “coffee” similarly after “She drank a cup of” changes their shared plausibility, but does little to their relative preference.
A uniform-over-vocabulary reference keeps the prefix and sensitivities fixed while replacing the model probabilities with . Comparing the two pairwise quantities asks whether the model’s probability mass lands on more similarly affected tokens than a uniform draw would. It is a diagnostic for alignment, not a claim that every parameter or prefix must behave this way.
Minimal Causal Code
This loop computes one prefix’s token Fisher from logit sensitivities. It makes the probability-weighted centering visible; it is not an efficient way to obtain all parameter derivatives.
import torch
# logits: [vocabulary], sensitivities: [parameters, vocabulary]
probs = logits.softmax(dim=-1)
centered = sensitivities - (sensitivities * probs).sum(dim=-1, keepdim=True)
token_fisher = (probs * centered.square()).sum(dim=-1)
What You Gain, and What You Lose
You gain a local explanation for low on-policy Fisher: likely candidate tokens can share a parameter’s logit movement, leaving their relative probabilities almost unchanged. The decomposition also says exactly what is being measured—probability-weighted variation in logit sensitivity, accumulated along generated prefixes.
You do not get a guarantee that Fisher is small for every parameter, prompt, or training stage. The sequence decomposition relies on on-policy sampling and its conditional-mean cancellation; it does not transfer unchanged to arbitrary response distributions. Nor does low Fisher mean a parameter has no effect: a common shift across likely logits can be substantial while nearly invisible to the next-token distribution. For a separate question—using Fisher to locate likely update coordinates—see the module on Fisher bounds.
On-policy Fisher measures how differently a parameter moves likely token logits, not how much it moves them in common.