chorcat/rukh-qwen3-pgn-qlora
chorcat/rukh-qwen3-pgn-qlora
A QLoRA adapter that fine-tunes `Qwen/Qwen3-0.6B` on chess games written as PGN text. It exists to answer one question with a number: is a general language model, fine-tuned on the same games, a substitute for a model built for the job?
It is part of Rukh, a course that builds a chess language model end to end. The model it is compared against, and how: https://lab.rukh.borjaglez.com.
How it was trained
The games are the same ones the project's own decoder trains on, from the same month, held out against the same validation split. Each is rendered as the movetext a human would paste into a chess site, with the two ratings as PGN tags:
[WhiteElo "2015"] [BlackElo "2028"]
1. e4 c6 2. d4 d5 3. exd5 cxd5 4. Bd3 Nf6 ... 1-0Results
Measured with the project's own harness -- the same validation positions, the same puzzle split and the same Stockfish ladder as every other stage -- so the two sides differ in their representation and in nothing else.
How its answers failed
A model whose vocabulary is the set of legal moves can only be wrong one way: a legal move in the wrong position. A model writing SAN has three more.
In the course
- Built in M4 · Fine-tuning: los labs, the lesson that runs every command behind this repository.
- Measured in the single results table as the stage
qwen3-pgn-qlora: every stage of the course, the same suite, the same day. - Bring it to the paths the configs read:
uv run rukh pull qwen3-pgn-qlora.
Licence
apache-2.0.
