It Already Knew The Order
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.
Part of a bigger question: What actually makes training cheaper? – One thing has worked: stopping part of the training early saved about 7% with no loss of quality. Everything else tested has been matched by a simpler or cheaper method -- and in two cases the clever method was only winning because it was quietly being given more.
In plain English
What we asked. Our previous result showed that three related skills are learned in a fixed order, because the third can only be done once the first two are working. That is the kind of finding that suggests an obvious improvement: if there is a right order, teach in that order and the model should get there sooner. This is the experiment that tried it.
What we found. It does not help. Teaching everything at once is the fastest route to a model that can do all three, and deliberately staging the lessons in the correct order is slightly slower. The reason is almost funny: left to itself, the model already learns the first two skills before the third. Staging the lessons only removes a choice it was making correctly anyway. Teaching in the wrong order, though, is genuinely damaging: models given the dependent skill first frequently never got there at all.
Why it matters. Two things are worth taking from this. The first is that a real structure and a useful technique are different things, and the gap between them is where most efficiency ideas die. The dependency order here is genuine, measurable, and causally important, and it is still not something worth acting on. We have now found that same shape several times. The second is about the comparison we nearly did not include. We tested a randomly chosen teaching order as a control, and its result ranged enormously from run to run, because some random orders happen to be the right one and others the wrong one. Reported as a single average it would have looked like a mildly worse schedule rather than a coin flip. The spread was the finding, not the average.
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, 4 arms x 6 seeds, no GPU, no cost.
Program v2 Bucket P, item P10, generated by P3. Decisive computation: . Output: analysis/graph_curriculum.py. Reproduce with analysis/graph_curriculum.jsonpython analysis/graph_curriculum.py; --reuse re-derives every endpoint.
The question
P3 found that acquisition follows a planted dependency graph rather than isolated difficulty, and, unplanned: that one skill is learned faster in company than alone. If learning has a dependency order and the skills help each other, the efficiency question is immediate: to get one model doing all three skills, is teaching them in dependency order cheaper than teaching everything at once?
Choosing prerequisite concepts is not what E6's data-selection negative was about, so this was genuinely open.
Kill test, fixed before execution: graph-order does not reach all-three-acquired sooner than joint, or does not separate from reverse-order and random-order.
Anchor enforced in code: the joint arm must reproduce P3's acquisition steps. It does, to the decimal: A at 390.0, B at 101.7, C at 575.0.
What we found
Steps until all three skills are acquired, so an arm cannot win by finishing two of them early. Compute is matched: every arm sees the same batch size and the same number of scored positions.
| Arm | Steps to all three |
|---|---|
joint, everything from step 0 | 575.0 [532.6, 617.4] |
graph-order: A,B first, then add C | 713.3 [542.4, 884.2] |
random-order, a random stage order per seed | 820.0 [306.6, 1333.4] |
reverse-order: C first, then A,B | never, in at least half the seeds |
The kill test fires. Teaching in dependency order is not faster than teaching everything at once. Its interval overlaps joint's, so it is not reliably worse either: it simply buys nothing, at a point estimate 138 steps behind.
The dependency structure is real; it is just not a curriculum
reverse-order, teaching the composite skill first, frequently never gets there at all. That is P3's finding showing up causally: C genuinely cannot be done before A and B work, so spending the early budget on it is not merely inefficient but sometimes fatal within the run length tested.
So the graph is doing real work. What it does not do is give you a better teaching order than "everything at once". Joint training already respects the dependency, because the model learns A and B first by itself, P3 measured exactly that. Staging the curriculum only removes the model's freedom to choose, and the model was already choosing correctly.
That is the whole result in one line: the model does not need to be taught the order it was going to discover anyway.
The random arm's interval is the other warning
random-order spans [306.6, 1333.4]. Some random orders happen to be the graph order and do fine; others are the reverse and nearly fail. **A staging strategy's variance is a cost too**, and an average would have hidden it: reported as a mean alone, 820.0 looks like a mildly worse schedule rather than a coin flip.
What this closes
The curriculum branch of this bucket. O6's follow-on asked whether curriculum ordering on a recovered graph reduces compute; on this task, it does not. Combined with P3, the honest summary is that the dependency structure is measurable and real, and is not an efficiency lever, which is the same shape as this programme's other efficiency findings, where the phenomenon is genuine and the ordinary alternative is already as good.
Limits
- One task, three skills, one graph. A deeper or wider dependency structure, where the model's own discovered order is not the graph order: might behave differently, and that is the version worth running before treating this as general.
- The stage-advance rule is "when every skill in the stage is acquired", which is an oracle: it reads the acquisition criterion the endpoint is defined by. A practical curriculum could not do this, so the staged arms are being helped here and still do not win.
reverse-orderis scored as "never" within1400steps. It may finish later; the run length is the limit, not a proof of impossibility.- Per the standing rule this result is not width-swept, so it holds at width 64 and is not claimed beyond it. Given P9, that caveat is load-bearing rather than routine.
- The transition criterion is halfway from chance to perfect, read every 10 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.
- batch size
- How many examples the model looks at before updating itself once. Bigger batches give a steadier but more expensive update.
- 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.
- 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.
- variance
- How spread out a set of numbers is. Rising variance in a signal means it is becoming more erratic.
- 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 experiments that went against us, 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.