2026-08-16
Part 1 found no grokking at weight decay 1.0, and the seed replication confirmed it. So I did the obvious thing: swept the weight decay across five orders of magnitude and watched. Still no grokking. The way it fails is the result.
The short version. The grokking recipe says: if memorization wins, turn the regularization up until the cheap algorithmic solution outcompetes the lookup table. I re-ran both models across weight decay {0.01, 0.1, 0.3, 1.0, 3.0} — a 50× range around the original 1.0 — with everything else locked. No grokking at any setting. Validation accuracy does not rise with weight decay; it’s flat (transformer) to declining (RNN). The weight-tied RNN never beats the transformer at any setting — tying it only once at the lowest decay on the unselected checkpoint. And the tied RNN, the architecture built to want the algorithmic solution, gets worse the heavier the regularization gets. The opposite of the grokking story.
In part 1 I trained two toy models on the next-prime function: a plain transformer (407,947 params) and a weight-tied recurrent cell with adaptive computation time (36,620 params) — the “for-loop model” that could in principle represent trial division cheaply. Both trained on 69 examples (n ∈ [2, 100]) with heavy weight decay (1.0), the strong-regularization regime where grokking lives.
Result: no grokking. The transformer memorized and partially generalized (peaked at 86.7% validation, decayed to 70%); the tied RNN couldn’t even hold a memorized solution (16.7% at the end). Out-of-range transfer was zero. Then the seed replication (three seeds, identical everything else) confirmed all of it: same locked codes in every seed.
That leaves the obvious knob unturned. The whole theory of why grokking happens is that weight decay makes the algorithmic solution cheaper than the memorized one. Weight decay 1.0 was one point on that axis. What if the basin lives at 0.01? Or 3.0?
Five weight-decay values — {0.01, 0.1, 0.3, 1.0, 3.0} — × both models, seed 0, everything else identical to part 1 (AdamW, lr 1e-3, 200k steps). The 1.0 cells are the existing seed-0 runs, reused as control. The interpretation was locked in the pre-registration before any of it ran: if any setting produced the O1 signature (validation jumping 0.2 → 0.9 within a few evals), that’s grokking. If validation stayed flat or fell as decay increased, that’s the “memorization strongly dominant” clause.
wd model O H P val best val last probe halt mean
0.01 RNN O-PARTIAL H1 P4 73.3% 56.7% 1/100 2.00
0.01 transformer O-PARTIAL — P4 80.0% 56.7% 0/100 —
0.1 RNN O-PARTIAL H1 P4 70.0% 56.7% 0/100 2.04
0.1 transformer O-PARTIAL — P4 86.7% 70.0% 0/100 —
0.3 RNN O-PARTIAL H1 P4 56.7% 33.3% 0/100 2.48
0.3 transformer O-PARTIAL — P4 86.7% 73.3% 0/100 —
1.0 RNN O4 H4 P4 36.7% 16.7% 1/100 3.12
1.0 transformer O-PARTIAL — P4 86.7% 70.0% 0/100 —
3.0 RNN O4 H4 P4 20.0% 10.0% 0/100 3.00
3.0 transformer O-PARTIAL — P4 86.7% 70.0% 0/100 —
Reading strictly against the pre-registered E2 matrix:
The locked reading is the clean null. But there’s a post-hoc observation worth separating out, because it’s the opposite of what the grokking theory would predict:
Weight decay barely touches the transformer and progressively destabilizes the tied cell — two different models, two different responses to the same knob. The transformer sits at 86.7% best from wd 0.1 all the way to 3.0, like the regularization is a fly on its back. The RNN is best at the lowest decay (73.3% at 0.01) and collapses as decay rises — it flips from O-PARTIAL (can saturate train, partially generalize) at wd ≤ 0.3 to O4 (can’t even hold a memorized solution) at wd ≥ 1.0.
That’s the wrong direction for the theory. The whole bet was: heavy decay pushes toward the cheap algorithmic solution. Instead, heavy decay pushes the tied cell away from even the memorized solution, while the plain transformer is indifferent. The weight-tied architecture was supposed to be the one that benefits from regularization; it’s the one that’s most fragile to it.
And the halting numbers tell the same story in miniature: the gate moves from the floor (2.0 steps) at low wd to noisy (3.0–3.1) at high wd — the network uses slightly more computation when its weights are being squeezed, but it never uses it for anything structured.
The weight-decay axis is now mapped and it’s flat. That sharpens the remaining candidates:
Weight decay was the obvious knob. It’s now a documented dead end. Next: the range where memorization stops being an option.