- 11 Ноябрь 2020
-
28781
-
0
Leela Chess Zero
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). С каждым новым релизом движка его требования могут расти – чем мощнее видеокарта, тем эффективнее она себя проявит.
2) В своей работе Leela Chess Zero использует тренируемые разработчиками и пользователями нейросети.
Для скачивания доступно множества сетей и применить из них можно любую, но стоит обратить внимание, что последняя сеть не всегда является самой сильной.
Установить Leela Chess Zero
Порядок установки под Windows
- Скачивается и распаковывается необходимая последняя версия движка
- В папку с распакованным движком помещается выбранная сеть
- Драйвера видеокарты обновляются на свежие
- Программа подключается к оболочке, как любой другой UCI-движок
Примечания:
- Для оболочки Fritz может понадобиться патч, улучшающий загрузку нестандартных машин; для Fritz 15 – это патч 15.36
- Помимо lcexe в архиве с движком имеется приложение client.exe; с его помощью пользователь может принять участие в обучении нейросетей LCZero – для игры и анализа с движком на ПК не требуется
Начальная установка, как правило, проходит гладко, однако, судя по комментариям в среде пользователей, с дальнейшей работой и настройкой могут возникать трудности.
Получить дополнительную информацию и задать интересующий вопрос по установке можно в соответствующей теме на русскоязычном форуме о заочных шахматах forchess.ru