Открыть сервис

Leela Chess Zero

Leela Chess Zero — это свободная шахматная программа с открытым исходным кодом, использующая методы глубокого обучения с подкреплением (reinforcement learning) для игры в шахматы. Разрабатывается сообществом энтузиастов с 2018 года. Является одной из сильнейших шахматных программ в мире, наряду с Stockfish и Komodo.

История

Проект Leela Chess Zero (сокращённо Lc0) был запущен 9 января 2018 года программистом Гэри Линскоттом (Gary Linscott) и шахматным гроссмейстером Юрием Осиповым. Идея основывалась на успехе программы AlphaZero, разработанной компанией DeepMind (подразделение Google). AlphaZero в 2017 году продемонстрировала способность достигать сверхчеловеческого уровня игры в шахматы, используя только самообучение без использования человеческих партий или дебютных книг. Однако исходный код AlphaZero не был опубликован.

В ответ на это сообщество решило создать открытую альтернативу. Название «Leela Chess Zero» отсылает к проекту Leela Zero (игра Го), который, в свою очередь, был назван в честь героини игры «Fate/Grand Order». Основной принцип — обучение нейронной сети с нуля (zero) путём игры самой с собой (self-play).

Первая версия Lc0 была выпущена 10 января 2018 года. Первоначально программа была значительно слабее традиционных движков, таких как Stockfish, но уже через несколько месяцев, благодаря распределённым вычислениям (краудсорсингу), её сила игры начала стремительно расти. К концу 2018 года Lc0 стала конкурентоспособной на уровне топ-гроссмейстеров.

Архитектура и принцип работы

В отличие от традиционных шахматных программ, которые полагаются на ручные алгоритмы оценки позиции и альфа-бета-отсечение, Leela Chess Zero использует нейронную сеть для оценки позиций и выбора ходов.

Нейронная сеть

Lc0 использует свёрточную нейронную сеть (CNN), аналогичную тем, что применяются в компьютерном зрении. Входными данными для сети является представление шахматной доски в виде набора плоскостей (каналов), кодирующих положение фигур, права на рокировку, последний ход и другую информацию. Сеть состоит из нескольких остаточных блоков (residual blocks), которые обрабатывают эти данные и выдают на выходе два значения:

  • Политика (policy): вектор вероятностей для каждого возможного хода. Сеть оценивает, какой ход является наиболее перспективным.
  • Ценность (value): скалярное значение от -1 до 1, оценивающее вероятность выигрыша для текущей стороны (1 — гарантированная победа, -1 — гарантированное поражение).

Поиск по дереву Монте-Карло (MCTS)

Для выбора хода Lc0 использует модифицированный алгоритм поиска по дереву Монте-Карло (MCTS). В отличие от альфа-бета-поиска, который перебирает все возможные ходы до определённой глубины, MCTS строит выборочное дерево вариантов, фокусируясь на наиболее многообещающих ветвях. Процесс состоит из четырёх этапов:

  1. Выбор (Selection): начиная от корня дерева, алгоритм выбирает ходы с наибольшим значением Upper Confidence Bound (UCB), которое балансирует между исследованием новых вариантов и эксплуатацией уже известных сильных.
  2. Расширение (Expansion): когда достигается листовой узел, в котором ещё не было вычислений, он расширяется, добавляя дочерние узлы для всех возможных ходов.
  3. Оценка (Evaluation): нейронная сеть оценивает позицию в листовом узле, выдавая политику и ценность.
  4. Обратное распространение (Backpropagation): полученная ценность распространяется обратно по дереву, обновляя статистику всех узлов на пути от листа к корню.

После определённого количества симуляций (например, 800 или 1600) выбирается ход, который был посещён наибольшее количество раз.

Самообучение (Self-play)

Ключевая особенность Lc0 — обучение без учителя. Программа играет миллионы партий сама с собой. Каждая партия генерирует обучающие данные: последовательность позиций и соответствующих им ходов, выбранных MCTS, а также конечный результат (победа, поражение, ничья). Эти данные затем используются для обновления весов нейронной сети. Процесс повторяется, и сеть постепенно учится играть всё сильнее.

Распределённые вычисления

Обучение Lc0 происходит за счёт краудсорсинга. Участники проекта могут предоставить вычислительные ресурсы своих компьютеров (в первую очередь GPU) для генерации обучающих данных (игр) или для тестирования новых версий сети. Сервер проекта (lc0.org) координирует работу тысяч добровольцев. Это позволяет обучать нейронную сеть огромного размера, недоступного для одного исследователя.

Сила игры и рейтинг

Leela Chess Zero входит в число сильнейших шахматных программ. Начиная с 2019 года, она регулярно участвует в чемпионатах мира по компьютерным шахматам (TCEC) и других соревнованиях. В TCEC Lc0 неоднократно занимала призовые места, в том числе первое (в некоторых сезонах). Её стиль игры часто описывается как «человечный» и «позиционный», в отличие от «тактического» стиля Stockfish. Lc0 демонстрирует глубокое понимание позиционных тонкостей, таких как пешечные структуры, слабые поля и активность фигур.

Официальные рейтинги (например, CCRL или CEGT) ставят Lc0 на второе или третье место после Stockfish, с отрывом в несколько десятков пунктов Эло. Однако сила игры сильно зависит от используемого аппаратного обеспечения (особенно от видеокарты) и размера нейронной сети.

Критика и ограничения

Несмотря на успехи, Lc0 имеет ряд недостатков:

  • Высокие требования к оборудованию: для эффективной работы требуется мощный GPU (видеокарта). На процессоре (CPU) Lc0 играет значительно медленнее и слабее, чем традиционные движки.
  • Детерминированность: при одинаковых настройках и начальном состоянии (seed) Lc0 будет играть одинаково, что делает её уязвимой для подготовки.
  • Сложность отладки: нейронные сети являются «чёрными ящиками», что затрудняет понимание причин тех или иных ходов и исправление ошибок.
  • Зависимость от сообщества: развитие проекта полностью зависит от добровольных пожертвований вычислительных ресурсов.

Применение

Помимо игры на высоком уровне, Lc0 используется для:

  • Анализа партий: шахматисты-любители и профессионалы используют Lc0 для поиска новых идей и оценки позиций.
  • Исследований в области ИИ: Lc0 является популярной платформой для изучения методов глубокого обучения с подкреплением.
  • Обучения: благодаря своему «человечному» стилю, Lc0 часто используется для обучения шахматной стратегии.

Интересные факты

  • Некоторые версии Lc0 демонстрируют нестандартные дебютные идеи, которые ранее считались ошибочными, но позже были подтверждены традиционными движками.
  • Проект полностью открыт и некоммерческий. Все исходные коды, веса нейронных сетей и обучающие данные находятся в открытом доступе.
  • В 2020 году Lc0 выиграла чемпионат мира по компьютерным шахматам (ICGA).

Источники

  • Официальный сайт проекта Leela Chess Zero (lc0.org)
  • Репозиторий исходного кода на GitHub (LeelaChessZero/lc0)
  • Статья «Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm» (AlphaZero, DeepMind, 2017)
  • Результаты турниров Top Chess Engine Championship (TCEC)
  • Рейтинги компьютерных шахматных программ (CCRL, CEGT)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →