Лила Чесс Зеро - Leela Chess Zero
Оригинальный автор (ы) | Джан-Карло Паскутто, Гэри Линскотт |
---|---|
Разработчики) | Гэри Линскотт, Александр Ляшук, Фолкерт Хейзинга и другие |
изначальный выпуск | 9 января 2018 г. |
Стабильный выпуск | v0.25.3 / 10 октября 2020 г. |
Репозиторий | |
Написано в | C ++ |
Операционная система | Windows, Mac, Linux, Ubuntu, Android |
Тип | Шахматный двигатель |
Лицензия | GPL-3.0 |
Интернет сайт | lczero |
Эта статья является частью серии статей о |
Шахматное программирование |
---|
Представительства Совета |
Шахматные компьютеры |
Шахматные движки |
Лила Чесс Зеро (сокращенно LCZero, lc0) это бесплатно, с открытым исходным кодом, и нейронная сеть -основан шахматный двигатель и распределенных вычислений проект. Разработкой руководил программист Гэри Линскотт, который также является разработчиком Шахматный движок Stockfish. Leela Chess Zero была адаптирована из Лила Зеро Идти двигатель,[1] который, в свою очередь, был основан на Google с AlphaGo Zero проект,[2] также для проверки методов в AlphaZero бумага применительно к игре в шахматы.
Как и Лила Зеро и AlphaGo Zero, Лила Chess Zero начинает игру без каких-либо специфических шахматных знаний, кроме основных правил игры.[1] Затем Лила Чесс Зеро учится играть в шахматы, обучение с подкреплением от многократной игры с самим собой, используя распределенную вычислительную сеть, координируемую на веб-сайте Leela Chess Zero.
По состоянию на 2020 год[Обновить], Лила Chess Zero сыграла против самой себя более 300 миллионов партий,[3] и способен играть на уровне, сравнимом с Stockfish, ведущая традиционная шахматная программа.[4][5]
История
О проекте Leela Chess Zero впервые было объявлено на TalkChess.com 9 января 2018 года.[1][6] Это показало, что Leela Chess Zero представляет собой самообучающийся шахматный движок с открытым исходным кодом, который впоследствии стал известен как создание сильного шахматного движка.[7] За первые несколько месяцев обучения Лила Chess Zero уже достигла Гроссмейстер уровень, превосходящий по силе ранние выпуски Рыбка, Stockfish и Комодо, несмотря на то, что оценивает на порядки меньше позиций при использовании MCTS.
В декабре 2018 г. AlphaZero команда опубликовала новую статью в Наука Журнал раскрывает ранее не разглашаемые детали архитектуры и параметров обучения, используемых для AlphaZero.[8] Эти изменения вскоре были включены в Leela Chess Zero и повысили ее силу и эффективность тренировок.[9]
Работа над Leela Chess Zero проинформировала аналогичный проект AobaZero для сёги.[10]
Движок был переписан и тщательно переработан с момента его создания, и теперь он работает на нескольких бэкэнды, что позволяет эффективно использовать различные типы оборудования, как ЦП, так и ГП.[11]
Двигатель поддерживает Шахматы Фишера вариант, и сеть проходит обучение для проверки жизнеспособности такой сети с мая 2020 года.[11]
Программа и использование
Метод, используемый его разработчиками, чтобы заставить Лилу Chess Zero самоучиться и играть в шахматы на уровне выше человеческого, является обучение с подкреплением. Это алгоритм машинного обучения, отраженный от AlphaZero используется обучающей программой Leela Chess Zero для максимального увеличения вознаграждения за счет самостоятельной игры.[1][8] В качестве проекта распределенных вычислений с открытым исходным кодом пользователи-добровольцы запускают Leela Chess Zero, чтобы играть в сотни миллионов игр, которые передаются алгоритму подкрепления.[3] Чтобы внести свой вклад в развитие движка Leela Chess Zero, необходимо загрузить последнюю версию движка, не являющуюся кандидатом на выпуск (без rc), а также клиент. Клиент необходим для подключения к текущему серверу Leela Chess Zero, где хранится вся информация из самостоятельных шахматных партий, для получения последней сети, создания игр для самостоятельной игры и загрузки данных тренировки обратно в сервер.[12]
Чтобы играть против движка Leela Chess Zero на машине, необходимы 2 компонента: бинарный движок и сеть (бинарный движок отличается от клиента тем, что клиент используется в качестве обучающей платформы для движка) . Сеть содержит оценочную функцию Leela Chess Zero, которая необходима для оценки позиций.[12] Старые сети также можно загрузить и использовать, поместив эти сети в папку с двоичным файлом lc0.
Самостоятельная игра Эло
Самостоятельная игра Эло используется для измерения относительной силы сети для поиска аномалий и общих изменений в силе сети, а также может использоваться в качестве диагностического инструмента при значительных изменениях. Посредством игр с тестовыми матчами, в которые играют с минимальными колебаниями на основе температуры, клиенты движка lc0 проверяют самую последнюю версию на сравнении с другими последними версиями той же сети, которая затем отправляется на обучающий сервер для создания общей оценки Elo.
Стандартные формулы Эло используются для расчета относительной силы Эло между двумя игроками. В более поздних расчетах Elo для самостоятельной игры используются результаты матчей для нескольких сетевых версий, чтобы вычислить более точное значение Elo.
Есть несколько непредвиденных последствий подхода самостоятельной игры к измерению силы, а именно:
- Разные масштабы начального повышения Эло в тренировочных пробегах из-за периодов более низкого / высокого самосовершенствования и состязательной игры.
- Сила, измеренная таким образом, не является объективной и связана с предыдущими сетями, что позволяет создать ложную иллюзию обретенной силы, поскольку сети обучены побеждать и предвидеть действия своих прошлых «я».
- Переоснащение по сравнению с предыдущими сетевыми версиями Lc0 непрерывно добавляет небольшие количества самоигрывания Elo к совокупному измеренному Elo. Такое переоснащение обычно более четко видно при обучении небольших сетей.
- Не существует прямой корреляции один-к-одному между эло для самостоятельной игры и силой против альфа-бета-двигателей, а также нет известной корреляции с силой против людей.
- Изменения поведения в сетях между запусками влияют на инфляцию.
Примером раздувания elo для самостоятельной игры является запуск Test 71.4 (названный как 714xxx nets), запуск случайных шахмат Фишера, в котором почти 4000 кумулятивных сеток elo 76 для самостоятельной игры после начала его запуска. Оценки Эло для самостоятельной игры в этом прогоне можно примерно сравнить с другими прогонами, чтобы оценить непрактичность чистого кумулятивного эло для самостоятельной игры. Чистое elo-сравнение с одной из проверок 60, объединяющих 3000 сеток в забеге, показывает, что 63000 может постоянно побеждать 714070 в большинстве личных встреч, если не во всех «честных» контролях времени. Тем не менее, 63000 сетей из прогона Теста 60 имеют Эло для самостоятельной игры около 2900, в то время как Эло для самостоятельной игры из раннего Теста 71.4 уже около 4000. Этого противоречия с силой Эло для самостоятельной игры достаточно, чтобы оправдать утверждение, что самообладание. игра Эло не является объективной мерой силы и не позволяет легко сравнивать силу сети с силой Человека.
Рейтинг самостоятельной игры для движка можно использовать как грубое приближение к обычным рейтингам человеческого Эло, однако универсальной формулы преобразования не существует по многим причинам. К ним относятся, но не ограничиваются масштабом начального раздувания Эло самостоятельной игры и позднего раздувания Эло самостоятельной игры между тренировочными прогонами, различного контроля времени, различных систем измерения Эло между платформами шахматных турниров, выделенных ресурсов для движка. размер и структура сети, набор обучающих данных сети и множество факторов, сила которых определяется двоичным кодом движка.
Настройка движка для воспроизведения одного узла с `` --minibatch-size = 1 '' и `` go nodes 1 '' для каждого сыгранного хода создает детерминированную игру, и самоигрывание elo при таких настройках всегда будет давать одно и то же. результат между двумя одинаковыми сетями в одной и той же начальной позиции - всегда выигрыш, всегда проигрыш или всегда ничья. Эло для самостоятельной игры не является надежным средством определения силы в этих детерминированных обстоятельствах.
Варианты
В 15 сезоне Чемпионат Top Chess Engine Двигатель AllieStein соревновался вместе с Лилой. AllieStein - это комбинация двух разных спин-оффов от Leela: Allie, которая использует ту же сеть оценки, что и Leela, но имеет уникальный алгоритм поиска для изучения различных линий игры, и Stein, сеть оценки, которая была обучена с использованием контролируемое обучение на основе существующих игровых данных с другими движками (в отличие от обучение без учителя который использует Лила). Хотя ни один из этих проектов не будет допущен к TCEC по отдельности из-за их сходства с Leela, комбинация алгоритма поиска Allie с сетью Stein, называемая AllieStein, достаточно уникальна, чтобы гарантировать, что она конкурирует с основным Lc0 (правила TCEC требуют, чтобы нейронная сетевой движок имеет как минимум 2 уникальных компонента из 3 основных функций: код, оценивающий сеть, саму сеть и алгоритм поиска. В то время как AllieStein использует тот же код для оценки своей сети, что и Lc0, поскольку два других компонента свежие, AllieStein считается отличным движком). [13]
Результаты конкурса
В апреле 2018 года Leela Chess Zero стала первым движком нейронной сети, вошедшим в Чемпионат Top Chess Engine (TCEC), в течение сезона 12 в низшем дивизионе, дивизионе 4.[14] Лила плохо выступила: в 28 играх она выиграла одну, сыграла вничью две и проиграла оставшуюся часть; его единственная победа пришлась на позицию, в которой его противник, Скорпион 2,82, разбился за три хода.[15] Однако ситуация быстро улучшилась. В июле 2018 года Лила заняла седьмое место из восьми участников конкурса 2018 года. Чемпионат мира по компьютерным шахматам.[16] В августе 2018 года он выиграл четвертый дивизион 13 сезона TCEC с рекордом в 14 побед, 12 ничьих и 2 поражения.[17][18] В 3-м дивизионе Лила набрала 16/28 очков, заняв третье место после Ethereal, набравшего 22,5 / 28 очков, и Арасана на тай-брейке.[19][17]
К сентябрю 2018 года Лила стала конкурентоспособной с самыми мощными двигателями в мире. На чемпионате Chess.com по компьютерным шахматам (СССС) 2018 г.[20] Лила заняла пятое место из 24 участников. Восемь лучших двигателей прошли во второй раунд, где Лила заняла четвертое место.[21][22] Затем Лила выиграла матч из 30 игр у Комодо чтобы обеспечить третье место в турнире.[23][24] Одновременно Лила приняла участие в кубке TCEC, новом мероприятии, в котором двигатели из разных подразделений TCEC могут играть друг против друга. Лила победила двигатели высшего дивизиона Laser, Ethereal и Fire, прежде чем, наконец, была выбита Stockfish в полуфинале.[25]
В октябре и ноябре 2018 года Лила участвовала в турнире по блиц-битве Chess.com Computer Chess Championship.[26] Лила заняла третье место после Стокфиша и Комодо.[27]
В декабре 2018 года Лила участвовала в 14 сезон Чемпионата Top Chess Engine Championship. Лила доминировала в 3, 2 и 1 дивизионах, легко заняв первое место во всех из них. В высшем дивизионе доминировал Stockfish, а Гудини, Комодо и Лила боролись за второе место. Все сводилось к игре финального раунда, где Лиле нужно было удержать Stockfish до ничьей черными, чтобы финишировать вторым, опередив Комодо. Он успешно справился с этим и поэтому оспорил суперфинал против Stockfish. Он чуть не проиграл в суперфинале Stockfish с финальным счетом 49,5-50,5.[28]
В феврале 2019 года Лила одержала свою первую крупную победу в турнире, победив Гудини в финале второго кубка TCEC. Лила не проиграла ни одной партии за весь турнир.[29][30] В апреле 2019 года Лила выиграла Chess.com Computer Chess Championship 7: Blitz Bonanza, став первым проектом нейронной сети, получившим титул.[31]
В мае 2019 года Лила защитила свой титул кубка TCEC, на этот раз победив Stockfish в финале 5.5-4.5 (+2 = 7-1) после того, как Stockfish ошибся с семеркой. основание стола рисовать.[32] Лила также выиграла Суперфинал 15 сезон Чемпионата Top Chess Engine Championship 53,5-46,5 (+14-7 = 79) против Stockfish.[33][34]
16 сезон TCEC Лила заняла 3-е место в высшем дивизионе, пропустив квалификацию в суперфинале из-за Stockfish и нового движка нейронной сети AllieStein. Лила не понесла никаких потерь в Премьер-дивизионе, единственном двигателе, способном это сделать, и победила Стокфиша в одной из шести сыгранных игр. Однако Лиле удалось одержать только 9 побед, в то время как AllieStein и Stockfish одержали по 14 побед. Эта неспособность победить более слабые двигатели привела к тому, что Лила финишировала 3-й, на пол-очка позади AllieStein и на одно очко позади Stockfish.[35] В четвертом кубке TCEC Лила была посеяна первой в качестве действующего чемпиона, что поместило ее на противоположную половину сетки, как и AllieStein и Stockfish. Лила смогла выйти в финал, где встретилась со Stockfish. После семи ничьих Stockfish выиграл восьмую игру и выиграл матч.[36]
В 17 сезон TCEC В январе-апреле 2020 года Лила вернула себе чемпионство, победив Stockfish 52,5-47,5.[37] Он снова вышел в суперфинал в 18 сезон, но на этот раз Stockfish проиграл 53,5-46,5.[38] В финале TCEC Cup 6 Лила проиграла AllieStein, заняв 2-е место.[39]
19 сезон TCEC увидел, что Лила снова вышла в суперфинал. На этот раз он играл против новой версии Stockfish с поддержкой NNUE, функция оценки на основе нейронной сети, используемая в основном для конечных узлов дерева поиска. Он победил Лилу с финальным счетом 54,5-45,5 (+ 18-9 = 73).[40][41]
Сводка результатов
Время года | 4-й дивизион | Дивизион 3 | Дивизион 2 | Дивизион 1 | Дивизион P | Суперфинал |
---|---|---|---|---|---|---|
12 (2018) | 8-е | – | – | – | – | – |
13 (2018) | 1-й | 3-й | – | – | – | – |
14 (2018) | – | 1-й | 1-й | 1-й | 2-й | 2-й |
15 (2019) | – | – | – | – | 2-й | 1-й |
16 (2019) | – | – | – | – | 3-й | – |
17 (2020) | – | – | – | – | 1-й | 1-й |
18 (2020) | – | – | – | – | 2-й | 2-й |
19 (2020) | – | – | – | – | 2-й | 2-й |
Мероприятие | Результат | Противник | Счет |
---|---|---|---|
Кубок 1 (2018) | 3-й | Комодо | 0-0 |
Кубок 2 (2019) | 1-й | Гудини | 4.5-3.5 |
Кубок 3 (2019) | 1-й | Stockfish | 5.5-4.5 |
Кубок 4 (2019) | 2-й | Stockfish | 3.5-4.5 |
Кубок 5 (2020) | 2-й | Stockfish | 1.5-2.5 |
Кубок 6 (2020) | 2-й | AllieStein | 1.5-2.5 |
Кубок 7 (2020) | 2-й | Stockfish | 1.5-2.5 |
Мероприятие | Год | Контроль времени | Результат | Ссылка |
---|---|---|---|---|
CCC 1: Rapid Rumble | 2018 | 15+5 | 3-й | [43] |
CCC 2: Блиц-битва | 2018 | 5+2 | 3-й | [44] |
CCC 3: Быстрый Redux | 2019 | 30+5 | 2-й | [45] |
CCC 4: Драка пули | 2019 | 1+2 | 2-й | [46] |
CCC 5: Эскалация | 2019 | 10+5 | 2-й | [47] |
CCC 6: Зимняя классика | 2019 | 10+10 | 2-й | [48] |
CCC 7: Blitz Bonanza | 2019 | 5+2 | 1-й | [31] |
CCC 8: Глубокое погружение | 2019 | 15+5 | 2-й | [5] |
CCC 9: Рукавица | 2019 | 5+2, 10+5 | 3-й | [49] |
CCC 10: двойные цифры | 2019 | 10+3 | 3-й | [50] |
CCC 11 | 2019 | 30+5 | 1-й | [51] |
CCC 12: Bullet Madness! | 2020 | 1+1 | 1-й | [52] |
CCC 13: Формы | 2020 | 3+2, 5+5, 10+5, 15+5 | 1-й | [53][54] |
CCC 14 | 2020 | 15+5 | 1-й | [55] |
Известные игры
- Лила против Стокфиш, бонусные игры CCCC, 1: 0 Лила побеждает чемпиона мира по движку Stockfish, несмотря на гандикап в одну пешку.
- Стокфиш против Лилы Чесс Зеро || Суперфинал TCEC S15 - Игра 61 Лила полностью переиграла Stockfish черными фигурами в атаке Тромповского, eval у Лилы упал с 0,1 до -1,2 за один ход, а eval не стал отрицательным до 15 ходов спустя.
Рекомендации
- ^ а б c d "Лила Чесс Зеро: Полный график Эло". Lczero.org. 7 марта 2019 г.. Получено 7 марта 2019.
- ^ "Лила-Зеро". GitHub. Получено 27 апреля 2018.
- ^ а б "LCZero". lczero.org. Получено 2019-05-28.
- ^ «Lc0 выигрывает чемпионат по компьютерным шахматам, делает историю». Chess.com. Получено 2019-05-29.
- ^ а б Пит (Пит). "Stockfish наносит ответный удар, возглавляет Lc0 в компьютерном чемпионате по шахматам". Chess.com. Получено 2019-05-29.
- ^ "Анонсируем lczero". TalkChess.com. Получено 11 июн 2018.
- ^ "Представляем lczero - TalkChess.com". www.talkchess.com. Получено 2019-03-21.
- ^ а б Сильвер, Дэвид; Хуберт, Томас; Шриттвизер, Джулиан; и другие. (6 декабря 2018 г.). «Общий алгоритм обучения с подкреплением, который овладевает шахматами, сёги и саморазвитием» (PDF). Наука. 362 (6419): 1140–1144. Bibcode:2018Научный ... 362.1140S. Дои:10.1126 / science.aar6404. PMID 30523106. S2CID 54457125.
- ^ "Бумага AlphaZero и Lc0 v0.19.1". 7 декабря 2018 г.. Получено 14 февраля 2019.
- ^ Кобаяши, Юки (2019-09-15), GitHub - kobanium / aobazero: Aoba Zero., получено 2019-09-25
- ^ а б "лила-шахматы-ноль". GitHub. Получено 11 мая 2020.
- ^ а б Переписанный движок, изначально предназначенный для tenorflow. Теперь сюда перенесены все остальные бэкенды: LeelaChessZero / lc0, LCZero, 20.03.2019, получено 2019-03-21
- ^ «Allie + Stein, новый движок на основе нейронной сети входит в TCEC S15».
- ^ «Breaking: Leela Chess Zero входит в 12-й сезон TCEC». Шахматный дом. 18 апреля 2018.
- ^ Смотрите архивы сезона 12 на http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
- ^ «Чемпионат мира по компьютерным шахматам 2018». ICGA. Получено 19 июля 2018.
- ^ а б Смотрите архив сезона 13 на http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
- ^ «Лила Чесс Зеро выигрывает золотую медаль в TCEC Div 4 | Chessdom». Получено 2019-03-21.
- ^ "Эфирный шахматный движок выигрывает золото на TCEC Div 3 | Chessdom". Получено 2019-03-21.
- ^ "Чемпионат Chess.com по компьютерным шахматам".
- ^ «Этап 2CCCC закончился. Лила 4-я с хорошей игрой! Stockfish непобежден!». Блог LCZero. 26 сентября 2018 г.. Получено 26 сентября 2018.
- ^ Чиленто, Пит (26 сентября 2018 г.). «Stockfish, Houdini Battle For Computer Chess Championship; Komodo vs Lc0 - третье место». Chess.com. Получено 9 октября 2018.
- ^ «Лила выигрывает серию матчей против Комодо и выигрывает игру с коэффициентами на пешку против Stockfish!». Блог LCZero. 3 октября 2018 г.. Получено 9 октября 2018.
- ^ Чиленто, Пит (4 октября 2018 г.). «Stockfish выиграл чемпионат по компьютерным шахматам по быстрым шахматам; Lc0 занял третье место». Chess.com. Получено 9 октября 2018.
- ^ Смотрите архивы TCEC Cup 1 по адресу http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
- ^ Чиленто, Пит (11 октября 2018 г.). «Чемпионат по компьютерным шахматам возвращается в блиц-битву». Chess.com. Получено 22 ноября 2018.
- ^ Чиленто, Пит (19 ноября 2018 г.). "Stockfish выиграл чемпионат по компьютерным шахматам по блицу". Chess.com. Получено 22 ноября 2018.
- ^ Смотрите архивы 14 сезона на http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
- ^ Смотрите архивы TCEC Cup 2 на http://legacy-tcec.chessdom.com/archive.php
- ^ "Лила выиграла Кубок TCEC!". Блог LCZero. 4 февраля 2019 г.. Получено 12 февраля 2019.
- ^ а б Чиленто, Пит (17 апреля 2019 г.). «Lc0 выигрывает чемпионат по компьютерным шахматам, делает историю». Chess.com. Получено 18 апреля 2019.
- ^ Смотрите счет игры на https://www.tcec-chess.com/archive.html?season=cup3&round=fl&game=9
- ^ "Lc0 выиграл 15 TCEC". Блог LCZero. 28 мая 2019. Получено 28 мая 2019.
- ^ Хёги, Кевин (2 июня 2019 г.). «Новая эра компьютерных шахмат? Lc0 превосходит Stockfish!». шахматы24. Получено 25 июн 2019.
- ^ "Сезон 16, архив Div P". Получено 30 сентября 2019.
- ^ "Архив TCEC Cup 4". Получено 18 ноября 2019.
- ^ "Заключительный отчет TCEC".
- ^ "Архив TCEC сезона 18". Получено 3 июля 2020.
- ^ «Финал 6 Кубка TCEC». Шахматы TCEC. Получено 23 июля 2020.
- ^ "Сезон 19, архив Div SF". Получено 19 октября 2020.
- ^ "Stockfish 12". Блог Stockfish. Получено 19 октября 2020.
- ^ а б https://www.tcec-chess.com/archive.html
- ^ Чиленто, Пит. «Stockfish выиграл чемпионат по компьютерным шахматам по быстрым шахматам; Lc0 занял третье место». Chess.com. Получено 2019-06-20.
- ^ Чиленто, Пит. "Stockfish выиграл чемпионат по компьютерным шахматам по блицу". Chess.com. Получено 2019-06-20.
- ^ Чиленто, Пит. «Stockfish выигрывает чемпионат по быстрым компьютерным играм над Lc0; затем Bullet Chess». Chess.com. Получено 2019-06-20.
- ^ Чиленто, Пит. «Stockfish выигрывает Bullet чемпионата по компьютерным шахматам; следующий" Escalation "». Chess.com. Получено 2019-06-20.
- ^ [1]
- ^ Чиленто, Пит. «Чемпионат по компьютерным шахматам играет блиц после того, как Stockfish защищает титул». Chess.com. Получено 2019-06-20.
- ^ Чиленто, Пит (7 августа 2019 г.). «Stockfish выигрывает чемпионат по компьютерным шахматам, поскольку нейронные сети догоняют». Chess.com. Получено 19 сентября 2019.
- ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 19 сентября 2019.
- ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 23 декабря 2019.
- ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 23 января 2020.
- ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 14 апреля 2020.
- ^ Доггерс, Питер (18 апреля 2020 г.). «Лила Чесс Зеро победила Stockfish со счетом 106-94 в 13-м чемпионате Chess.com по компьютерным шахматам». Chess.com. Получено 24 апреля 2020.
- ^ «Результаты CCC14». Форматы CCC. Получено 19 августа 2020.