Leela Chess Zero

Leela Chess Zero

1.71K
0

Leela Chess Zero (LCZero, Lc0) – шахматный движок, использующий для своей работы нейронные сети и принцип распределенных вычислений. Руководство над проектом возглавляет программист Гэри Линскотт, он же – один из четырех разработчиков Stockfish. В своем детище Линскотт реализовал идеи, заложенные в AlphaZero, программе для нейросетей от Google, громко нашумевшей в конце 2017 года своей бескомпромиссной расправой над сильнейшими компьютерными программами для игры в шахматы, го и сёги.

Особенности Leela Chess Zero

В своем подходе к решению задач, которые перед ними ставятся, такие программы как Leela Chess Zero и AlphaZero кардинально отличаются от традиционных «алгоритмических» шахматных движков, таких как Stockfish, Komodo или Houdini. Нейронные сети, на которых основываются первые, не программируются в привычном смысле, они обучаются посредством игры против самих себя, формируя собственное понимание.

В парадигме классических шахматных движков используются алгоритм альфа-бета-отсечения для функции поиска (Alpha-Beta Pruning) и реализованная трудом разработчиков функция оценки, предписывающие программе строго определенные действия по заданному алгоритму, который постоянно улучшается человеком методом проб и ошибок. Входными данными служат представление доски, базовые правила игры и несколько последних ходов, если позиция не начальная. То же самое на вход получают LCZero и AlphaZero, но для поиска они уже применяют иной способ, метод Монте-Карло (Monte Carlo Tree Search). Функция же оценки вовсе отдается на откуп нейронным сетям и их алгоритму обучения.

Нейронная сеть (в нашем случае искусственная нейронная сеть) являет собой попытку смоделировать в некотором приближении сеть нервных клеток живого организма. Работа в этой области послужила возникновению в науке об искусственном интеллекте раздела о машинном обучении – в определенный момент стало понятно, что такие модели, благодаря обмену информацией между нейронами внутри себя, способны к обучению. Алгоритм этого обучения в своем процессе позволяет нейронной сети распознавать сложные зависимости между входными и выходными данными, выполняя в результате операцию обобщения. Таким образом программа становится способна найти верное решение, не смотря на отсутствие данных о нем в обучающей выборке.

«Голая» нейронная сеть, изучающая доску, глупа. Но чем больше она учится, играя сама с собой, тем умнее становится. Кроме того, вкупе с методом Монте-Карло они постепенно дополняют и улучшают друг друга. Перед своим первым матчем из 100 партий со Stockfish AlphaZero сыграла против себя самой в шахматы миллионы раз всего за четыре часа и, как известно, разгромила своего оппонента в пух и прах. Для обучения нейросети Google задействовали колоссальную вычислительную мощность – тысячи тензорных процессоров.

Разработчику Leela Chess Zero потребовались бы века, чтобы обучить со сравнимым эффектом свое детище. Вопрос с недостатком вычислительной мощности был решен способом распределенных вычислений. Целое сообщество пользователей изо дня в день жертвуют на благо проекта вычислительные ресурсы своих компьютеров, напрямую тем самым участвуя в обучении нейросетей LCZero и ее развитии. Во многом благодаря им, число партий, сыгранных в общей сложности Leela Chess Zero на июнь 2019 года, уже превысило две сотни миллионов.

История выступлений

Анонс Leela Chess Zero состоялся 9 января 2018 года на форуме talkchess.com. В апреле движок начал свое выступление в Top Chess Engine Championship (TCEC), стартовав в 12 сезоне с 4-го дивизиона. Дебют сложился неудачно: из 28 проведенных Лилой поединков она проиграла 25 и выиграла всего в одном, да и то в результате зависания соперника. Однако программа непрерывно обучалась и стремительно прогрессировала. В 13-м сезоне TCEC с результатом +14 -2 =12 она выиграла 4-й дивизион, в котором провалилась всего четыре месяца назад, и перешла в следующий. В нем Лила заняла второе место, одержав 7 побед при 18 ничьих и 3-х поражениях.

К началу осени Leela Chess Zero уже составляла конкуренцию сильнейшим шахматным программам в мире. В первом раунде Chess.com Computer Chess Championship 2018 (CCC1), проводившемся в 3 этапа, среди участвовавших 24-х программ «нейродвижок» занял 5 место. Восьмерка лучших перешла во второй раунд. По его результатам Лила расположилась на 4-й позиции, а затем победой над Komodo в матче из 30 партий завоевала итоговое 3-е место на турнире. В финальном матче за лидерство боролись Stockfish и Houdini. В следующем турнире chess.com для компьютерных программ Chess.com Computer Chess Championship Blitz Battle 2018 (CCC2) Лила снова заняла 3-е место; победу, как и в CCC1, праздновал Stockfish.

