chess
style
text-conditioning

CHSM8-SFT: chess moves conditioned on a natural-language style description

chsm8-pt fine-tuned to play one side of a game in the style a text describes (e.g. "trade everything and grind the endgame") or like a named top player ("play like Carlsen"). This is the final SFT model of the CHSM8 technical report; the DPO model built on it is chsm8. The first full SFT run, with pooled text conditioning, is kept in v1/.

Highlights

Conditioning works: the right description makes the described side's moves more predictable. Test set, cross-entropy on the described side's moves:

right description wrong description (another game's) no description
2.811 3.115 2.946

The right–wrong gap is −0.303, six times the −0.049 of the first full run (v1/).

Player prompts work, modestly. On held-out games of all 99 top players (30 each, 124k moves), the model's top move matches the player's move 56.2% of the time with "play like {player}", 55.0% with another player's name and 54.7% with no prompt. The right name beats the wrong one in cross-entropy for 94 of 99 players.

Prompts change how it plays (model's own moves vs Stockfish 2000, no prompt in brackets):

  • "castle queenside and storm the enemy king with your pawns": 98% of castling is queenside [13%]
  • "leave your king in the center and go for an open fight": castles in 0% of games [94%]
  • "trade queens as early as possible": queens off by ply 40 in 55% of games [21%]
  • "bring your queen out early and push random pawns for no reason": queen moved in the first 5 moves in 83% of games [5%]
  • "push your pawns aggressively up the board and grab space": pawn moves 0.289 per move [0.252]
  • every prompt plays more varied openings than no prompt (0.84–0.97 distinct lines per game [0.73])

Asking for strong or weak play does not change its strength. No prompt: 1794 Elo (1773–1815, 1,000 games). Strong prompts ("a 2800-rated super grandmaster...") give 1790–1849 and weak ones ("play like an 800 rated player", "play badly on purpose") 1790–1844, all within the confidence intervals: every training game came from a ≥ 2200 player, so no description was ever paired with weak play. Only prompts that name concrete bad moves lower it: "move instantly without thinking and ignore every threat" 1605, "bring your queen out early and push random pawns" 1637.

Elo by prompt

Behaviour by prompt

Per-prompt numbers (Elo, game length, captures, checks, castling, queen trades, opening variety, centipawn loss) are in eval/report.md; the prompts are in eval/prompts.json.

Data

  • chsm8-post-training: 27.08M train game sides (described player rated ≥ 2200), each with the five LLM style descriptions (Gemma-4-31B plus distilled labels, all Apertus sets relabelled); no metadata labels. One pass, uniformly shuffled across years, 10% of descriptions dropped.
  • chsm8-top-players: 542,109 train games of 99 FIDE top-100 players with a "play like {player}" prompt (49 templates × name aliases), at a flat 6% of batches over the whole run. That is three passes over the player games, with fresh wording each pass.

Conditioning

  • The description is encoded by a frozen google/embeddinggemma-300m (up to 128 tokens). All its token states, projected to the decoder width of 960, are the keys and values of a cross-attention in the top 6 of 12 decoder layers.
  • Each cross-attention output is added as x + tanh(gate) · attention, gates initialised at 0 (training starts exactly at the pretrained model). A pinned no-text term keeps the empty-prompt output fixed.
  • Loss: next-move cross-entropy on the described side's moves only; the opponent's moves are context.

Training

  • All 12 decoder layers trained. Learning rates: decoder 5e-7, text projection and cross-attention 8e-4; 5% warmup, cosine to 0.
  • Length-bucketed batches of 128 games per GPU. 28,239 steps on 8 GH200 (2 nodes, DDP), about 2,400 games/s, 3.1 h.

Limitations

Research checkpoint, no search. With no prompt it plays about 45 Elo below chsm8-pt (1792 vs 1837 over 2,000 games): part of the capacity moves from predicting the best move to following the description. The model imitates how ≥ 2200 Lichess players and top players played; prompts describing much weaker play are outside the training data.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for LegumMagister/chsm8-sft

Finetuned
(2)
this model
Finetunes
1 model

Datasets used to train LegumMagister/chsm8-sft