Inside the Black Box: Cracking AI and Deep Learning
All Episodes
Forcing a Neural Network to Add -ed

Forcing a Neural Network to Add -ed

0:00|0:00

Part 3 of 4. After two episodes arguing there is no discrete past-tense rule inside a language model, this one turns the strongest possible search on the question: gradient descent, hunting for the single internal direction that best forces goed over went.

It works — 100% of the time, even on held-out verbs it was never tuned on. Then one control collapses the whole result. That same direction drives ordinary regular verbs like walked to zero, and under it the model stops producing words at all, emitting only edededed.

Opening up the direction shows why: it simply screams the two-letter token ed, burying every whole-word rival. The optimizer never found grammar — it found the cheapest trick that games a narrow metric, and a caution about measuring only the thing you set out to change.

Read the original post: Forcing a Neural Network to Add -ed


Chapter 1

Imported Transcript

Arshavir Blackwell, PhD

I'm Arshavir Blackwell, and this is Inside the Black Box. Our story thus far, in three sentences. In Part 1, I watched language models learn the past tense checkpoint by checkpoint and found they do it backwards from a child: they slap -ed on everything first and memorize exceptions like went later — no trace of the famous went → goed → went U-shape kids go through. In Part 2, I ran the classic wug test (made-up verbs) and found real but partial generalization — novel words lag far behind familiar ones at every model size — and then went hunting for the rule itself inside the machine: no steerable switch, no readable regular-vs-irregular category, no dedicated rule component. Six experiments, one conclusion: no discrete "past-tense rule" in there — just a distributed, partial -ed habit.

Arshavir Blackwell, PhD

However…

Arshavir Blackwell, PhD

every one of those results was a search result. I looked in these particular places and didn't find a rule. You can't prove a thing is absent by failing to find it in the spots you happened to check. A sharp reader asks the obvious question: what if there's a rule in there, and your hand-searching just missed it?

Arshavir Blackwell, PhD

This is where a gradient descent search technique comes in.

Arshavir Blackwell, PhD

Searching the whole space at once.

Arshavir Blackwell, PhD

The model's internal state is a long list of numbers, and a direction is just a particular way of nudging all of them at once in a correlated fashion: this one up a little, that one down a little. You're now pointing in a different direction in a very high dimensional space. My hand-search in Part 2 amounted to guessing nudges and testing them one at a time: dropping a bucket at likely spots in a lake, hoping to hit the deepest point.

Arshavir Blackwell, PhD

This time I stopped guessing. I used gradient descent — the same optimization that trained the model in the first place — and gave it one goal: adjust the nudge, over and over, in whatever way makes the model most prefer goed over went. Like a ball released on a hillside, it rolls downhill on its own until it settles at a bottom. What you're holding when it stops is not a pattern anyone picked by hand. It's the nudge that math itself scored as best at producing goed. If a "produce goed" direction exists anywhere in that space, this is by far the strongest way to find it.

Arshavir Blackwell, PhD

It worked.

Arshavir Blackwell, PhD

Adding this one optimized direction made the model prefer to generate goed over went 100% of the time. More telling: I tuned the direction on one set of irregular verbs and tested it on a completely different, held-out set it had never seen. Still 100%. It even pushed made-up wug-words harder toward -ed.

Arshavir Blackwell, PhD

The red flag.

Arshavir Blackwell, PhD

However…

Arshavir Blackwell, PhD

There's a second thing to check. While the direction is switched on, what happens to the verbs that were already regular — walk, jump, play?

Arshavir Blackwell, PhD

If this really is an "add -ed" rule, the answer should be: nothing. Those verbs already follow the rule. Turning the rule up harder should leave walked exactly as it was.

Arshavir Blackwell, PhD

That's not what happens. With the direction switched on, the model's accuracy on ordinary regular verbs collapses from 100% to zero. Ask it for the past tense of walk and what comes out isn't walked — it isn't a word at all. It's the syllable "ed," typed over and over: ee-dee-ee-dee-ee-dee-ee-dee.

Arshavir Blackwell, PhD

That rules out the rule. A genuine "make it regular" mechanism would push goed onto the irregulars and leave the regulars alone — it doesn't break the very words it's the rule for, and it certainly doesn't reduce the model to a stuck record. So this direction is doing something else entirely. The next step is to find out what.

Arshavir Blackwell, PhD

Opening the box.

Arshavir Blackwell, PhD

So where does ee-dee-ee-dee come from? The way to find out is to look at what the direction actually does to the model's word choices: which outputs it pushes up, and which it pushes down.

Arshavir Blackwell, PhD

