Why I sat behind one GPU for nine days.
Open language models speak English well and Estonian carelessly. They inflect wrongly, mix up verb government and write sentences no Estonian would write. Paid models are better, but behind them are someone else's decisions and someone else's price. I wanted to know how far one person gets with one ordinary gaming PC, if every step is measured.
I chose Qwen3.8-27B as the base, an open-weights model with 27 billion parameters, and trained it with QLoRA on a single RTX 5090 with 32 GB of memory. The project started on 22 August 2026. In nine days I ran 34 saved training runs: first 13 targeted skill rounds, where each round's material came from the model's own mistakes in the previous round, then 110 million tokens of continued pretraining on edited Estonian prose, and finally surgical repair rounds on top of that.
The most expensive lesson was not technical. It was about measurement. My 200-task Estonian test was meant as a locked check, but I looked at it after every round and chose the next batch by it. By definition that makes it a development set, not a test. The number that comes out of it is biased upwards, and I do not know by how much. That is exactly why every number on this page carries its denominator and its limitation next to it, in the same type size.
Second lesson: a small targeted dose beats a large general one. 720 examples aimed at one specific error gave more than 81,268 general examples. And third: the model's own mistakes are the best training material there is. The same data as one big batch scored 9 points lower than 13 rounds where each round looked at the previous one's errors.
Estonian is a small language. Its training must be publicly available and the work must carry forward into future models, not stay on one person's hard drive. This work has no economic weight for me, neither direct nor indirect. The code is MIT, the adapters Apache 2.0, the reports CC BY 4.0. The mistakes are public too, because they teach more than a clean final result.