ChessTwin
A 6-block, 64-channel ResNet policy network that predicts the move one specific player (Aman, ~2400 Lichess bullet) would play in a chess position. It was pretrained on 5.2M positions of 2150-2650 Lichess bullet games, then fine-tuned on 1.3M positions from Aman's own games. It plays live as ChessTwinBot.
Code, training details and the full experiment log: https://github.com/AmanDataGuy/ChessTwin
Files
| File | What |
|---|---|
pretrained.pt |
Run 3 pretrain: general human bullet play |
finetuned.pt |
Run 3 fine-tune: the deployed model |
experiments/finetuned_lr_experiment.pt |
Run 4 (lr 2e-4): not deployed, Catalan regressed |
experiments/finetuned_openings.pt |
Run 5 (opening-only pass): not deployed, -1.8 pp overall |
Each .pt is a dict {"model_state_dict", "vocab_size", "config"}. Load it with PolicyNetwork.from_config(ckpt["config"], ckpt["vocab_size"]) from the GitHub repo. The move vocabulary is models/move_vocab.json in the repo.
Results (5,000 held-out positions from Aman's games)
| Model | Top-1 | Top-3 |
|---|---|---|
| Random legal move | 7.08% | β |
| Stockfish best move | 37.68% | β |
pretrained.pt |
41.84% | 70.38% |
finetuned.pt |
47.68% | 75.42% |
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support