The Probe Does Not Cry Wolf
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.
A note on the language in these records. This is a working laboratory notebook for research into training AI models more cheaply and efficiently, so you will read that an approach did not work, that a result did not hold up, or that one method was worse than another. That is the research doing its job, not a verdict on the engineering we deliver to clients. Ruling an approach out is how the search narrows, and these are the pages that teach us the most: nearly every technique we now rely on came from understanding why something else fell short. Testing our own ideas at least as hard as anyone else's is the point of publishing them. More about this programme and why we run it.
Part of a bigger question: Can you tell in advance that a model is about to improve? – Yes, repeatedly and by several independent routes -- a probe on the hidden state, gradient statistics, held-out loss, and which earlier word the prediction leans on. The warnings are real; how far ahead they fire varies a great deal.
In plain English
What we asked. Our best early-warning tool reads a model's internal state and warns, a little ahead of time, that the model is about to learn its task. Every test of it so far used models that did learn. A warning that also goes off when nothing is coming is not much use, so we tried it on models that never learn at all.
What we found. On twenty such models, ten trained on pure noise and ten learning too slowly to finish, it never went off. But it came closer than you might expect: a model trained on noise still carries enough of what it has just seen to fool the tool if its alarm line were set a little lower.
Why it matters. So the tool is honest, and the reason is where its line is drawn. Anyone using it on a new kind of model should check that line against models that cannot learn first.
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. - Results that rule an idea out are kept. Roughly half of what is published here says an approach did not work, including plenty of our own. Those pages are the output, not a shortfall: knowing which direction is a dead end is what lets the next experiment go somewhere better, and most of what we now rely on came out of understanding why something else fell short. 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, 21 training runs of900steps with F2's probe fitted at every evaluation. The design and kill test were committed (32242ac) before any run.
Program v2 Bucket L, item L5. Decisive computation: . Output: analysis/probe_failure_population.py. Reproduce with analysis/probe_failure_population.jsonpython analysis/probe_failure_population.py (about three hours on a throttled laptop CPU); --reuse re-derives every endpoint from the saved curves, and was checked to print the identical summary.
The question
F2's decode probe -- a linear readout of the model's hidden state -- crosses 50% accuracy about 23.5 steps before the model does, and is the programme's most quoted instrument. Every figure for it is conditioned on the model learning. K6 checked the two cheap gradient alarms on runs that never transition and said explicitly that it did not cover the probe.
L5 runs F2's own run() on K6's two failure constructions, applied by a wrapper that leaves F2's loop untouched:
unlearnable-- training targets resampled as uniform noise every step (I6's and K6's construction). The probe is still asked to decode the true lagged token, as on a real run: if a model that never uses the answer carries it readably anyway, the probe fires falsely.too-slow-- K6's learning rate0.00012, so the model would learn eventually but not in900steps. An alarm here is early rather than wrong.
Kill test, fixed before execution: in both arms the probe's false-alarm rate (crossing 0.5 on a run whose model never reaches 0.5) is no higher than K6's surrogate rate, 0.20.
Anchor, in code: F2's seed 601, re-run unmodified, reproduces F2's committed curves exactly. It does.
Result: the kill test fires -- the probe is honest at its own level
| Arm | Runs that never learned | Probe crossed 0.5 | Mean probe maximum |
|---|---|---|---|
unlearnable | 10/10 | 0 | 0.290 |
too-slow | 10/10 | 0 | 0.419 |
On twenty runs where the model never learned, the probe never fired. F2's headline reliability is not an artefact of only looking at runs that learn.
The margin, and what it depends on
The probe is not silent on these runs; it is below the line. Chance is 0.031 and F2's shuffled-label control sits at 0.032, but a model trained on pure noise still carries the lagged token readably at 0.29: a recurrent state holds its recent inputs whatever it is trained on. How many of the ten runs in each arm would have fired at a lower crossing level:
| Level | 0.20 | 0.25 | 0.30 | 0.35 | 0.40 | 0.45 | 0.50 |
|---|---|---|---|---|---|---|---|
unlearnable | 10 | 10 | 2 | 0 | 0 | 0 | 0 |
too-slow | 10 | 10 | 10 | 10 | 9 | 1 | 0 |
F2's 0.5 sits about 0.2 above what a noise-trained model carries, and about 0.05 above what a slow learner reaches in 900 steps. Below 0.3 the probe would fire on every noise-trained run. N14 swept the crossing level from 0.2 to 0.9 when comparing instruments; any use of the probe at a level below about 0.35 would inherit false alarms that the published figures never saw. The too-slow arm is climbing (0.42 at step 900) and would presumably cross later -- early, as K6 put it, rather than wrong.
What stands
- Kill test fires. The probe crosses
0.5on0of20never-learning runs. - The level carries the honesty: a noise-trained model reads at
0.29, so levels at or below0.3false-alarm on most such runs. - Practical reading: the probe's false-alarm floor is set by how much of the input a recurrent state holds for free, and should be checked for any new architecture or task before a level is chosen.
Limits
- One task, one width, F2's seeds;
900steps, so thetoo-slowarm's eventual crossing is not seen. - The levels table is post hoc, computed from the saved curves; only the
0.5row was the test.
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.
- accuracy
- The fraction of answers a model gets right on questions it was not trained on.
- architecture
- The blueprint of a model: what components it has and how they connect. Two models can be the same size and completely different architectures.
- false-alarm rate
- How often a warning system goes off when nothing is actually happening. Any detector can be made to fire early by making it twitchier, so a lead time only means something alongside this number.
- 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.
- hidden state
- The model's working memory: the internal numbers it carries from one step of a sequence to the next.
- 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.
- post hoc
- Worked out after the fact, rather than decided in advance. We report such checks separately and never let them decide a result, because it is far too easy to find a pattern once you already know the answer.
- probe
- A small separate model trained to read information out of a bigger model's internals, used as a measuring instrument rather than as a product.
- 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.
- reliability
- How often something works on an individual case, as opposed to how well it does on average. The two can differ a lot, and only one of them tells you what to expect next time.
- 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.
- surrogate
- A fake version of real data, built to keep everything except the effect being tested. If a detector fires just as often on the surrogate, it is responding to something other than what it claims.
- width
- How many internal numbers a model uses at each layer. The usual way we vary model size in these experiments.
Get new results as we publish them
Roughly monthly, one finding per email, in plain English first. Including the approaches that turned out not to work, which are usually the useful ones. No sales email.
Double opt-in: we send a confirmation link and add nobody who does not click it. One-click unsubscribe on every email.