jhonta

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.

rundatetrained on baseafter× 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.