The Boost Does Not Travel
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: 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. Last time we found a free speed-up: raising a small model's learning rate by half for a short stretch early in training made it learn sooner with no loss of accuracy. That was on one setup, and our own rules say a trick found on one setup has to be tried on others.
What we found. We repeated the whole recipe from scratch on two new setups: a different task, and a wider model on a harder version of the first. On the new task the boost did nothing. On the wider model it did nothing for speed and made the final answers slightly worse.
Why it matters. So the free speed-up was a fact about one setup, not a general trick. Along the way we also found that on the new task our usual learning rate was well below the best one, which means some of our older results on that task need checking, and we are doing that next.
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, six seeds, 72 training runs on two substrates. The design, every tuning and placement rule, and the kill test were committed (242dd80) before any run, with one amendment made before execution and recorded in the pilot.
Program v2 Bucket O, item O19. Decisive computation: . Output: analysis/boost_transfer.py. Reproduce with analysis/boost_transfer.jsonpython analysis/boost_transfer.py (about forty-five minutes on a throttled laptop CPU); --reuse re-derives every endpoint from the saved runs, and was checked to print the identical summary.
The question
O18 found that on J8's substrate (width-48 GRU, delayed copy, lag 4) a 1.5x learning-rate boost for forty early steps at the tuned rate reached the transition as soon as the next rate up while keeping the tuned rate's accuracy. The standing rules say an efficiency manoeuvre can reverse at another width (Q1) and that one task is not enough (R1). O19 re-derives the whole recipe from scratch on two new substrates:
dispatch--dispatch-copy-8lagat width48,600steps, P1's ownrun()with Q4's task, timed by L7's task criterion as Q4 was;matched-w96-- delayed copy at width96, lag8,900steps: P11's matched ladder at its largest rung, P11's ownrun()and transition definition.
On each: sweep whole-run rates 0.003-0.014; the tuned rate is the fastest whose runs all reach the transition with mean final accuracy within 0.01 of the lowest rate's (O16's rule); the boost is 1.5x the tuned rate for forty steps opening at the tuned controls' mean transition minus forty (O16's placement).
Amended before execution (recorded in the pilot): the programme entry named width 192; the matched ladder's committed runs stop at 96, so 96 was used to keep an exact anchor.
Kill test, fixed before execution: on either substrate the boosted run is not both sooner than the tuned rate and no less accurate (accuracy interval wholly below -0.005).
Anchors, in code: at 0.005, every dispatch control's final accuracy equals Q4's committed value and every matched-w96 control transition equals P11's. All do.
Result: the kill test fires, on both substrates
The sweeps:
| Rate | dispatch: transition | final accuracy | matched-w96: transition | final accuracy |
|---|---|---|---|---|
0.003 | 218.3 | 0.4756 | 127.5 | 0.8902 |
0.005 | 169.2 | 0.5079 | 119.2 (tuned) | 0.8892 |
0.007 | 145.8 | 0.5231 | 120.0 | 0.8511 |
0.010 | 134.2 (tuned) | 0.5279 | 108.3 | 0.8014 |
0.014 | 136.7 | 0.5353 | 92.5 | 0.7027 |
The boost, paired against the tuned rate:
| Substrate | Tuned rate | Boost window | Change in transition | Change in final accuracy |
|---|---|---|---|---|
dispatch | 0.010 | steps 94-133 | +0.00 [-5.75, +5.75] | +0.0011 [-0.0052, +0.0074] |
matched-w96 | 0.005 | steps 79-118 | +0.83 [-3.12, +4.78] | -0.0112 [-0.0172, -0.0051] |
On neither substrate does the boost bring the transition sooner. On dispatch it does nothing at all; on matched-w96 it does nothing for speed and costs final accuracy. O18's result is a property of one substrate.
Why, as far as the sweeps show
The boost helped on J8's substrate because there, a higher whole-run rate reached the transition sooner and cost accuracy -- a frontier with room to borrow speed from. Neither new substrate offers that trade at its tuned rate:
dispatch: speed stops improving above0.010(134.2against136.7at0.014), so there is no speed left to borrow, and the boost borrows none.matched-w96: the frontier is steep and unhelpful --0.007is no faster than0.005and already0.038less accurate. A boost borrows only the accuracy cost.
This is description after the fact; it fits the three substrates and was not predicted.
A consequence for the archive
R18 left the dispatch-copy claims UNTESTED. This sweep tests the substrate: the house rate 0.005 is 35.0 steps of time to the transition slower than dispatch's tuned 0.010 (169.2 against 134.2), four times its headroom on delayed copy. Q4's same-task donor head start there is -90.0 steps by the same criterion -- about two and a half times the rate's headroom -- so it is exposed but not explained; R12's donor-length optimum is measured on the same substrate and rate.
What stands
- Kill test fires. The early boost brings the transition no sooner on dispatch copy (
+0.00) or at width96(+0.83), and costs accuracy at width96(-0.0112). - O18's boost is a single-substrate result and carries a banner saying so.
- On dispatch copy the house rate is
35steps slow; on the width-96matched rung it is the tuned rate.
Limits
- Two substrates, six seeds each, one boost size and one window rule.
- The tuning rule's reference is the lowest swept rate, which on dispatch copy is also the least accurate; every rate passed, so the rule picked the fastest.
- Width
96, not192, by the amendment recorded above.
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.
- 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.
- 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.
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.