LittlePly Chess Agent: Transformer Policy with Bounded Stockfish Assistance
Developer Andrei Savu has fully documented the architecture, training, and evaluation of his chess agent project LittlePly in an extended thread. The system's core is a roughly 87-million-parameter Transformer (12-layer decoder, width 768, 12 attention heads, 512-token context, a chess-specific vocabulary, and shared input/output embeddings) that outputs both move probabilities and win/draw/loss probabilities in a single forward pass, while a separate rule-based implementation handles board state tracking and illegal-move filtering. On top of this sits bounded external Stockfish assistance, used for mating sequences, threat handling, and "conversion assistance" in winning positions. The project also publishes a per-position analysis site and complete game archives, faithfully recording the November 3, 2026 tournament checkpoint's 8-win, 29-loss record, with no rebuilding or backfilling of missing data.
Confirmed
- Model specs: 87M parameters, 12-layer decoder, width 768, 12 heads, 512-token context, chess token vocabulary, tied embeddings; policy and value share the history representation, and the live agent already uses this design.
- Engine assistance boundary: the bounded Stockfish search is capped at 6 plies depth, 4096 nodes, and a nominal 10 seconds; time constraints further shrink the budget, with termination mechanisms and a legal fallback move. "Conversion assistance" means selective intervention in greatly simplified winning positions—the author demonstrated the full assisted decision process of a 154-move mating game.
- Training data and objectives: the corpus spans roughly 26.7 million distinct games with about 2.26 billion next-move prediction targets per epoch, mostly from high-level human games plus a minority of engine games; data cleaning includes replay-based legality checks, deduplication, and holdout exclusion, with opening-book moves kept in history but excluded from prediction targets. Ordinary move prediction is trained with equal weights and decoupled from game outcomes—win/loss results only supervise the value head; an auxiliary target predicts a single sampled move 2-9 plies ahead, with no intermediate sequence, forcing the model to reason about the position; task isolation ensures the policy and value heads only see the history representation, preventing label leakage. There is also a board-reconstruction target predicting occupancy of all 64 squares (excluding castling rights, en passant, and repetition history), and the author cautions that low reconstruction loss doesn't mean the model truly understands positions.
- Training configuration: BF16 autocast mixed precision (parameters and gradients stored in FP32), Muon+AdamW combined, gradient clipping, and warmup scheduled by source progress; initialization reuses a pretrained transformer trunk with fresh chess embeddings.
- Evaluation discipline: the author stresses that game testing must fix the checkpoint, decoder, assistance, and time settings; Sunfish and a fixed early model serve as baselines; prediction loss doesn't measure playing strength, and small-sample games are noisy. Draw handling distinguishes locally validated automatic draws from claimable draws—engine evaluations near zero cannot establish either kind of draw; bounded engine assistance offers no formal guarantees.
Not Yet Confirmed
- The initialization strategy of a pretrained trunk plus fresh board embeddings, and the gains from the auxiliary objective, still need to be validated through head-to-head play, per the author—these are currently assumptions, not conclusions.
Why It Matters
LittlePly demonstrates a transparent path to combining neural-network chess strength with explicitly bounded engine assistance: assistance limits, training details, and lost games are all published without spin (the tournament's 8-29 record is shown as-is), offering a useful reference for reproducibility and evaluation discipline in the "LLM/Transformer + tool assistance" paradigm.
2026-11-08 ~ 2026-11-08 · 23 related posts
Primary sources
- [source] LittlePly chess agent: transformer policy plus bounded Stockfish assistance — andreisavu · 2026-11-08
- LittlePly: a chess agent combining transformer policy, value search and bounded Stockfish help — andreisavu · 2026-11-08
- LittlePly search design: value head scores White via W + 0.5D expected score — andreisavu · 2026-11-08
- Board reconstruction as a state-tracking test: low loss doesn't prove real tracking — andreisavu · 2026-11-08
- LittlePly chess agent adds auxiliary objective predicting a move 2-9 plies ahead — andreisavu · 2026-11-08
- Task isolation against label leakage in a chess transformer with lookahead objectives — andreisavu · 2026-11-08
- Opening-book moves kept in history but excluded from policy targets — andreisavu · 2026-11-08
- Chess transformer corpus: 26.7M games, mostly strong human play — andreisavu · 2026-11-08
- [source] 26.7M games, 2.26B move targets: corpus and curriculum for a chess transformer — andreisavu · 2026-11-08
- Decoupled supervision: equal-weight move prediction, outcomes only supervise value — andreisavu · 2026-11-08
- [source] 87M-parameter chess model: 12 decoder layers, chess tokens, tied embeddings — andreisavu · 2026-11-08
- Chess model init: pretrained transformer body with fresh chess embeddings — andreisavu · 2026-11-08
- LittlePly training: BF16 autocast with Muon plus AdamW and gradient clipping — andreisavu · 2026-11-08
- Chess transformer search: 6-ply depth, 4,096 nodes, 10-second cap with heuristic pruning — andreisavu · 2026-11-08
- LittlePly's engine assistance capped at 6 plies, 4096 nodes, nominal 10 seconds — andreisavu · 2026-11-08
- LittlePly author: near-zero engine evals establish neither type of chess draw — andreisavu · 2026-11-08
- LittlePly author: playing tests must fix checkpoints and assistance settings — andreisavu · 2026-11-08
- A 154-ply checkmate shows LittlePly's selective conversion assistance in action — andreisavu · 2026-11-08
- LittlePly's analysis lab exposes per-move model estimates and helper interventions — andreisavu · 2026-11-08
- LittlePly publishes full game archive: 8 wins, 29 losses in Stockfish-assisted tournament — andreisavu · 2026-11-08
- LittlePly chess agent shares history representation between policy and value heads — andreisavu · 2026-11-08
- LittlePly chess agent project publishes its paper and repository — andreisavu · 2026-11-08
- LittlePly wraps up: paper, open project page, and a Lichess bot you can play — andreisavu · 2026-11-08