Research record 44 of 54

The Number That Did Not Survive Its Check

Ongoing research. This is an experimental result from active work, not a settled conclusion. The numbers are what we measured and the method is described so you can judge it, but the programme is still running and later experiments may revise what it means. More about this programme.

In plain English

What we asked. These models have three internal components that do different jobs. An earlier experiment of ours found that the part of the training update which actually matters is not spread evenly through them, so we went looking for where it sits. The answer was emphatic: about 96% of it sat in a single component, in every one of twelve runs, where an even spread would have put a third in each. That is the kind of result you remember, and it points somewhere specific enough to act on.

What we found. Then we ran the same measurement on a deliberately unimportant piece of the update, built to resemble the real one in every respect except mattering. It put 94% in the same component, in the same twelve runs out of twelve. So the striking number was not telling us where the important work happens. It was telling us how these models are wired, which is true of every part of the update including the parts that do nothing.

Why it matters. We are publishing this because of how close it came to being a finding. The comparison was already there; our first version of the analysis simply printed the impressive number on its own and did not put the two side by side. Nothing about the number itself would have warned anybody: it was large, it was consistent across every run, and it pointed at a specific part of the model. That combination is usually what a real result looks like. The general lesson is worth more than the experiment, and it is one we now apply routinely: if a measurement is worth a comparison, every number you report from it needs that comparison, not just the headline one.

The rest of this page is the technical record: the design, every number, and the limits. It is written for a reviewer, and you do not need it to have understood the result above.

New here? How to read a research record
  • Start at the verdict. Every record states, before the experiment was run, what result would have made us abandon the idea. That is the "kill test". Then it says whether the test fired. Nothing gets reinterpreted after the fact.
  • Numbers in square brackets are uncertainty. 23.4 [18.1, 28.7] means our best estimate is 23.4 and the true value is probably somewhere in that range. If a range includes zero, we cannot claim an effect.
  • Negative results are kept. Roughly half of what is published here says an idea did not work, including several of our own. Those pages are not failures, they are the output. Work that only publishes what worked is not measuring anything.
  • Read the Limits section. Every record ends with what it does not show. It is the most honest part of any experiment and usually the shortest.
  • Pro tip: the figures near the top are designed to carry the result on their own. If you read nothing else, read the caption under each one, which says what it shows and what to take from it.
EXPLORATORY. Not a preregistered study. Local CPU, 12 training runs, no GPU, no cost.

Program v2 Bucket K, item K8, and the last of the bucket. Decisive computation: analysis/off_diagonal_anatomy.py. Output: analysis/off_diagonal_anatomy.json. Reproduce with python analysis/off_diagonal_anatomy.py, or re-derive with --reuse.

The question

J3 found the leading gradient direction's causal power is 6.5x off-diagonal, and nothing had asked what that component is. Three shapes were possible, each with a different consequence: low rank, concentrated on a gate, or concentrated on particular connections.

A striking number, and the comparison that dissolves it
A striking number, and the comparison that dissolves it. These models have three internal components that do different jobs. We wanted to know whether the part of the training update that actually matters is concentrated in one of them. It is: about 96% of it sits in a single component, where an even spread would be 33%. The grey bars are the check. They show the same measurement made on a deliberately unimportant piece of the update, built to look like the real one in every respect except mattering. The grey bars are the same height. The unimportant piece sits in the same component, to within a percentage point, so the 96% is telling us how these models are built rather than anything about which part does the work. Without that comparison this would have been a confident and memorable claim, and wrong. Our first version of this analysis printed the blue bar alone.

Kill test, fixed in advance: the off-diagonal component's mass is uniform across gates and unit pairs, with no structure beyond a span-random direction's.

Result: one modest separation, one marginal, one that dissolved

Twelve seeds, every statistic computed identically on F4's span-random control from the same gradient buffer, with only the paired difference reported.

