Research record

The Phenomenon Map: Which Architectures Show It

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 much model does a task need, and what changes when it has more? – The abrupt jump is what spare capacity buys -- it fades smoothly as the model shrinks, long before the model stops working. Capacity and task difficulty act separately, not as a ratio.

In plain English

What we asked. We had found an effect in one kind of model on one kind of problem. Before explaining it, we asked where it exists at all.

What we found. It belongs to one family of designs. Nine of nine models with a gated memory show it; zero of three other designs do. The decisive case is a model of a different design that does learn the task, takes longer over it than anything else we tested, and still barely shows the effect. So this is not about difficulty or duration. It is about how the model is built.

Why it matters. Mapping where a phenomenon lives before theorising about why is unglamorous and it is the step that keeps you from explaining something that is not general. Our effect is real and it is narrow, and now we know which.

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

Program v2 tier 3, item E3, which subsumes A1. Decisive computation: analysis/phenomenon_map.py. Output: analysis/phenomenon_map.json. Reproduce with python analysis/phenomenon_map.py in about forty minutes on a throttled laptop CPU.

The question

Every positive result in this project is a GRU result on one task. The confirmed expansion, D6's measurement-frame finding, D8's optimizer scoping, F2's leading indicator and F3's feature-creation result all sit in that single cell. E3 asks whether any of it is a fact about recurrence or a fact about the GRU.

The effect belongs to one family of designs
The effect belongs to one family of designs. Each cell is how much a model's internal state reorganises at the moment it learns a task. Darker is more. Blank cells are combinations where the model never learned the task at all, so there was nothing to measure. The first three rows are variations on one design idea, gated memory; the last two are different ideas. The effect is not a general fact about learning. It shows up strongly in every model with gated memory, on every task those models can learn, and is essentially absent in the other two designs. The most informative blank-adjacent cell is the bottom right: there the attention model does learn the task, and takes longer over it than anything else in the grid, and still shows almost none of the effect. So this is not about how hard or slow the learning is. It is about how the model is built.

A1's design requirement is the crux. The transformer's weak expansion in the original confirmation was confounded: copying a token from lag positions back is attention's native operation, so a transformer never has to build a mechanism for delayed-copy, and an absent signal proves nothing. A fair test needs a task attention cannot solve with one lookup. The E1-accepted dispatch-copy tasks supply it.

Learning rates are screened per cell on seed 997, excluded from the four measurement seeds, because comparing architectures at a shared rate confounds "lacks the phenomenon" with "was mistuned".

The grid

Width 48, 900 steps, four seeds. sharp is F3's sharpness endpoint: steps to cross from a quarter to three quarters of the run's own accuracy range. rise is rank-8 residual energy above baseline, against the preregistered 0.05 materiality floor.

ArchitectureTasklrLearnedFinalSharpRiseClears floor
grudelayed-copy0.0124/40.980982+0.2184yes
lstmdelayed-copy0.0124/40.998072+0.2279yes
rnndelayed-copy0.0124/41.000028+0.0498no
gru-2layerdelayed-copy0.0124/40.994050+0.2659yes
transformerdelayed-copy0.0124/41.00005+0.0383no
grudispatch-copy-8lag0.0054/40.5590299+0.2351yes
lstmdispatch-copy-8lag0.0024/40.4977371+0.2571yes
rnndispatch-copy-8lag0.0020/40.2253,,,
gru-2layerdispatch-copy-8lag0.0054/40.7100282+0.3638yes
transformerdispatch-copy-8lag0.0020/40.2503,,,
grudispatch-copy-wide-vocab0.0124/40.6240285+0.1747yes
lstmdispatch-copy-wide-vocab0.0054/40.7063366+0.2053yes
rnndispatch-copy-wide-vocab0.0050/40.2637,,,
gru-2layerdispatch-copy-wide-vocab0.0124/40.7558258+0.3286yes
transformerdispatch-copy-wide-vocab0.0054/40.6025531+0.0313no