The direction's single largest effect, by a wide margin, was to crank up the two-letter token "ed" — boosting it by about +60 logits, an enormous shove in a space where a few logits decide a word. Its top boosted outputs were ed, ED, ing, ated, ized — every one a suffix fragment. The words it suppressed hardest were went (about −47), came, took, gave — every one an irregular past. And, tellingly, walked (about −30): a regular past, suppressed — which is exactly why the regulars broke. Let the model generate under this direction and every prompt — walk, go, wug, play alike — comes out the same:

Arshavir Blackwell, PhD

Ee-dee-ee-dee-ee-dee-ee-dee.

Arshavir Blackwell, PhD

That output explains the whole illusion. My test asked: does the model prefer goed over went? Well — goed isn't in the model's vocabulary, so it gets spelled as two pieces, go + ed. Shouting "ed" boosts it. Went is one piece, so shouting "ed" buries it. The cheapest possible way to win my test is to scream "ed." The optimizer didn't find a rule. It found the dumbest trick that games the metric. It "generalized" to held-out verbs because taked and eated and wugged are all spelled with that same "ed" piece.

Arshavir Blackwell, PhD

And here's why it broke the regulars instead of leaving them alone. You'd think a direction pushing "-ed" would help walked. But to the model, "walked" isn't walk + -ed. It's a common word, so it's frozen into the vocabulary as one sealed chunk, with no separate "ed" inside it to boost. And next-word prediction is a competition: probability shoved onto the "ed" fragment is probability taken from every whole-word candidate. So walked got no benefit and all of the drowning, which is why it sat on the suppressed list right next to went. To this direction, a regular and an irregular past are the same thing: a single-token rival to the syllable it's shouting. A real rule operates on the concept of the suffix and would recognize walked as already correct; this thing operates on one vocabulary item, blind to everything else. Every impressive number had the same trivial cause. I checked six different depths of the model. It's the same cheap trick, findable everywhere, destructive everywhere.

Arshavir Blackwell, PhD

The lesson.

Arshavir Blackwell, PhD

Here's the trap. I was checking how the system changed on exactly the thing I was trying to change — does it now prefer goed over went? — and not how the intervention affected the rest of the system. On the one number I was optimizing, total success. The damage was in the columns I wasn't watching: regular verbs at zero, free generation reduced to a stuck record. It's like judging a drug only by whether the tumor shrank and never checking the liver.

Arshavir Blackwell, PhD

And an intervention judged only by its target is easy to fool. I thought "steer the model to say goed" would flush out a piece of grammar machinery. What the optimizer actually found was the cheapest way to move my one number: shove probability at the letters "e-d." The test couldn't tell the difference, because I hadn't asked it to.

Arshavir Blackwell, PhD

That also explains the most convincing part of the result — the transfer to new verbs. Every wrong answer I was testing for — goed, taked, wugged — contains the same "ed." So one crude push on "ed" wins the test for every verb at once, including verbs the direction was never tuned on. What looked like a rule generalizing was one trick repeating. It looked like a rule the way a horoscope looks personal: it fit every case because it was generic, not because it understood any of them.

Arshavir Blackwell, PhD

So the standard any claimed "rule direction" has to meet: it has to spare the regular verbs, and it has to make the model generate real words. This one did neither. And notice what survived: the objection from Part 2 — maybe you didn't search hard enough — got its strongest possible test, and the "no discrete rule" answer came back stronger. Even the best search money can buy turns up only a degenerate trick.

Arshavir Blackwell, PhD

The model still generalizes to novel verbs above chance — that part, from Part 2, is real. What's absent is a clean, localizable rule, and not even an optimizer can conjure one.

Arshavir Blackwell, PhD

One objection left standing.

Arshavir Blackwell, PhD

That closes the crack from the inside: search as hard as you like, there is no rule mechanism to find. But a second objection, raised back in Part 2 by a sharp reader, can't be answered by searching inside these models at all.

Arshavir Blackwell, PhD

Modern models don't read letters. They read chunks, and -ed is almost certainly one of the chunks baked into their vocabulary before training even starts. If the model is handed -ed as a ready-made brick, then maybe everything in this series — the backwards learning, the leaky generalization — is just the tokenizer talking.

Arshavir Blackwell, PhD

The only way to answer that is to take the brick away: build models that read raw letters, and raw sound, and watch them learn from scratch. That's Part 4 — and it's the end of the story. I'm Arshavir Blackwell and this has been Inside the Black Box.

Arshavir Blackwell, PhD

Full methods, exact numbers, and code available on request — happy to share with anyone who wants to poke holes. Poking holes is how the one in this post got found.