Лила Чесс Зеро - Leela Chess Zero

Лила Чесс Зеро
Лила Chess Zero logo.svg
Оригинальный автор (ы)Джан-Карло Паскутто, Гэри Линскотт
Разработчики)Гэри Линскотт, Александр Ляшук, Фолкерт Хейзинга и другие
изначальный выпуск9 января 2018 г.; 2 года назад (2018-01-09)
Стабильный выпуск
v0.25.3 / 10 октября 2020 г.; 2 месяца назад (2020-10-10)
Репозиторий Отредактируйте это в Викиданных
Написано вC ++
Операционная системаWindows, Mac, Linux, Ubuntu, Android
ТипШахматный двигатель
ЛицензияGPL-3.0
Интернет сайтlczero.org

Лила Чесс Зеро (сокращенно 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]

Сводка результатов

Чемпионат Top Chess Engine Championship (TCEC)[42]
Время года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-й


Кубок чемпионата Top Chess Engine (Кубок TCEC)[42]
МероприятиеРезультатПротивникСчет
Кубок 1 (2018)3-йКомодо0-0
Кубок 2 (2019)1-йГудини4.5-3.5
Кубок 3 (2019)1-йStockfish5.5-4.5
Кубок 4 (2019)2-йStockfish3.5-4.5
Кубок 5 (2020)2-йStockfish1.5-2.5
Кубок 6 (2020)2-йAllieStein1.5-2.5
Кубок 7 (2020)2-йStockfish1.5-2.5


Chess.com Чемпионат по компьютерным шахматам (СССС)
МероприятиеГодКонтроль времениРезультатСсылка
CCC 1: Rapid Rumble201815+53-й[43]
CCC 2: Блиц-битва20185+23-й[44]
CCC 3: Быстрый Redux201930+52-й[45]
CCC 4: Драка пули20191+22-й[46]
CCC 5: Эскалация201910+52-й[47]
CCC 6: Зимняя классика201910+102-й[48]
CCC 7: Blitz Bonanza20195+21-й[31]
CCC 8: Глубокое погружение201915+52-й[5]
CCC 9: Рукавица20195+2, 10+53-й[49]
CCC 10: двойные цифры201910+33-й[50]
CCC 11201930+51-й[51]
CCC 12: Bullet Madness!20201+11-й[52]
CCC 13: Формы20203+2, 5+5, 10+5, 15+51-й[53][54]
CCC 14202015+51-й[55]

Известные игры