Result 1: the phenomenon is not GRU-specific

The LSTM shows it at full magnitude on every task it learns: +0.2279, +0.2571, +0.2053, against the GRU reference of +0.2184. The two-layer GRU shows it more strongly still (+0.2659, +0.3638, +0.3286).

A1 is answered. Nine of nine gated-recurrent cells clear the materiality floor, on all three tasks. Everything built on the expansion is no longer scoped to one architecture.

Result 2: it is a gated recurrence phenomenon, and the transformer cell proves it

Zero of three measured non-gated cells clear the floor. That includes the case A1 was designed around, and it is the most important row in the table.

On dispatch-copy-wide-vocab, the transformer:

  • does learn the task (0.6025, comparable to the GRU's 0.6240);
  • has the slowest transition in the entire grid (531 steps, against the GRU's 285);
  • and still shows no expansion (+0.0313, below the floor).

That closes the confound. The transformer's absent signal on delayed-copy could be dismissed as "the task was free for attention", sharpness 5 says it solved the task almost instantly. On wide-vocab there is no such excuse: attention has to work for hundreds of steps and produces no expansion while doing it.

And it is not about how slow the transition is

The obvious alternative explanation is that the expansion tracks transition duration: more representational work, more reorganisation. The grid refuses it.

The transformer on dispatch-copy-wide-vocab has the longest transition measured (531 steps) and the smallest rise (+0.0313). The two-layer GRU on the same task transitions in half the time (258) with ten times the rise (+0.3286).

Duration does not predict the expansion. Architecture does.

Result 3: the vanilla RNN is not a clean test either way

The ungated cell fails to learn both dispatch tasks (0 of 4 in each), and on delayed-copy it solves the task almost immediately (final 1.0000, sharpness 28) with a rise below the floor. So its non-clearing is confounded in the same way the transformer's originally was.

Recorded as untested rather than negative. An ungated recurrent cell either finds the task trivial or cannot do it at all at this scale, and neither case measures what E3 is asking.

The map

FamilyExpansionEvidence
Gated recurrence (GRU, LSTM, 2-layer GRU)present, at full magnitude9 of 9 measured cells clear the floor, across three tasks
Attention (transformer)absent0 of 2 measured cells, including one with the grid's slowest transition
Ungated recurrence (vanilla RNN)untestedSolves the easy task instantly, cannot learn the hard ones

What this changes for the program

  • Every downstream result gains scope. D6, D8, F2 and F3 were GRU-only findings. They are now findings about gated recurrence, pending direct replication of each in an LSTM, which is now cheap and should be the next thing run.
  • F2's leading indicator is worth re-testing in the LSTM. It is the one result with practical use, and it now has a second architecture to be checked in.
  • The gating mechanism becomes the object of study. The dividing line in this grid is not depth, not recurrence, and not transition duration: it is whether the cell has multiplicative gates. Why a gate produces a representational expansion at the moment of learning is a question this project has not asked and can now afford to.

Limits

  • One width (48), one step budget (900), one optimizer (AdamW), four seeds per cell.
  • Learning rates screened over three values. A cell that failed to learn might succeed at a rate outside that range; the two 0-of-4 rows should be read as "did not learn here".
  • The transformer is one configuration (1 layer, 4 heads, feedforward 96). Depth and head count are not varied, and a deeper transformer is a different object.
  • dispatch-copy is one task family in two configurations. The grid has three tasks but two generators, so "across tasks" is weaker than it looks.

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.
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.
gated
A design where the model has explicit internal switches deciding what to remember and what to discard at each step. GRUs and LSTMs are gated; plain recurrent networks are not.
GRU
Gated Recurrent Unit. A compact design for processing sequences one item at a time, with internal switches controlling what it keeps in memory.
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.
LSTM
Long Short-Term Memory. An older and larger relative of the GRU, also gated, also for sequences.
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.
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.
transformer
The architecture behind most modern large language models. It uses attention to look at every part of the input at once, rather than reading in order.
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.