Leela Chess Zero

Leela Chess Zero
ТипШаховий рушій
АвторГері Лінскотт
ЛіцензіяGPL-3.0
Репозиторійgithub.com/LeelaChessZero/lc0
Вебсайтlczero.org

Leela Chess Zero - шаховий рушій з вільним і відкритим вихідним кодом, а також проєкт з розподілених обчислень. Розробку рушія ініціював програміст Гері Лінскотт, який також є розробником шахового рушія Stockfish. Leela Chess Zero - це адаптація для гри в шахи рушія Leela Zero, створеного для гри у ґо[1], який своєю чергою ґрунтувався на проєкті AlphaGo Zero компанії Google,[2] також для перевірки методів, описаних в документі команди DeepMind, щодо тренування методом глибокого навчання з підкріпленням рушія AlphaZero для гри в шахи.

Подібно до Leela Zero і AlphaGo Zero, в програму Leela Chess Zero закладено лише базові правила гри в шахи. Leela Chess Zero тренується зусиллями розподіленої обчислювальної мережі, яка координується сайтом Leela Chess Zero. Станом на квітень 2018 року вона підготувала себе, зігравши понад 8,2 мільйона партій проти самої себе.

Розробка і тренування

Програма Leela Chess Zero тренується за допомогою глибокого навчання з підкріпленням, яке будує нейронну мережу, що для вибору кращих варіантів використовує пошук по дереву методом Монте-Карло. В основі її роботи закладений такий самий принцип, що й у її попередниці, програми AlphaZero. Перед початком тренувань програмі задають лише базові правила шахів. Починаючи з нульового рівня, LCZero грає сама проти себе мільйони ігор, створюючи на основі них нові мережі, рівень гри яких поступово посилюється. Цей метод навчання кардинально відрізняється від того, який застосовувався упродовж попередніх кількох десятків років історії комп'ютерних шахів[1].

У грудні 2017 року програма AlphaZero, використовуючи цей метод, після чотирьох годин самонавчання, зіграла проти найсильнішої на той момент програми Stockfish матч зі 100 партій, в якому здобула переконливу перемогу, з початкового положення вигравши 25 партій білими, вигравши 3 партії чорними та звівши внічию решту 72.[3] Команда DeepMind випустила документ під назвою "Навчання гри в шахи та сьоґі за допомогою гри з самим собою, використовуючи загальний алгоритм навчання з підкріпленням", в якому детально описала метод навчання AlphaZero[1].

Ініціатором проєкт Leela Chess Zero став Гері Лінскотт, який за кілька років до того зробив Stockfish найсильнішою програмою. Для швидкого тренування програми AlphaZero команда DeepMind використовувала дуже потужне обладнання, яке недоступне звичайним користувачам. Тому він вирішив зібрати команду волонтерів, яка б змогла об'єднати свої зусилля за допомогою розподілених обчислень, хоча й це вимагає багатьох місяців тренувань. Про цю ініціативу він вперше оголосив на TalkChess.com 9 січня 2018 року[4]. За словами Лінскотта, на таке рішення його надихнув результат матчу між AlphaZero і Stockfish, в результати якого традиційний шаховий рушій вперше за двадцять років зазнав поразки, а також публікація командою DeepMind документу, який було взято за основу нової програми[1].

Лінскотт написав код сервера і клієнта і розмістив його на GitHub. Це дало можливість всіх охочим запускати через інтернет в себе на комп'ютері клієнт і таким чином жертвувати обчислювальні можливості своїх власних комп'ютерів для тренування LCZeero. Крім того, волонтери не лише виділяють власне "залізо", але й допомагають вдосконалювати роботу сервера і поліпшувати код програми[1].

Практика тренувань LCzero показала, що для її тренувань і гри набагато краще підходить графічний процесор (GPU), ніж просто центральний процесор (CPU). Спочатку для її тренувань використовувалися набагато менші мережі (10x128 після двох місяців), ніж для тренування AlphaZero (20x256)[1].

Упродовж перших кількох місяців тренувань Leela Chess Zero досягнула гросмейстерського рівня, що перевершує за силою ранні версії Stockfish і Komodo, попри використання пошуку по дереву методом Монте-Карло (MCTS), який перевіряє на кілька порядків менше позицій, ніж ці програми.

Участь у змаганнях

У квітні 2018 року Leela стала першим нейромережевим рушієм, який взяв участь у Чемпіонаті провідних шахових рушіїв (TCEC) (12-му за ліком) у найнижчому дивізіоні 4. Її участь стала можливою завдяки тому, що учасник 3-го дивізіону Defenchess в останній момент знявся зі змагань і його місце, завдяки результату в TCEC-11, зайняв учасник 4-го дивізіону ChessBrainVB, звільнивши своє місце для Leela. У турнірі змагалася версія LCZero ID 125, яка подібно до інших програм використовувала CPU[5]. Leela невдало виступила на турнірі: у 28 матчах 4-го дивізіону виграла одну партію, дві звела внічию і програла решту; її єдина перемога відбулася в партії з супротивником Scorpio 2.82, який вийшов з ладу.[6]

У липні 2018 року Leela взяла участь у Чемпіонат світу з комп'ютерних шахів 2018, де посіла 7-ме місце серед восьми учасників.[7]

