Перейти к содержанию
Публикация AiManual

Как 50-миллионный трансформер играет в шахматы лучше ChatGPT: тестируем Chess GPT без поиска

Тестируем Chess GPT - 50M параметров, играет в шахматы лучше ChatGPT. Архитектура nanoGPT, PGN формат, доменное обучение.

Коротко

Что будет в материале

  1. 01

    Когда размер не имеет значения

  2. 02

    Что скрывается под капотом

  3. 03

    Запускаем на своей машине

  4. 04

    Температурные качели

Когда размер не имеет значения

ChatGPT знает все. Ну, почти все. Спроси его про квантовую физику - получишь внятный ответ. Попроси написать код на Python - без проблем. Но попробуй сыграть с ним в шахматы... И вот тут начинается веселье.

GPT-4 делает ходы, которые нарушают правила. Иногда предлагает поставить короля под шах. Иногда двигает ладью по диагонали. Это как если бы профессор математики не умел складывать 2+2.

А теперь представь модель в 6000 раз меньше. Всего 50 миллионов параметров против 300+ миллиардов у GPT-4. И она играет в шахматы лучше. Намного лучше.

💡
Chess GPT - это специализированная языковая модель, обученная исключительно на шахматных партиях в PGN формате. Никакого общего знания, только доска, фигуры и ходы.

Что скрывается под капотом

Архитектура - классический nanoGPT. Тот самый, что Андрей Карпати использовал для обучения Shakespeare GPT. Просто вместо текстов Шекспира - миллионы шахматных партий в PGN формате.

PGN - это Portable Game Notation. Текстовый формат записи шахматных партий. Выглядит так:

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6

Модель учится предсказывать следующий ход в последовательности. Как автодополнение в телефоне, только для шахмат.

ПараметрChess GPTGPT-4
Параметры50 миллионов~1.76 триллиона
ОбучениеТолько шахматыВся интернет-энциклопедия
Правильные ходы~95%~70%
Размер модели200 МБГигабайты

Запускаем на своей машине

Самое приятное - модель весит всего 200 МБ. Запускаешь на ноутбуке пятилетней давности. Никаких облаков, подписок, лимитов.

1Устанавливаем зависимости

pip install transformers torch

2Загружаем модель с HuggingFace

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "mlabonne/chess-gpt"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

3Генерируем ходы

def get_next_move(position, temperature=0.7):
    inputs = tokenizer(position, return_tensors="pt")
    with torch.no_grad():
        outputs = model.generate(
            inputs.input_ids,
            max_length=inputs.input_ids.shape[1] + 10,
            temperature=temperature,
            do_sample=True,
            pad_token_id=tokenizer.eos_token_id
        )
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

# Пример: начало партии
position = "1. e4 e5 2. Nf3"
next_move = get_next_move(position)
print(f"Следующий ход: {next_move}")

Температура сэмплирования - ключевой параметр. При temperature=0.0 модель всегда выбирает самый вероятный ход (предсказуемо, как Stockfish). При temperature=1.0 начинает "творить" - иногда гениально, иногда абсурдно.

Температурные качели

Поиграй с температурой - увидишь всю прелесть специализированных моделей.

Temperature=0.2: "2... Nc6" (стандартный ответ, как в учебниках)

Temperature=0.8: "2... d6" (менее популярный, но солидный ход)

Temperature=1.5: "2... f5?!" (агрессивный контргамбит, рискованный)

А теперь попробуй то же самое с ChatGPT. Попроси его сыграть в шахматы с температурой 1.5. Он начнет генерировать... эээ... "2... Король вперед на три клетки"?

Вот в чем фишка. Общая LLM пытается быть логичной во всем. Специализированная модель знает только шахматы. Ее "творчество" ограничено правилами игры. Она не предложит ход, которого нет в PGN базе.

Почему это работает

Доменное обучение. Вместо того чтобы пытаться знать все понемногу, Chess GPT знает одну вещь идеально.

Токенизация PGN. Каждый ход - это отдельный токен. Модель не "понимает" шахматы в человеческом смысле. Она просто выучила статистику: после "1. e4 e5 2. Nf3" чаще всего следует "Nc6".

Маленький словарь. Всего 1000+ уникальных токенов (ходов). Против 100 000+ у общих моделей. Легче учиться, меньше шума.

Как говорится в нашей статье про локальные модели против GPT-4, иногда специализация бьет масштаб.

Чем это не является

Chess GPT - не шахматный движок. Не жди от нее расчета вариантов на 20 ходов вперед. Это не Stockfish, не AlphaZero.

Это языковая модель, которая играет в шахматы. Как человек, который выучил миллионы партий и теперь интуитивно чувствует, какой ход "правильный".

Она делает ошибки. Иногда предлагает слабые ходы. Но никогда - нелегальные. И в этом ее преимущество над ChatGPT.

💡
Попробуй сыграть против Chess GPT на разных уровнях температуры. При низкой температуре она играет как учебник. При высокой - как авантюрист. Отличный способ изучать разные стили игры.

Кому это нужно

  • Разработчикам игр: Встроить шахматного ИИ в мобильное приложение без облачных API
  • Тренерам: Генерировать учебные позиции с разной степенью "творчества"
  • Исследователям: Экспериментировать с доменным обучением на маленьких моделях
  • Любителям шахмат: Иметь всегда доступного партнера для игры

Особенно интересно сравнить с другими нишевыми инструментами из нашей подборки 4 нишевых ИИ-инструмента. Тренд очевиден: вместо одного монстра - россыпь специалистов.

Что дальше

Представь такие же модели для других игр. Go GPT. Poker GPT. Даже для "Сапера" можно сделать специализированную версию.

Или для программирования - как IQuest-Coder-V1 40B, только меньше и дешевле.

Будущее не за гигантскими моделями, которые знают все плохо. Будущее за сетью маленьких экспертов, каждый из которых знает свою область идеально.

Прямо как в том старом анекдоте: "Зачем тебе профессор, который знает 100 языков по одному слову? Дай мне 100 человек, каждый из которых знает один язык идеально."

Chess GPT - первый из этой сотни. Играешь?