Rafhael Oliveira · IA

What it costs and what it delivers: us, GPT-1 and GPT-2 on the only ruler valid across tokenizers

Bits per character, the price of each training in dollars, and an uncomfortable question: fewer parameters, trained for less, delivers more?

1 min read· chapter: 15 min· Experiment in progress · chapter updated on 12 Sept 2026

Landed here from LinkedIn? This is chapter 15 of the experiment Antivision · Latent Rehearsal. It reads on its own; if you want the beginning, it is chapter 00.

"Our model has perplexity 31, GPT-2 has 29, so GPT-2 is better." That means nothing. Perplexity is measured per token, and a token is not a universal unit: it is a tokenizer's choice. Ours has 16 thousand entries; GPT-2's, 50 thousand. Comparing the two by perplexity is comparing different rulers. The conversion exists and is old: bits per character. How many bits the model needs, on average, to predict the next character of a text it has never seen. With that ruler, we put our models, GPT-1 and GPT-2 in the same table, with the price of each training in dollars. And the expected result was written before seeing the number: ours does better in Portuguese and code, GPT-2 does better in English. If ours does better in English too, suspicion falls on the test, not the model.

The three points

  1. The parameter saving is in the vocabulary: our biggest model has the same body as GPT-2 small (12 layers, 768 dimensions), but GPT-2's embedding is 31% of the total, and in our mini it is 56.6% of a model 17 times smaller.
  2. The card changed the scale of the possible: the 700-step run that takes 25 minutes on CPU takes 40 seconds on an RTX 5090. Training the mini with the Chinchilla budget costs US$ 0.03; the large, US$ 4.28 and 4.8 hours.
  3. The rule was written before the number: the test text comes from the validation set, the domain of each block is decided by code, and a result that favours whoever measures deserves more suspicion, not less.

From the chapter, the beginning

Every earlier chapter compares our own rounds against each other. This one compares outward: GPT‑1, GPT‑2 and ours, on the only metric that is valid across different tokenizers, with the dollar price of each training run. The question is simple and uncomfortable: a model with fewer parameters, trained for less than a dollar, delivers what exactly?

The temptation is to say "our model has perplexity 31 and GPT‑2 has 29, so GPT‑2 is better". That means nothing. Perplexity is measured per token, and a token is not a universal unit: it is a choice made by the tokenizer. Our vocabulary has 16,392 entries trained on this corpus; GPT‑2's has 50,257, trained on English web text. The word "antevisão" may become two pieces in ours and six in GPT‑2's. Per-token perplexity compares two things counting different units — like comparing litres per kilometre with gallons per mile without converting.

The conversion exists and is old: bits per character. Sum the negative log-likelihood of every token in a text, convert from nats to bits, and divide by the number of characters — not tokens. The result answers a physical question: how many bits does this model need, on average, to transmit one character of this text? A character is the same thing for everybody. It is the metric of the compression literature, and the only honest one here.

No hand-picked text. The test text comes from the validation set itself (model/data/validacao.bin), decoded back into characters: blocks of 8,192 tokens that data preparation set aside before training and shuffled. No model of ours has seen them. Each block's domain — Portuguese, English or code — is decided by a counting rule written into the code (model/cost_vs_gpt2.py), not by judgement: structural code markers, Portuguese markers, and the rest is English.

Keep reading chapter 15 →Ler em portuguêsThe PDFs by e-mail →
What the chapter covers · 7 sections · 15 min
  1. The comparison almost everyone gets wrong
  2. Where our parameter saving actually is
  3. What the card changed
  4. Chinchilla's budget, and the corpus it demands
  5. The ladder, measured
  6. Bits per character: us, GPT‑1 and GPT‑2
  7. What Antivision adds
All chapters of the experiment · Antivision · Latent Rehearsal
  1. 00 · Antivision: an ELLM, a language model that rehearses in latent space before speaking
  2. 01 · The custom tokenizer: why 16 thousand tokens suit this corpus better than 50 thousand, and what the whole table shows
  3. 02 · Two architectures, one file: the fair duel between 2019 and what came after
  4. 03 · The geometry of the embedding: training starts with a perfect space and ruins it
  5. 04 · The lineage of collapse: five answers from computer vision, each measured on text
  6. 05 · The rudder and the world model: three versions of the same question, each measured against the last
  7. 06 · Method and mistakes: the rules of a legitimate comparison and the catalogue of our own errors
  8. 07 · Scale and budget: what it costs to reach GPT-3, and why VRAM is almost never the limit
  9. 08 · The workbench: serve, x-ray and train from the browser
  10. 09 · The hierarchical architecture: the whole project aligned to the four patterns of the world model
  11. 10 · What JEPA is, according to LeCun: two talks read concept by concept, and where each one applies
  12. 11 · Memory and horizon: two claims from LeCun that became experiments, and both hold for text
  13. 12 · Learned costs and inference modes: the three searches and the two sources of energy, measured
  14. 13 · The corrections from LeCun's talks: failure, passage, flag, measurement
  15. 14 · Consulted memory: a bank of abstract states read by attention
  16. 15 · What it costs and what it delivers: us, GPT-1 and GPT-2 on the only ruler valid across tokenizers
  17. 16 · The minimum was off the list: the day I measured my own search by energy
  18. 17 · ELLM: the right name for a language model that predicts in latent space and decides by energy
  19. 18 · Searching better does not fix the energy: three searches, the same text
  20. 19 · The inversion that did not repeat: the world model's cost appears once the ruler stops swinging
  21. 20 · What changed on 17/09: two new chapters and two corrections

Before this: the GPT-2 course

Rafhael Oliveira
Rafhael Oliveira

Writes the GPT-2 course and runs the Antivision experiment, measuring every run before publishing the number. The LinkedIn posts start here and end in the chapters.

Follow on LinkedIn →