Research record

Four Of Them

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: How do we know our own results are real? – Repeatedly, the control rather than the measurement decided the result -- and several striking findings dissolved when the right comparison was finally run.

In plain English

What we asked. A result is only as good as the range of situations it has been shown in. We had two recent reminders of that: one of our findings vanished completely when we changed the kind of task, and a different one got stronger. So neither optimism nor pessimism was justified, and the only honest move was to count.

What we found. We counted every result we have published, sorted by whether the idea held up and by how many kinds of task it was actually tested on. Of the forty-three findings that held up, nineteen were tested on one kind of task and four on more than one. Almost half of what we currently believe has only ever been checked in a single setting.

Why it matters. That does not make those nineteen wrong and we are not withdrawing anything. It means they are unchecked rather than confirmed, and there is a real difference. The useful output is the list itself, which names them, so anyone relying on one of our results can see immediately whether it has been tested beyond the setting it came from. We also publish two things that make the count look worse rather than better: two of the nineteen have already been revised by later work of ours, and the first version of this audit found zero results and reported a clean bill of health, because it was reading the wrong field and counting nothing at all.

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. No training at all. Reads committed records, committed pilots and the published map. Runs in under a second.

Program v2 Bucket R, item R1. Decisive computation: analysis/task_generality_audit.py. Output: analysis/task_generality_audit.json. Reproduce with python analysis/task_generality_audit.py.

The question

L7 took D5's critical-period effect to dispatch-copy-8lag and found it absent: +0.27 [+0.20, +0.33] of the window on delayed-copy against +0.01 [-0.06, +0.08] on dispatch. Six records were scoped to one task in an afternoon. Q4 then took the transfer thread to the same task and it survived and grew.

Four of our findings that held up have been shown on more than one task
Four of our findings that held up have been shown on more than one task. Every result we have published, sorted two ways at once. Down the side: whether the idea held up, was ruled out, or the record does not say in so many words. Across the top: whether it was tested on one kind of task, more than one, or is a re-analysis of runs from earlier experiments. Each cell counts results. Look at the top row. Nineteen of our findings that held up were tested on a single kind of task and four on more than one. That does not make the nineteen wrong, and we have seen it go both ways: one of our results vanished when we changed the task and another got stronger. It does mean most of what we currently believe has been checked in one setting, which is worth knowing before relying on any of it, and is the reason we counted.

So a task change is not uniformly fatal, and that is exactly why the exposure is worth mapping rather than assumed. A count that fell out of L6 is what made it urgent: 9 of 119 committed pilots have ever run on more than one task.

Kill test, fixed before execution: fewer than 20% of the published claims that survived their own kill test rest on a single task. Then the exposure is not systematic, this is a footnote, and R2 to R4 should be reordered above it.

Prior recorded in advance: far above 20%.

Result: 44.2%, and the kill test does not fire

This audit is live and its denominator grows. The figures below are as it ran on 2026-09-04 against 103 published records. Four more were published the same evening, including this one, and re-running it now gives 45 survivors rather than 43, so the share reads 42.2%. The two numbers the record turns on do not move: 19 surviving claims rest on a single task and 4 have left one. The committed JSON is the current run, not the snapshot, because a stale output file would be worse than a moving one.

Of 103 published records with a record file:

Task coverage, from each record's own decisive pilotRecords
single task55
analysis of existing runs, so it inherits the archive's mix38
more than one task9
no committed pilot1

Crossed against each record's own stated outcome:

single taskmore than oneanalysis of runsno pilot
survived its kill test194200
killed by its kill test242150
outcome unstated12331

19 of the 43 surviving claims rest on a single task: 44.2%, against a threshold of 20%. The kill test does not fire and the exposure is systematic.

Four. That is how many of this programme's surviving claims have been demonstrated on more than one task family.

The wider reading, and why the conservative one is quoted

The 20 surviving claims that come from archive-analysis pilots inherit whatever the archive covers, and the archive is overwhelmingly delayed-copy: of the 64 records whose pilot names a task at all, 55 name exactly one. Counting those as inheriting rather than as unknown gives 39 of 43, or 90.7%.