В декабре того же года проходил 14 сезон TCEC. В этот раз Лиле без труда покорились все номерные дивизионы, от 3-го до 1-го. В премьер-дивизионе уверенное единоличное лидерство удерживал Стокфиш, за второе место вели борьбу Комодо, Гудини и Лила. В финальном раунде от движка на нейронных сетях требовалось удержать черными ничью со Стокфишем, чтобы занять вторую строчку и сразиться с ним в суперфинале. Лила с этим справилась и вышла на матч, уступив сопернику в тяжелейшей борьбе со счетом 50,5:49,5.

В феврале 2019 года Leela Chess Zero завоевала свой первый крупный трофей – Кубок TCEC, одолев в финале турнира Houdini и не проиграв по ходу соревнования ни одной партии. В мае в рамках 15 сезона TCEC Leela вновь встретилась со Stockfish в суперфинале. На сей раз она превзошла своего главного оппонента, выиграв матч из 100 партий с результатом +14 -7 =79. Stockfish впервые за четыре сезона Top Chess Engine Championship проиграл первенство чемпионата.

Leela Chess Zero скачать

LCZero – не типичный UCI-движок, но все же он поддерживает универсальный шахматный интерфейс и потому может быть использован на ПК в шахматной оболочке, такой как, например, Chessbase, Fritz или Arena. Однако установка Лилы и ее настройка для эффективной и удобной работы потребует от пользователя несколько больших сил и знаний, а может быть и вложений, нежели в случае того же Стокфиша, Комодо или Гудини.

Скачать Leela Chess Zero можно с официального сайта разработчика lczero.org. Программа является бесплатной. Скачать потребуется: 1) файл движка lc0.exe и 2) файл сети

1) Непосредственно сам движок распространяется в трех версиях: Blas, OpenCL и Cuda.

  • Blas потребляет в своей работе только ресурсы CPU (центрального процессора) и в отличие от OpenCL- и Cuda-версий не обращается к видеокарте, поэтому весьма значительно уступает им в силе и скорости
  • OpenCL задействует GPU (графический процессор) с поддержкой OpenCL2
  • Cuda использует возможности относительно свежих GPU NVIDIA и работает только с ними

Чтобы узнать о поддержке видеокарты стандарта OpenCL 1.2, можно воспользоваться программой GPU-Z (распространяется бесплатно). Платы AMD поддерживают OpenCL 1.2 последние полдесятка лет (на архитектуре GCN). Интегрированная в CPU графика (применяется, как правило, на ноутбуках) также подойдет при условии поддержки вышеупомянутого стандарта. Встроенные графические процессоры AMD позволят использовать OpenCL-версию LCZero, начиная с семейства Kaveri.

Cuda превосходит OpenCL, но поддерживает только видеокарты NVIDIA, начиная с GTX 600-й серии, т.е. с семейства Kepler (как правило не старше 2013 года) или новее (Maxwell, Pascal, Turing). С каждым новым релизом движка его требования могут расти – чем мощнее видеокарта, тем эффективнее она себя проявит.

Скачать движок LCZero: https://github.com/LeelaChessZero/lc0/releases

2) В своей работе Leela Chess Zero использует тренируемые разработчиками и пользователями нейросети.

Скачать сеть LCZero: https://lczero.org/networks/

Для скачивания доступно множества сетей и применить из них можно любую, но стоит обратить внимание, что последняя сеть не всегда является самой сильной. Ознакомиться с результатами тестов и найти идентификатор нужной сети можно в документе: https://docs.google.com/spreadsheets/d/1XSJiCcQpCLv0fNwrUn7jXjdkZFU63YFEWpdXv6dSSg0/edit#gid=312836954

Сеть, победившая в суперфинале TCEC 15 сезона: https://www.dropbox.com/s/rmcf0lf1hes10gi/256×20.T8-swa-610000?dl=0

Для Blas-версии движка рекомендуется использовать distilled-сети:

https://github.com/dkappe/leela-chess-weights/wiki/Distilled-Networks

Leela Chess Zero установить

Порядок установки под Windows

  • Скачивается и распаковывается необходимая последняя версия движка
  • В папку с распакованным движком помещается выбранная сеть
  • Драйвера видеокарты обновляются на свежие
  • Программа подключается к оболочке, как любой другой UCI-движок

Примечания:

  • Для оболочки Fritz может понадобиться патч, улучшающий загрузку нестандартных машин; для Fritz 15 – это патч 15.36
  • Помимо lcexe в архиве с движком имеется приложение client.exe; с его помощью пользователь может принять участие в обучении нейросетей LCZero – для игры и анализа с движком на ПК не требуется

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

Получить дополнительную информацию и задать интересующий вопрос по установке можно в соответствующей теме на русскоязычном форуме о заочных шахматах forchess.ru: https://forchess.ru/showthread.php?t=1089

Главная тема, посвященная LCZero, доступна по ссылке: https://forchess.ru/showthread.php?t=906

Официальная инструкция по установке от разработчика: http://blog.lczero.org/2018/09/guide-setting-up-leela-on-chess-gui.html

(1709)

ХОЧЕШЬ ОСТАВИТЬ СВОЙ КОММЕНТАРИЙ? ПИШИ НИЖЕ

Ваш e-mail не будет опубликован. Обязательные поля помечены *