Шахматы и языковые модели
Про сами шахматы я знаю не так уж и много, всего-то 20к игр на lichess и 6к игр на chess.com . И свой движок я когда-то писал просто по фану.
Даже если вы сами не играете в шахматы, эта тема любопытна по двум простым причинам:
1) Шахматы исторически имеют особое значения для всей области ИИ. Вы по-любому слышали про Deep Blue и AlpahaZero.
2) Шахматы всё ещё можно использовать как бенчмарк того, насколько хорошо обобщают модели общего назначения. И выяснять с их помощью, как именно это обобщение работает.
🧑🏫 Слой 0: языковые модели общего назначения
Для начала, насколько хорошо языковые модели из коробки играют в шахматы?
OpenAI намеренно включают шахматные игры в предобучение, см. дополнение A2 статьи Weak-to-Strong Generalization (спасибо посту с lesswrong за наводку). Из-за этого наибольший рейтинг (примерно 1750 ELO против Стокфиша с ограниченной силой) среди моделей общего назначения долгое время имела gpt-3.5-turbo-instruct, и тому есть много пруфов (раз, два, три). При этом это играла она гораздо лучше gpt-4😁 , что скорее всего означает, что шахматный сет долили в начале 2023 года.
Что касается gpt-4o, в неё этот сет уже как будто бы попал, в рейтинге по задачкам у неё примерно 1800 ELO. Все остальные модели общего назначения играют хуже. На эту тему есть много смешных видео.
🤴 Слой 1: специально обученные языковые модели
Странно ожидать от моделей общего назначения хорошей игры в шахматы, потому что от среднего человека вы бы тоже этого не ждали. Но что будет, если заморочиться и всё-таки специально их доучить? И тут есть несколько статей.
Но перед этим коротко о форматах.
PGN: Формат партии: последовательность ходов с мета-данными и комментариями. Пример: 1. e4 e5 2. Nf3 Nc6 3. Bb5
FEN: Формат доски: положения фигур, кто сейчас ходит, можно ли рокироваться. Пример: rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
UCI: Протокол общения между движками и нотация ходов. Пример: e2e4
Grandmaster-Level Chess Without Search
Статья: ссылка
Из названия более чем понятно, о чём статья. Ребята скачали 10м игр с Личесса, разметили винрейты для позиций и для каждого хода через Стокфиш, всё ещё лучший существующий открытый движок. Дальше учили 3 версии моделей: 1) на винрейты позиций, 2) на оценки ходов, 3) на лучший ход. В качестве входа используется FEN (то есть никакой истории, только текущее состояние), и для 2 и 3 версии ещё кодируется ход. В качестве выхода в 1 и 2 версии используются корзинки вероятностей, в 3 версии — one-hot представление хода. Модели маленькие, до от 9м до 270м параметров.
Лучшая версия модели имеет 2900 ELO против людей и 2300 ELO против ботов на Личессе😱
Есть у авторов несколько объяснений наличия 2 чиселок вместо одной, основное из которых — разные пулы игроков, но это не так важно. Из по-настоящему важного — размер сетки влияет довольно сильно, и такая сетка выигрывает у аналогичной у AlphaZero (без поиска, само собой). Но не выигрывает у аналогичных сеток у современных движков. Да и с чего бы, там же тоже трансформеры и датасет не хуже.
Шахматы и вопрос разумности больших языковых моделей
Статья: ссылка
Если откинуть философские рассуждения, учили gpt-2-medium (380м, статья-то 2022 года) на PGN без переделки токенизатора, на 3.5M партий из ChessDB. В итоге у модели получилось около 1300 ELO против Стокфиша с ограниченной силой. Косяков тут много (да хотя бы токенизатор), но при этом статья вполне показательна. Да и вот аналогичная модель с такой же тушкой, датасетом и ELO.
Размеры моделей сравнимые с прошлой статьёй, так почему же так плохо?😭
Во-первых, обучение на PGN, из-за чего модели нужно самой восстанавливать оригинальное состояние доски и отслеживать все изменения. С FEN всё проще, модели не нужно ничего помнить. Во-вторых, и это самое главное, партии-то неаннотированы. Модель обучалась как на хороших ходах, так и на плохих.
Осталась ещё пара слоёв, типа моделей мира и исследования ограничений архитектур через призму шахмат. Об этом в следующем посте.
Даже если вы сами не играете в шахматы, эта тема любопытна по двум простым причинам:
1) Шахматы исторически имеют особое значения для всей области ИИ. Вы по-любому слышали про Deep Blue и AlpahaZero.
2) Шахматы всё ещё можно использовать как бенчмарк того, насколько хорошо обобщают модели общего назначения. И выяснять с их помощью, как именно это обобщение работает.
Для начала, насколько хорошо языковые модели из коробки играют в шахматы?
OpenAI намеренно включают шахматные игры в предобучение, см. дополнение A2 статьи Weak-to-Strong Generalization (спасибо посту с lesswrong за наводку). Из-за этого наибольший рейтинг (примерно 1750 ELO против Стокфиша с ограниченной силой) среди моделей общего назначения долгое время имела gpt-3.5-turbo-instruct, и тому есть много пруфов (раз, два, три). При этом это играла она гораздо лучше gpt-4
Что касается gpt-4o, в неё этот сет уже как будто бы попал, в рейтинге по задачкам у неё примерно 1800 ELO. Все остальные модели общего назначения играют хуже. На эту тему есть много смешных видео.
Странно ожидать от моделей общего назначения хорошей игры в шахматы, потому что от среднего человека вы бы тоже этого не ждали. Но что будет, если заморочиться и всё-таки специально их доучить? И тут есть несколько статей.
Но перед этим коротко о форматах.
PGN: Формат партии: последовательность ходов с мета-данными и комментариями. Пример: 1. e4 e5 2. Nf3 Nc6 3. Bb5
FEN: Формат доски: положения фигур, кто сейчас ходит, можно ли рокироваться. Пример: rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
UCI: Протокол общения между движками и нотация ходов. Пример: e2e4
Grandmaster-Level Chess Without Search
Статья: ссылка
Из названия более чем понятно, о чём статья. Ребята скачали 10м игр с Личесса, разметили винрейты для позиций и для каждого хода через Стокфиш, всё ещё лучший существующий открытый движок. Дальше учили 3 версии моделей: 1) на винрейты позиций, 2) на оценки ходов, 3) на лучший ход. В качестве входа используется FEN (то есть никакой истории, только текущее состояние), и для 2 и 3 версии ещё кодируется ход. В качестве выхода в 1 и 2 версии используются корзинки вероятностей, в 3 версии — one-hot представление хода. Модели маленькие, до от 9м до 270м параметров.
Лучшая версия модели имеет 2900 ELO против людей и 2300 ELO против ботов на Личессе
Есть у авторов несколько объяснений наличия 2 чиселок вместо одной, основное из которых — разные пулы игроков, но это не так важно. Из по-настоящему важного — размер сетки влияет довольно сильно, и такая сетка выигрывает у аналогичной у AlphaZero (без поиска, само собой). Но не выигрывает у аналогичных сеток у современных движков. Да и с чего бы, там же тоже трансформеры и датасет не хуже.
Шахматы и вопрос разумности больших языковых моделей
Статья: ссылка
Если откинуть философские рассуждения, учили gpt-2-medium (380м, статья-то 2022 года) на PGN без переделки токенизатора, на 3.5M партий из ChessDB. В итоге у модели получилось около 1300 ELO против Стокфиша с ограниченной силой. Косяков тут много (да хотя бы токенизатор), но при этом статья вполне показательна. Да и вот аналогичная модель с такой же тушкой, датасетом и ELO.
Размеры моделей сравнимые с прошлой статьёй, так почему же так плохо?
Во-первых, обучение на PGN, из-за чего модели нужно самой восстанавливать оригинальное состояние доски и отслеживать все изменения. С FEN всё проще, модели не нужно ничего помнить. Во-вторых, и это самое главное, партии-то неаннотированы. Модель обучалась как на хороших ходах, так и на плохих.
Осталась ещё пара слоёв, типа моделей мира и исследования ограничений архитектур через призму шахмат. Об этом в следующем посте.