A tiny language model with a huge lookup table

Short answer: yes, the table is worth it. And the more the model trains, the more it's worth.

The two-minute version · by Leon Fechner · last updated 18 October 2026

I took a small language model (21M parameters) and gave it a table with up to 16.8 million learned vectors. For every token (roughly a word) it only looks up a few hundred of them, so it barely computes more than before. Then I trained normal models of different sizes on exactly the same data, to see how big a normal model has to be to keep up.

7×The 21M model with the table is as good as a normal model with about 152M parameters.
¼of the compute per token that a normal model this good needs.
+33%more "worth" after six times the training (114M → 152M).

Newest result: six times the training

18 October 2026

The obvious objection: with more training, the normal models catch up and the table becomes pointless. So I trained everything again on 3 billion instead of 500 million tokens. I wrote down the rule for "grows", "holds" and "shrinks" before the runs, and my own guess was "holds" or "shrinks".

It grew, for all three table sizes.

after 500M tokensafter 3B tokens
How big a normal model has to be to match the 21M model with its table (parameters without embeddings, Wikipedia text).

What else works

The catch

What's next

The real question is whether this holds at a size people actually use: a model around 1 billion parameters with a table of tens of millions of rows. That needs bigger GPUs than I can rent. If you have some to spare, AMD Instinct or anything else, I'd love to hear from you: fechner.leon [at] protonmail.com, or open an issue.