Chess LM
мини-GPT, которые играют в шахматы
Четыре модели (XS, S, M и L) от 5,2 до 50,4 млн параметров, обученные с нуля предсказывать следующий ход в шахматной партии. Автор — sinha, тренировка шла на человеческих партиях из открытой базы Lichess. Это decoder-only transformer: правил модель не знает и поиск не использует, только оценивает вероятности ходов.
✨ Ключевые особенности
- 📓 Вход — по одному токену на ход в нотации UCI (например,
e2e4); словарь из 1971 токена, максимум 272 токена контекста. - 🎲 Архитектура: RoPE, pre-norm, GELU, tied embeddings, без bias и dropout.
- 💻 Обучение на 22,4 млн партий Lichess (оба игрока 1800+, контроль 3+0 и медленнее), по 1 млрд токенов на запуск.
- ✅ Топ-ход легален в 98,4–99,6% позиций — без маски легальных ходов.
- ⭐ Сила растёт с размером: примерно от 1182 Elo у XS до 1479 Elo у L в игре против Stockfish 19.
💻 Пример
size = "l" # xs, s, m или l
path = snapshot_download("sinha/chess-lm", allow_patterns=[f"{size}/*"])
cfg = json.load(open(f"{path}/{size}/config.json"))["model_cfg"]
model = GPT(GPTConfig(**cfg)).eval()
model.load_state_dict(load_file(f"{path}/{size}/model.safetensors"))
tok = UCIMoveTokenizer.canonical()
logits = model(ids)[0][0, -1] # ids: <bos> + сыгранные ходы
legal = [m.uci() for m in board.legal_moves]
Подробнее
📌 ПодробнееБенчмарки: loss на ход 1,465 у L против 1,789 у XS; Elo против Stockfish 19 — 1479 у L по мягкому правилу и 1376 по строгому.
Ограничения: модели не знают правил, 0,5–1,6% лучших ходов нелегальны; без фильтра легальных ходов теряется от 78 (L) до 250 (XS) Elo.
Веса — по одному seed на каждый размер; лицензия Apache 2.0, данные Lichess под CC0.
Elo дан в номинальной шкале Stockfish и не равен рейтингу Lichess или FIDE.








Комментарии