Leela Zero vs KataGo. Почему пришло время КатаГо?
Автор статьи: Руслан Холодов
Зададимся несколькими вопросами и сами же на них ответим.
1) Почему пора переходить с Leela Zero на KataGo?
Во-первых, потому что все активно поддерживаемые модели КатаГо сильнее, чем самые последние модели Лилы размером 40 блоков: Ката размером и 20 блоков х 256 фильтров, и 40 блоков х 256 фильтров и сильнейшая «толстушка» из 30 блоков х 320 фильтров. Монстр размером 40 блоков х 384 фильтра ещё не был выложен в открытый доступ.
Во-вторых, потому что «маленькие» сети КатаГо, 15 и 20 блоков, намного сильнее аналогичных версий Лилы от bjiyxo и bubblseld. Это немаловажно для обладателей не самого сильного железа. 15-блоковая версия КатаГо по силе примерно равна ELF OpenGo v2, в то время как Эльф всё ещё сильнее, чем самая свежая 20-блоковая версия Лилы.
В-третьих, почему важно тренироваться и изучать варианты с более сильным ботом? Ответ простой: его оценочная функция превосходит конкурентов, и он выбирает более сильные, лучшие ходы, что и доказывает в личных матчах.
Простой пример. Задайте вопрос шахматному тренеру или действующему игроку: с каким ИИ лучше тренироваться – с последней версией Стокфиша или морально устаревшей Рыбкой? Ответ предсказуем, и он не в пользу старых программ.
Для го всё работает точно так же. Ответ лучших китайских профессионалов однозначен: рассчитывая на успех в обучении, нужно учиться у лучших из доступных компьютерных программ.
Утверждения, что в го можно тренироваться с чем попало, лишь бы сильнее человека, вызывает у них лишь горькую ухмылку и насмешки с «этих европейцев».
Лучшей, наиболее разносторонней и сильнейшей го-программой с открытым исходным кодом в 2020 году является KataGo.
2) Нужно ли полностью отказываться от привычной Leela Zero?
Нет, не нужно. Команда Лилы Зеро обучала её с привлечением игрового материала от ELF v2 и, таким образом, научила Лилу сложной дзёсэке Летающий нож (она же Flying knife или Flying dagger). До тех пор, пока молодая КатаГо не обучится ей на том же Эльфовско-Лиловском уровне, имеет смысл использовать Лилу для анализа этого углового розыгрыша.
С практической стороны на данный момент вопрос Летающего ножа был решён разработчиком КатаГо Дэвидом Ву с помощью простенького хака. Он вставляется в файл config в произвольном месте в таком, к примеру, виде (с неисполняемым авторским комментарием за хэшем):
Это позволило КатаГо уклоняться от зубодробительной дзёсэки и намного разнообразило её игру, в отличие от Лилы Зеро, которая старается свести партию к путанице Летающего ножа при любой возможности.
3) В чем состоят игровые преимущества KataGo перед Лилой?
Согласно оценке Дэвида Ву, главными её преимуществами перед Лилой является значительно лучшая игра в тюбане (особенно в его поздней части) и ёсэ. КатаГо никогда не сдаётся в процессе обучения и всегда доигрывает партии до подсчета очков, отсюда и такие сильные стороны.
4) В чем дополнительные преимущества KataGo перед Лилой?
+ Она алгоритмически новее и совершеннее, чем Лила. Имеет огромное количество новинок и усовершенствований в поисковом алгоритме и тренировочном процессе. В частности, поддерживает функцию оценки территории и подсчета очков по ходу игры или анализа
+ Как следствие, её алгоритм выбора ходов ориентирован на максимизацию преимущества по очкам (точно так же, как и у Golaxy), а не на упрощенное поддержание процента вероятности победы (винрейта). Поэтому она никогда не делает «небрежных» ходов в стиле старой-доброй AlphaGo, приводящих к сокращению преимущества в очках, и никогда не предложит такой ход
+ Имеет специальный код для распознания «лесенок», который позволил полностью решить эту проблему, в отличие от Лилы, Эльфа или МиниГо
+ Поддерживает игру на досках разных размеров: от 7х7 до 25x25
+ Поддерживает широкий набор правил, включая используемые у нас Японские правила с коми 6,5 очков
+ Является одним из лучших ботов в мире для игры на форе. Партии с разной форой включены в процесс обучения КатаГо, поэтому она особенно сильна в этом
+ Имеет специальные настройки уровня агрессивности в игре, которые позволяют игроку подстраивать стиль КатаГо под свои потребности: от более оборонительного (значения PDA ниже нуля) до более агрессивного (PDA от +1 до +3)
+ Имеет простые и понятные настраиваемые опции в файле config (.cfg), поэтому не требует никаких дополнительных аргументов ни в Lizzie, ни в Sabaki. Только ссылки на движок, файл весов и файл config.
Возможности индивидуальных настроек «под себя» в файле config практически безграничны.
5) Где её взять?
Релизы новейших движков и весов находятся здесь
6) Как установить?
Скачав всё необходимое, загляните в файл README.txt. Там всё объясняется.
Для тех, кто плохо понимает в английском, уточню. Прежде всего, нужно провести эталонный тест (benchmark test) в командной строке cmd для конфигурации КатаГо под возможности вашего железа. По итогу этого теста вы узнаете, на какое количество потоков лучше распараллелить процесс работы КатаГо. Также можно автоматически конфигурировать сам файл config.
Ниже пример команды бенчмарк-теста для одного из моих ноутбуков. Корневая папка KG134 размещена на диске С, команда списана из файла README:
cd C:\KG134
katago.exe benchmark -config gtp_example.cfg -model models191.txt.gz
Вот пример рекомендаций по результатам теста:
По итогам теста в корневой папке с движком и весами образуется подпапка KataGoData со всеми автоматическими подстройками под вашу систему.
Всё содержимое корневой папки можно скопировать и вставить в папку katago в Лиззи (предварительно очистив её), таким образом заменив старый предустановленный движок v1.2 на новый (актуальный сейчас v1.3.5), способный поддерживать новые сильнейшие сетки. Так вы получите возможность использовать новейшие модели KataGo в Лиззи.
С Sabaki и того проще. Вот пример:
Пользуйтесь на здоровье.
KataGo – пример блестящего современного проекта в машинном обучении. Его гибкость позволяет адаптировать его даже под гобаны нестандартной формы и другие настольные игры, вроде гомоку. Всё это заслужило похвалу от разработчика Golaxy доктора Цинь Синя, который нашёл много общего между этими двумя программами.