← train.galvyn.xyz

Lesson 1.9 · Scale · Oct 18, 2026

Scale, then the real GPT-2

124M beats 16M by a widening margin on the same data. Then the full recipe on 10B tokens: 55 hours at home, 48 minutes on 8× H100, val loss 3.055.

Same data, same steps, two sizes. A is a 16M-parameter model (4 layers, 256 wide); B is GPT-2 small's shape (12 layers, 768 wide, 124M parameters). Both train 3,000 steps of 32 × 256 tokens of FineWeb-Edu.

Losssolid = train (smoothed), dots = validation
681050010001500200025003000step
Real data from the lab experiment. A: fineweb edu · B: fineweb edu
AB
val loss at step 2006.636.61
val loss at step 30005.2825.055
tokens per second (L4)31.8k16.9k

At step 200 they're tied: early on, both are learning the easy things (which tokens are common). Then the gap opens and keeps widening, to 0.23 nats by step 3,000. The bigger model gets more out of every token it reads. It also costs about twice as much time per step, so per hour of GPU it's closer; scaling-law papers make exactly that trade-off precise (how big a model to train for a given compute budget).

The capstone: GPT-2 on 10 billion tokens

The full recipe (Karpathy's build-nanogpt): the 124M model, 1,024-token context, 524,288 tokens per step, 19,073 steps, about 10B tokens. Twice:

At home: one RTX A5000 (~55 hours)
510500010k15kstep
Real data from the lab experiment. A: fineweb edu 10b
Rented: 8× H100 on GCP (~48 minutes on healthy GPUs)
510500010k15kstep
Real data from the lab experiment. A: fineweb edu 10b

The rented run reached a validation loss of 3.055, GPT-2 small's level, and learned that the capital of France is Paris on the way. It ran at 3.48M tokens/s, about 70× the home GPU, after one of its first machine's eight GPUs turned out to be faulty and slowed all eight (data parallel waits for the slowest GPU).

Every number here comes from this experiment in the lab, trained on one RTX A5000.