StatisticLeadingSpan-randomPaired
top-rank share0.4642 [0.2828, 0.6456]0.2782 [0.2139, 0.3425]+0.1860 [+0.0023, +0.3697]
gate concentration0.9556 [0.9397, 0.9714]0.9435 [0.9392, 0.9478]+0.0120 [-0.0036, +0.0277]
top-1% of entries0.2957 [0.2665, 0.3249]0.2413 [0.2210, 0.2616]+0.0544 [+0.0232, +0.0856]

One solid result. The leading direction's off-diagonal component concentrates slightly more on its largest connections than a gradient-like control does, 29.6% of its energy in the top 1% of entries against the control's 24.1%.

One marginal. The top-rank share clears zero by 0.0023 on an interval 0.37 wide, a margin of 1.01 half-widths. J1's whole finding was that this programme decides things on margins more seeds would erase, so it is reported as marginal rather than as a finding.

The gate result is the useful one, and it is a negative

The leading direction puts 95.6% of its off-diagonal energy on the candidate gate, in 12/12 seeds. Against a uniform third that looks emphatic, and it is the kind of number that would have been the headline.

The span-random control puts 94.4% on the same gate, in the same 12/12 seeds.

So this is how a GRU's recurrent gradients are shaped, not anything about the leading direction. The paired difference is +0.0120 [-0.0036, +0.0277], which does not clear zero. Reporting the first number without the second would have produced a confident, memorable and wrong claim: that the transition lives in the candidate gate, and nothing in the raw statistic would have hinted at the problem.

The first version of this pilot printed exactly that. Its output read "largest gate: candidate in 12/12 seeds (100%, chance is 33%)", with no control beside it. The control was computed and the comparison was simply not made.

Verdict

  • The kill test fails, narrowly. The off-diagonal component has some structure a gradient-like control does not: modestly more concentrated on its largest entries.
  • It is not a gate story. The most striking raw number in the experiment survives no comparison at all.
  • It is not clearly low-rank either. That separation is one seed from reversing.
  • J3's finding keeps its anatomy but a thin one. Nothing here gives an intervention a small, well-defined target, which is what would have made this item valuable.
  • The cheapest item in the bucket paid off in its control rather than its endpoint, which is what the backlog predicted for it, though not the mechanism it predicted.

Limits

  • Twelve seeds, one task, one width, one learning rate, one rank. The direction is taken at the transition, where F4 showed it to be load-bearing; a direction taken elsewhere is a different object.
  • "Top 1% of entries" is one concentration measure among many. A different threshold, or an entropy-based measure, might separate differently, and the threshold was not swept.
  • The diagonal is zeroed rather than dropped, so the reported shares are over the full 3x48x48 block with 144 entries set to zero per gate. This matches the component J3 removed.
  • This is anatomy, not causation. Nothing here removes the concentrated entries and measures the cost, which is what would connect the shape to J3's +34.5 steps.

Terms on this page

Every piece of vocabulary this record uses, in plain language. Generated from the text above, so it cannot drift out of step with it.

gradient
The direction and amount by which each of a model's internal numbers should change to do slightly better. Training is repeatedly following it.
GRU
Gated Recurrent Unit. A compact design for processing sequences one item at a time, with internal switches controlling what it keeps in memory.
kill test
A condition written down before running the experiment that says what result would make us abandon the idea. Fixing it in advance is what stops a disappointing result being reinterpreted as an encouraging one.
learning rate
How big a step training takes each time it updates the model. Too small and nothing happens; too big and it never settles.
rank
How many independent directions a set of numbers really uses. A low-rank structure is one that looks high-dimensional but is actually simple underneath.
recurrent
A design that reads a sequence one item at a time, carrying memory forward. The main alternative is attention, which looks at everything at once.
seed
The number that fixes all the randomness in a training run. Same seed, same run. Running several seeds is how you tell a real effect from a lucky one.
width
How many internal numbers a model uses at each layer. The usual way we vary model size in these experiments.

Want this measured on your data?

We build private models our clients own and run on their own infrastructure, and every engagement proves measured lift on the client's own tasks before we call it done. Start free with a readiness scorecard that tells you whether your data can support it, or book a short call.