Research record

Does the Transition Create Features, or Select 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: What actually happens at the moment a model learns? – It builds machinery rather than selecting it, working through the task in a reproducible order and trying a simpler wrong rule on the way. The visible training curve cannot tell you which is happening.

In plain English

What we asked. When a model learns something suddenly, is it building new internal machinery, or just learning to read machinery that was already there by chance?

What we found. Building. We froze a model's internals at their random starting values and trained only the final readout. It never reached full accuracy at any size we tried, and given the same compute budget it improved almost 19 times more gradually. The sharp part of learning requires the internals to change.

Why it matters. This rules out a genuinely plausible alternative explanation, that the sudden jump is a readout catching up with a lucky random starting point. It is not. Something is being constructed.

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, 42 training runs, no GPU, no cost.

Program v2 tier 2, item F3. Decisive computation: analysis/echo_state.py. Output: analysis/echo_state.json. Reproduce with python analysis/echo_state.py in about twenty-five minutes on a throttled laptop CPU.

The question

Freeze the recurrent weights at initialisation and train only the embedding and the output head. That is reservoir computing: the recurrence becomes a fixed random dynamical system and learning happens only at the two ends.

A model that cannot rewire itself never gets there
A model that cannot rewire itself never gets there. Two ways of training the same model at five sizes. The upper line trains everything. The lower line leaves the model's memory fixed at the random values it started with and trains only the input and output layers, so the model can learn to read its memory but never to change it. Normal training has essentially solved the task by the third size. The frozen version never catches up, even at four times that size and four times the training. It is still learning something real, well above guessing, but it gets there gradually rather than suddenly: roughly nineteen times more slowly through the steepest part of its progress. Whatever makes learning abrupt here needs the model to be able to rewire its memory, not just reinterpret it.

If random recurrent dynamics already support the task, the transition is not about creating features. It is about learning to select and read features that were always present, and the width at which a frozen reservoir fails would measure the deficit training has to close.

F2 gave this a real prior. At step 1, before meaningful training, a linear probe on the hidden state read 0.1761 against the model's 0.0368, about 5.6x chance. Some of the answer is present in a near-untrained recurrent state.

The answer is that it is nowhere near enough.

Part A: the deficit never closes

Three seeds per cell, 900 steps, full training against frozen recurrence:

WidthFullFrozenGapTrainable share, frozen arm
160.67050.1832+0.487339%
320.95920.2698+0.689425%
480.99510.3057+0.689418%
960.99990.4516+0.548310%
1920.99970.5742+0.42555%

A fixed random recurrence never reaches full-model accuracy at any width tested. Full training is essentially solved from width 48; the reservoir at four times that width still sits at 0.574.

The reservoir is not useless, 0.574 against a chance floor of 0.0346 is real learning, and it improves steadily with width. It is just not the same thing.

Part B: and it does not transition

At width 48, five seeds, using the confirmation's own definitions:

ArmTransitionedTransition stepResidual-energy riseFinal accuracy
full5 / 589+0.2230 [+0.2048, +0.2412]0.9930
frozen0 / 5,,0.3015

No frozen run gained enough accuracy to have a transition to measure, and with no transition there is no expansion signature either.

Part C: the compute-matched arm, which is where the real answer is

Part B compares at equal step counts, and a frozen step is cheaper because it computes no gradient for the recurrent weights. This program's standing controls require compute-matched baselines, so Part C gives the frozen arm four times the step budget, a generous allowance in the reservoir's favour rather than a precise FLOP match, and measures not just where it lands but how sharply it gets there: the steps taken to cross from a quarter to three quarters of its own accuracy range.

WidthArmStepsFinal accuracyTransitioned25% → 75% took
48full9000.99513 / 363 steps
48frozen3,6000.47463 / 31,175 steps
192full9000.99973 / 342 steps
192frozen3,6000.75353 / 3775 steps

Given enough steps the reservoir does satisfy the eligibility rule, so "it cannot learn" would be the wrong claim. What it cannot do is learn abruptly. Its improvement is spread over 18.7x more steps at width 48 and 18.5x more at width 192, and it still lands far short.

The transition builds the mechanism, it does not merely select it. A fixed random recurrence supports slow, partial, gradual learning. The sharp transition requires a recurrence that is itself learning.

How this squares with F2

These two results look opposed and are not. F2 established that information about the answer is linearly present in the state earlier than the model can use it: including, weakly, at initialisation. F3 establishes that this early information is not sufficient: a system built entirely on it plateaus around 0.30 to 0.75 rather than 0.99, and gets there gradually.

Both are true. Random recurrent dynamics give a real head start, worth roughly 10x chance at width 48 with a trained readout. The transition is where the recurrence acquires the rest, and the rest is most of it.

What this changes for the program

  • The expansion is a recurrence phenomenon. It does not appear when the recurrence is frozen, which is consistent with it tracking the recurrence acquiring structure rather than the readout fitting. That is now evidence rather than assumption.
  • A2 stays undermined, and F3 explains why differently. D6 showed the post-peak fall is a measurement-frame effect. F3 adds that the thing being measured is a property of the learning recurrence, so any signal derived from it is unavailable in a frozen-feature regime.
  • Sharpness is now a measurable endpoint, not just a description. The 25%-to-75% crossing width separates two runs that reach the same accuracy by different routes, and it belongs in any future comparison that claims a transition.

Limits

  • One architecture (tiny-gru), one task, one optimizer (AdamW), one learning rate. The frozen arm was not separately tuned, and a reservoir may prefer a different learning rate for its readout; the deficit is large enough that tuning is unlikely to close it, but it was not tested.
  • Reservoir computing normally uses much wider reservoirs with tuned spectral radius. This tests a frozen GRU at its default initialisation, which is the honest comparison for "what did this model's recurrence have to learn", and not a fair test of reservoir computing as a method.
  • Part C's four-times budget is an allowance, not a measured FLOP match. It is generous in the reservoir's favour, so the conclusion is conservative in the direction that matters.

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.
AdamW
A widely used training algorithm that adapts how big a step it takes for each individual parameter. The default in most modern AI training.
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.
compute-matched
Comparing two methods by giving them the same amount of computing power rather than the same number of steps. A method that takes twice as long per step should not get twice the compute for free.
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.
hidden state
The model's working memory: the internal numbers it carries from one step of a sequence to the next.
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.
linear probe
A deliberately simple readout attached to a model's internals to test what information is present in them. Kept simple on purpose: if something complicated can extract the answer, the complicated thing may be doing the work itself.
optimizer
The algorithm that decides how to change the model given the gradient. AdamW and SGD are two common choices and they behave differently.
plateau
A stretch of training where the model is not visibly improving. Often, though not always, followed by a sudden jump.
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.
residual
How far the data sits from a proposed description of it, after the description has been fitted as well as it can be. A small residual means the description accounts for what was measured; a large one means something is missing.
residual energy
Our measure of how much of a model's internal activity is left over after accounting for its few strongest directions. High means the activity is spread out; low means it is concentrated.
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.
sharpness
How abrupt a model's improvement is. We measure the biggest change over any short stretch of training as a share of the run's total change, scaled so that a model improving at a perfectly steady rate would score 1. A score of 20 means the fastest stretch was twenty times steeper than a straight line.
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.