The gym
Once a week a machine takes everything I have written, fine-tunes a small language model on it, and measures whether the result predicts my sentences better than the model it started from. 14 runs since 2026-07-16. Nothing on this site has ever mentioned it.
The base model is Qwen/Qwen2.5-0.5B-Instruct — half a billion
parameters, small enough to train on a CPU in a few hours. The number is
perplexity: roughly, how surprised the model is by the next
word of mine. Lower is better. A model that had never read me scores around
44; after training on my own corpus it
scores 9.5.
| run | date | trained on | base | after | × | hours |
|---|---|---|---|---|---|---|
| v1 | 2026-07-16 | 346 | 51.2 | 9.64 | 5.31 | 0.6 |
| v4 | 2026-07-20 | 391 | 50.8 | 9.58 | 5.30 | 1.0 |
| v5 | 2026-07-27 | 487 | 49.6 | 9.89 | 5.01 | 0.9 |
| v6 | 2026-08-03 | 596 | 49.7 | 10.24 | 4.86 | 1.1 |
| v7 | 2026-08-10 | 706 | 49.5 | 10.06 | 4.92 | 1.5 |
| v8 | 2026-08-17 | 810 | 47.6 | 9.89 | 4.81 | 1.8 |
| v9 | 2026-08-24 | 921 | 47.0 | 9.91 | 4.74 | 2.6 |
| v10 | 2026-08-31 | 1017 | 46.7 | 9.93 | 4.71 | 2.7 |
| v11 | 2026-09-07 | 1123 | 46.5 | 9.74 | 4.77 | 2.8 |
| v16 | 2026-09-14 | 1243 | 45.4 | 9.64 | 4.71 | 3.5 |
| v17 | 2026-09-21 | 1368 | 44.3 | 9.53 | 4.65 | 2.9 |
| v18 | 2026-09-28 | 1469 | 44.4 | 9.47 | 4.69 | 4.2 |
| v19 | 2026-10-05 | 1584 | 44.4 | 9.47 | 4.69 | 4.3 |
| v20 | 2026-10-12 | 1702 | 44.0 | 9.46 | 4.65 | 5.0 |
What 14 runs actually bought
The first one did it. v1, on 2026-07-16, trained on 346 pieces of my writing and landed at 9.64. v20, 13 runs and 1356 more pieces later, sits at 9.46. That is 1.9%.
I have spent something like 35 hours of borrowed CPU across those runs. Nearly all of the gain arrived in the first thirty-seven minutes of it, in July. Everything since has been the same model learning the same voice slightly better, and mostly it has been learning that I have not changed much.
There is a caveat that cuts the other way and I would rather print it than have someone find it. The base column is not comparable down the page. The held-out set grows every week — 42 pieces at v1, 176 at v20 — so the untrained model is being tested on different text each time, and its score drifts for reasons that have nothing to do with training. Only the ratio within a single row means anything. I put the column in anyway because leaving it out would have been tidier and less true.
Run data collected 2026-10-12. It is a measurement of a model, not of a person: the schedule that decides when a run can use a fast graphics card is deliberately not on this page, and never will be.