The conservative figure is the one quoted, because the script cannot see which runs an archive-analysis pilot actually read. It fails the kill test by more than double either way, so nothing turns on the choice, and both are in the output so the range is visible rather than implied.

The actionable list

These 19 records state that their claim survived, and rest on one task family:

audit-followup · compression-view · cost-and-acquisition-order · cost-classes-move · critical-period-architecture · critical-slowing · depth-critical-period · donor-economics · effective-context · failure-population · freeze-after-transition · freeze-window · gradient-surgery · noise-driven · optimizer-transition · unlearnable-control · update-cancellation · warm-start · width-floor

They are uncertain rather than wrong, which is the same distinction P12 drew about the width confound. Sharing a substrate is not being explained by one. But several are load-bearing: donor-economics is P8, which prices the transfer thread; freeze-after-transition is K2, the only positive efficiency result the programme ever had; critical-period-architecture is K5, which L6 just built on.

And a record's own verdict is not the last word on it. 2 of the 19 already carry a later correction banner: critical-slowing and donor-economics. The audit reads what each record says about itself, so a record that concluded "the kill test does not fire" and was later qualified by another still counts as survived here. That is a real hole in the method and it is measured rather than hoped about: it applies to 10.5% of the flagged list.

And the 9 that have left one task: acquisition-microscope, algorithm-agreement, classical-baselines, critical-period-task, dispatch-dependence, headroom-battery, phenomenon-map, relatedness-predicts-transfer, transfer-across-tasks.

What this is measuring, exactly

Everything is mechanical, and where it cannot be it says so.

  • Task coverage comes from the datasets a record's own decisive pilot names in its source, not from the record's prose. A record cannot claim generality it did not run.
  • Outcome comes from the programme's fixed vocabulary, "the kill test does not fire" or "the kill test fires". 19 records use neither phrase and are reported as unstated rather than guessed at. That is itself a finding: the archive is 82% machine-readable on its own headline verdict and the remaining 18% is invisible to any automated review, including the loop's.

The bug worth recording

The first execution returned 0 published records and printed kill test FIRES, which is the opposite of the true answer, stated confidently.

The map's key is records, not slugs, and the script read the wrong one. Every count was over an empty set: 0 of 0 is 0.0%, which is below any threshold, so the audit "passed" by having nothing to audit.

That is the failure mode this programme has written three separate rules about and it arrived anyway, in the one pilot whose entire job is checking the archive. The script now exits rather than auditing an empty set. A summary over nothing does not return a null, it returns whichever answer the comparison operator gives to zero.

What stands

  • 44.2% of surviving claims rest on one task, more than double the threshold set in advance. On the wider reading, 90.7%.
  • Four surviving claims have been demonstrated on more than one task family.
  • The exposure is real and uneven. L7 killed one thread on a task change and Q4 grew another, so this is not a prediction that everything falls. It is a map of what has not been checked.
  • 18% of the archive does not state its own verdict in the programme's vocabulary, and is therefore invisible to automated review.

Limits

  • **This measures what a pilot names, not what it establishes.** A pilot that mentions a second dataset in a comment would count as multi-task. Spot-checking the nine says none does, but the method has that hole.
  • "Survived" is a record's own word for itself. The audit does not re-derive any result; it reads a claim and a coverage and crosses them, and it does not know that a later record overturned an earlier one. 2 of the 19 carry a correction banner, which is the size of that hole rather than a reassurance about it.
  • An archive-analysis pilot's true coverage is unknown to this script, which is why it is a separate column rather than folded into either answer.
  • This ranks nothing. It says which claims are unchecked, not which are most likely to fail. That would need L7's kind of work, one record at a time, and the ordering should probably follow what other results depend on rather than what is cheapest.

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.

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.
baseline
The thing you compare against. A result without one is not a result.
confound
A second explanation you did not control for. If bigger models both learn faster and score higher, then 'fast learners score higher' may be entirely about size and not about speed.
critical period
A stretch of time during which something has to happen for development to proceed normally. Borrowed from biology, where it describes windows in which a young brain must receive certain input.
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.
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.
optimizer
The algorithm that decides how to change the model given the gradient. AdamW and SGD are two common choices and they behave differently.
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.
vocabulary
The set of distinct symbols a model can read and produce.
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.