Views
No views yet
jspaulsen/halluci-mate-v2a on a higher-quality slice of the Lichess dataset. Uses the Qwen3-0.6B architecture and a custom UCI move tokenizer. First model in the series to score wins against Stockfish skill-5 in 100-game matches.Qwen3ForCausalLM), ~0.6B parameters
bfloat16, tied word embeddings, RoPE θ = 1,000,000<PAD>, <UNK>, <EOS>, <WHITE>, <BLACK>, <DRAW>) + ~1,792 geometric UCI moves + 176 promotion movesjspaulsen/halluci-mate-v2aruns-v2a-ft/languid-sloth-169/checkpoint-4056AutoTokenizer.from_pretrained. It is defined in src/halluci_mate/chess_tokenizer.py in the source repo. Install the package and use ChessTokenizer() directly.<WHITE> or <BLACK> (or <DRAW>), followed by the sequence of UCI moves.1import chess
2import torch
3from transformers import AutoModelForCausalLM
4
5from halluci_mate.chess_tokenizer import ChessTokenizer
6from halluci_mate.game.game import Game
7from halluci_mate.inference import ChessInferenceEngine
8
9engine = ChessInferenceEngine.from_checkpoint(
10 "jspaulsen/halluci-mate-v2b",
11 constrained=True, # mask logits to legal moves
12 temperature=0.0, # greedy
13)
14
15game = Game(board=chess.Board(), condition="<WHITE>")
16move = engine.predict(game)
17print(move.uci())constrained=False) will occasionally produce illegal tokens — this is expected for an alpha.jspaulsen/halluci-mate-v2a weightsscripts/train.py in the source repo--sf-analyze, legal-rate over 5,000 sampled positions (seed 0), high-elo perplexity over 10,768 sequences.| Metric | v1b | v2a | v2b |
|---|---|---|---|
| vs-stockfish score-rate, skill-5 | 0.104 (500g) | 0.065 (100g) | 0.135 (100g) |
| vs-stockfish W / L / D | 7 / 403 / 90 | 0 / 87 / 13 | 3 / 76 / 21 |
| Legal-rate (5,000 sampled positions) | 99.06% | 99.00% | 99.02% |
| High-elo perplexity (10,768 seqs) | 4.92 | 5.47 | 5.15 |
| Tactical-oversight, middle phase | 21.0% | 23.4% | 20.3% |
| Tactical-oversight, endgame | 12.4% | 12.2% | 11.9% |
| Blunder-rate (in-game) | 6.5% | 6.5% | 6.5% |
Game constructs