Рекомендации

  1. ^ а б c d "Лила Чесс Зеро: Полный график Эло". Lczero.org. 7 марта 2019 г.. Получено 7 марта 2019.
  2. ^ "Лила-Зеро". GitHub. Получено 27 апреля 2018.
  3. ^ а б "LCZero". lczero.org. Получено 2019-05-28.
  4. ^ «Lc0 выигрывает чемпионат по компьютерным шахматам, делает историю». Chess.com. Получено 2019-05-29.
  5. ^ а б Пит (Пит). "Stockfish наносит ответный удар, возглавляет Lc0 в компьютерном чемпионате по шахматам". Chess.com. Получено 2019-05-29.
  6. ^ "Анонсируем lczero". TalkChess.com. Получено 11 июн 2018.
  7. ^ "Представляем lczero - TalkChess.com". www.talkchess.com. Получено 2019-03-21.
  8. ^ а б Сильвер, Дэвид; Хуберт, Томас; Шриттвизер, Джулиан; и другие. (6 декабря 2018 г.). «Общий алгоритм обучения с подкреплением, который овладевает шахматами, сёги и саморазвитием» (PDF). Наука. 362 (6419): 1140–1144. Bibcode:2018Научный ... 362.1140S. Дои:10.1126 / science.aar6404. PMID  30523106. S2CID  54457125.
  9. ^ "Бумага AlphaZero и Lc0 v0.19.1". 7 декабря 2018 г.. Получено 14 февраля 2019.
  10. ^ Кобаяши, Юки (2019-09-15), GitHub - kobanium / aobazero: Aoba Zero., получено 2019-09-25
  11. ^ а б "лила-шахматы-ноль". GitHub. Получено 11 мая 2020.
  12. ^ а б Переписанный движок, изначально предназначенный для tenorflow. Теперь сюда перенесены все остальные бэкенды: LeelaChessZero / lc0, LCZero, 20.03.2019, получено 2019-03-21
  13. ^ «Allie + Stein, новый движок на основе нейронной сети входит в TCEC S15».
  14. ^ «Breaking: Leela Chess Zero входит в 12-й сезон TCEC». Шахматный дом. 18 апреля 2018.
  15. ^ Смотрите архивы сезона 12 на http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
  16. ^ «Чемпионат мира по компьютерным шахматам 2018». ICGA. Получено 19 июля 2018.
  17. ^ а б Смотрите архив сезона 13 на http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
  18. ^ «Лила Чесс Зеро выигрывает золотую медаль в TCEC Div 4 | Chessdom». Получено 2019-03-21.
  19. ^ "Эфирный шахматный движок выигрывает золото на TCEC Div 3 | Chessdom". Получено 2019-03-21.
  20. ^ "Чемпионат Chess.com по компьютерным шахматам".
  21. ^ «Этап 2CCCC закончился. Лила 4-я с хорошей игрой! Stockfish непобежден!». Блог LCZero. 26 сентября 2018 г.. Получено 26 сентября 2018.
  22. ^ Чиленто, Пит (26 сентября 2018 г.). «Stockfish, Houdini Battle For Computer Chess Championship; Komodo vs Lc0 - третье место». Chess.com. Получено 9 октября 2018.
  23. ^ «Лила выигрывает серию матчей против Комодо и выигрывает игру с коэффициентами на пешку против Stockfish!». Блог LCZero. 3 октября 2018 г.. Получено 9 октября 2018.
  24. ^ Чиленто, Пит (4 октября 2018 г.). «Stockfish выиграл чемпионат по компьютерным шахматам по быстрым шахматам; Lc0 занял третье место». Chess.com. Получено 9 октября 2018.
  25. ^ Смотрите архивы TCEC Cup 1 по адресу http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
  26. ^ Чиленто, Пит (11 октября 2018 г.). «Чемпионат по компьютерным шахматам возвращается в блиц-битву». Chess.com. Получено 22 ноября 2018.
  27. ^ Чиленто, Пит (19 ноября 2018 г.). "Stockfish выиграл чемпионат по компьютерным шахматам по блицу". Chess.com. Получено 22 ноября 2018.
  28. ^ Смотрите архивы 14 сезона на http://tcec.chessdom.com/archive.php В архиве 2015-05-03 в Wayback Machine
  29. ^ Смотрите архивы TCEC Cup 2 на http://legacy-tcec.chessdom.com/archive.php
  30. ^ "Лила выиграла Кубок TCEC!". Блог LCZero. 4 февраля 2019 г.. Получено 12 февраля 2019.
  31. ^ а б Чиленто, Пит (17 апреля 2019 г.). «Lc0 выигрывает чемпионат по компьютерным шахматам, делает историю». Chess.com. Получено 18 апреля 2019.
  32. ^ Смотрите счет игры на https://www.tcec-chess.com/archive.html?season=cup3&round=fl&game=9
  33. ^ "Lc0 выиграл 15 TCEC". Блог LCZero. 28 мая 2019. Получено 28 мая 2019.
  34. ^ Хёги, Кевин (2 июня 2019 г.). «Новая эра компьютерных шахмат? Lc0 превосходит Stockfish!». шахматы24. Получено 25 июн 2019.
  35. ^ "Сезон 16, архив Div P". Получено 30 сентября 2019.
  36. ^ "Архив TCEC Cup 4". Получено 18 ноября 2019.
  37. ^ "Заключительный отчет TCEC".
  38. ^ "Архив TCEC сезона 18". Получено 3 июля 2020.
  39. ^ «Финал 6 Кубка TCEC». Шахматы TCEC. Получено 23 июля 2020.
  40. ^ "Сезон 19, архив Div SF". Получено 19 октября 2020.
  41. ^ "Stockfish 12". Блог Stockfish. Получено 19 октября 2020.
  42. ^ а б https://www.tcec-chess.com/archive.html
  43. ^ Чиленто, Пит. «Stockfish выиграл чемпионат по компьютерным шахматам по быстрым шахматам; Lc0 занял третье место». Chess.com. Получено 2019-06-20.
  44. ^ Чиленто, Пит. "Stockfish выиграл чемпионат по компьютерным шахматам по блицу". Chess.com. Получено 2019-06-20.
  45. ^ Чиленто, Пит. «Stockfish выигрывает чемпионат по быстрым компьютерным играм над Lc0; затем Bullet Chess». Chess.com. Получено 2019-06-20.
  46. ^ Чиленто, Пит. «Stockfish выигрывает Bullet чемпионата по компьютерным шахматам; следующий" Escalation "». Chess.com. Получено 2019-06-20.
  47. ^ [1]
  48. ^ Чиленто, Пит. «Чемпионат по компьютерным шахматам играет блиц после того, как Stockfish защищает титул». Chess.com. Получено 2019-06-20.
  49. ^ Чиленто, Пит (7 августа 2019 г.). «Stockfish выигрывает чемпионат по компьютерным шахматам, поскольку нейронные сети догоняют». Chess.com. Получено 19 сентября 2019.
  50. ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 19 сентября 2019.
  51. ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 23 декабря 2019.
  52. ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 23 января 2020.
  53. ^ «Чемпионат по компьютерным шахматам». Chess.com. Получено 14 апреля 2020.
  54. ^ Доггерс, Питер (18 апреля 2020 г.). «Лила Чесс Зеро победила Stockfish со счетом 106-94 в 13-м чемпионате Chess.com по компьютерным шахматам». Chess.com. Получено 24 апреля 2020.
  55. ^ «Результаты CCC14». Форматы CCC. Получено 19 августа 2020.

внешняя ссылка