В 4-му дивізіоні сезону TCEC 13 взяла участь версія Leela ID 10161[8]. На відміну від інших рушіїв і попередніх змагань ця версія грала на GPU, який набагато краще підходить під алгоритм LCZero. Змагання розпочала з найнижчого, 4-го, дивізіону, в якому посіла 1-ше місце з результатом 14 перемог, 12 нічиїх і 2 поразки.[9] Завдяки цьому пройшла у 3-й дивізіон (вже новіша версія ID 10520[10]), в якому здобула 7 перемог, 18 партій звела внічию і зазнала 2 поразок. В боротьбі за 2-ге місце, яке давало право виходу до 2-го дивізіону, поступилась рушієві Arasan за рахунок особистих зустрічей, хоча й набрала однакову з ним кількість очок.[9] Крім Leela у турнірі взяв участь ще один нейромережевий рушій Deus X. Організатори забезпечили їх окремим процесором GPU 2x GTX 1080 Ti, тоді як інші рушії грали на 44-ядерному CPU 2 x Intel Xeon E5 2699 v4 @ 2.8 GHz[11]. У 4-му дивізіоні Deus X посів 2-ге місце і також вийшов у 3-й дивізіон[8]. Слід зауважити, що нейромережеві рушії могли виступити краще і потрапити до 2-го дивізіону, але виступили в 3-му дивізіоні не на повну силу через проблему з GPU, яку організатори помітили лише після того, як Leela вийшла з ладу. До усунення несправності Leela набрала лише 11 з 21 очка, тоді як після цього - 5 із 7[12].

Версія LCZero 17.11089 взяла участь у Чемпіонаті Chess.com серед шахових програм 2018 (CCCC)[13]. В першому колі посіла 5-те місце серед 24 учасників. Перші восьмеро рушіїв вийшли до 2-го кола, де Leela посіла 4-те місце після Stockfish, Houdini і Komodo 2.1.1.8, ледве поступившись останньому в боротьбі за 3-тє місце[14]. Перші два кола показали, що чим сильніший суперник, тим сильніший середній рівень гри показує Leela. Вона набагато сильніше, ніж інші рушії, зіграла проти першої трійки (+2; -3; =31), тоді як проти інших учасників показала слабший рівень гри. Поясненням цього може бути те, що Leela час від часу, через недостатню кількість тренувальних партій, припускається грубих як для такого рівня помилок, через які може поступитись навіть порівняно слабшому рушієві, а провівши партію без помилок може перемогти сильного. На відміну від інших рушіїв, вона не використовувала баз даних ендшілю, тому не змогла довести до перемоги три виграшні партії. В низці інших партій, зокрема проти Stockfish, мала виграшну позицію, яку довела б до перемоги, якби в турнірі брала участь вже наявна новіша версія програми, озброєна ендшпільною базою даних[15]. В додатковому матчі з 30-партій за третє місце Leela перемогла Komodo з рахунком 16:14 (+5; -3; =22)[16].

Примітки

  1. а б в г д е Silver, Albert (26 квітня 2018). Leela Chess Zero: AlphaZero for the PC. Chess News. Архів оригіналу за 12 червня 2018. Процитовано 11 червня 2018.
  2. leela-zero. GitHub. Архів оригіналу за 16 жовтня 2018. Процитовано 27 квітня 2018.
  3. 'Superhuman' Google AI claims chess crown. BBC News. 6 грудня 2017. Архів оригіналу за 8 грудня 2017. Процитовано 7 грудня 2017.
  4. Announcing lczero. TalkChess.com (брит.). Архів оригіналу за 12 червня 2018. Процитовано 11 червня 2018.
  5. Breaking: Leela Chess Zero enters TCEC Season 12. Chessdom. 18 квітня 2018. Архів оригіналу за 10 липня 2018. Процитовано 6 липня 2018.
  6. Див. архів 12-го сезону на http://tcec.chessdom.com/archive.php [Архівовано 3 травня 2015 у Wayback Machine.]
  7. World Computer Chess Championship 2018. ICGA. Архів оригіналу за 27 червня 2020. Процитовано 19 липня 2018.
  8. а б TCEC Season 13 - Division 4. Архів оригіналу за 7 жовтня 2018. Процитовано 7 жовтня 2018.
  9. а б Див. архів 13-го сезону на http://tcec.chessdom.com/archive.php [Архівовано 3 травня 2015 у Wayback Machine.]
  10. Season 13 division 3 final results. Архів оригіналу за 7 жовтня 2018. Процитовано 7 жовтня 2018.
  11. TCEC Season 13 – the advance of the NNs (updated). Архів оригіналу за 21 лютого 2019. Процитовано 7 жовтня 2018.
  12. TCEC Season 13 Division 3 Results (Controversy Explained). Архів оригіналу за 7 жовтня 2018. Процитовано 7 жовтня 2018.
  13. Chess.com Computer Chess Championship. Архів оригіналу за 2 листопада 2018. Процитовано 6 жовтня 2018.
  14. CCCC stage 2 ended. Leela 4th with a good performance! Stockfish undefeated!. LCZero Blog. 26 вересня 2018. Архів оригіналу за 27 вересня 2018. Процитовано 26 вересня 2018.
  15. CCCC stage 2 ended. Leela 4th with a good performance! Stockfish undefeated!. Архів оригіналу за 27 вересня 2018. Процитовано 6 жовтня 2018.
  16. Stockfish Wins Computer Chess Championship Rapid; Lc0 Finishes 3rd. Архів оригіналу за 6 жовтня 2018. Процитовано 6 жовтня 2018.

Посилання