KataGo¶
KataGo — это компьютерная программа для игры в го, основанная на методах глубокого обучения с подкреплением. Разрабатывается американским программистом Дэвидом Ву (David Wu) с 2018 года. KataGo относится к классу движков, использующих нейронные сети, и на момент своего появления стала одной из сильнейших программ в мире, способной конкурировать с ведущими коммерческими и открытыми аналогами, такими как AlphaGo Zero, Leela Zero и FineArt. Ключевой особенностью KataGo является высокая эффективность обучения: для достижения мастерского уровня ей потребовалось значительно меньше вычислительных ресурсов и времени, чем предшественникам.
¶История
Разработка KataGo началась в конце 2018 года, когда Дэвид Ву, ранее работавший над проектом Leela Zero, решил создать собственную архитектуру нейронной сети и алгоритм обучения. Основной целью было преодоление одного из главных недостатков Leela Zero — крайне медленного и ресурсоёмкого процесса самообучения. В отличие от Leela Zero, которая копировала архитектуру AlphaGo Zero, KataGo использовала ряд оригинальных технических решений.
Первая публичная версия (v1.0) была выпущена в апреле 2019 года. Уже в июне 2019 года KataGo продемонстрировала силу, сопоставимую с лучшими программами того времени, обыграв Leela Zero в серии тестовых партий. В 2020 году KataGo заняла первое место на Кубке мира по компьютерному го (Computer Go World Cup), подтвердив свой статус сильнейшего открытого движка. Дальнейшие версии (v1.1–v1.15) последовательно улучшали игру, добавляли поддержку различных форматов досок (от 9×9 до 19×19) и правил (Chinese, Japanese, AGA и др.). В 2022–2023 годах KataGo стала основой для многих сторонних проектов, включая интерфейсы, графические оболочки и серверы для игры в го.
¶Архитектура и принцип работы
¶Нейронная сеть
KataGo использует свёрточную нейронную сеть (CNN) с архитектурой, напоминающей ResNet (остаточные блоки). Сеть принимает на вход представление текущей позиции на доске (кодировку камней, последних ходов, коми и т.д.) и выдаёт два основных выхода:
- Политика (policy) — распределение вероятностей по всем возможным ходам.
- Ценность (value) — оценка вероятности победы текущего игрока.
¶Алгоритм поиска
KataGo применяет модифицированный алгоритм MCTS (Monte Carlo Tree Search), который комбинирует предсказания нейронной сети с симуляциями. В отличие от классического MCTS, KataGo использует:
- Дирихле-шум для начальных вероятностей ходов, что стимулирует исследование новых вариантов.
- Аппроксимацию ценности с помощью нейронной сети вместо полных симуляций до конца игры.
- Динамическое управление количеством симуляций в зависимости от времени и сложности позиции.
¶Самообучение
KataGo обучается методом самоигры (self-play) без использования человеческих партий. Программа играет миллионы партий сама с собой, постепенно улучшая нейронную сеть. Ключевое нововведение KataGo — глобальная функция потерь (global loss), которая учитывает не только исход партии, но и точность оценки ценности на каждом шаге. Это позволило значительно ускорить сходимость обучения.
¶Версии и модификации
KataGo распространяется в виде исполняемых файлов для Windows, Linux и macOS, а также в виде исходного кода на C++ и Python. Основные версии:
| Версия | Дата выхода | Ключевые изменения |
|---|---|---|
| v1.0 | Апрель 2019 | Первый публичный релиз. |
| v1.4 | Сентябрь 2019 | Добавлена поддержка правил AGA и китайских правил. |
| v1.8 | Февраль 2020 | Улучшена игра в эндшпиле, добавлена поддержка 9×9. |
| v1.12 | Июнь 2021 | Оптимизация скорости, добавлены веса для разных размеров досок. |
| v1.15 | Сентябрь 2023 | Последняя стабильная версия на момент написания статьи. |
Кроме того, существуют специализированные модификации, например, KataGo с поддержкой анализа с помощью GPU (CUDA, OpenCL) и KataGo для слабых устройств (CPU-only).
¶Применение
¶Игра против человека
KataGo используется как сильный спарринг-партнёр для игроков любого уровня. Благодаря возможности регулировать силу игры (через ограничение количества симуляций или добавление случайности), она может быть полезна как для профессионалов, так и для новичков. Программа поддерживает стандартные форматы игр: ручная игра, игра с контролем времени, анализ позиций.
¶Анализ партий
KataGo широко применяется для анализа сыгранных партий. Она может:
- Оценивать каждый ход, показывая изменение вероятности победы.
- Предлагать альтернативные ходы с лучшей оценкой.
- Выявлять ошибки и слабые места в игре.
- Генерировать отчёты с графиками и комментариями.
¶Обучение
Программа используется в учебных целях. Некоторые онлайн-серверы го (например, OGS, KGS) интегрировали KataGo для предоставления пользователям возможности анализировать свои партии. Также KataGo применяется в исследовательских проектах по изучению стратегии го и искусственного интеллекта.
¶Критика и ограничения
Несмотря на высокую силу, KataGo имеет ряд недостатков:
- Вычислительные требования: для работы на высоком уровне требуется мощный GPU (например, NVIDIA RTX 3060 или выше). На CPU программа работает медленно.
- Сложность настройки: для начинающих пользователей может быть сложно правильно установить и настроить KataGo (выбор весов, настройка параметров MCTS).
- Недостаточная игра в эндшпиле: в некоторых сложных эндшпильных позициях KataGo может делать неоптимальные ходы, хотя в целом её игра в эндшпиле значительно улучшилась по сравнению с ранними версиями.
- Отсутствие человеческого стиля: как и другие нейросетевые движки, KataGo играет в стиле, отличном от человеческого, что может затруднить понимание её ходов для людей.
¶Интересные факты
- KataGo стала первой программой, которая обыграла AlphaGo Zero (в тестовых партиях с ограниченными ресурсами) в 2020 году.
- Исходный код KataGo распространяется под лицензией MIT, что позволяет свободно использовать, модифицировать и распространять программу.
- KataGo поддерживает не только стандартное го, но и его варианты, такие как «го с форой» и «го на досках нестандартных размеров».
- В 2021 году KataGo была использована для создания бота, который играл на сервере OGS, одержав более 10 000 побед подряд.
¶Источники
- David Wu. «Accelerating Self-Play Learning in Go» (arXiv:1902.10565, 2019).
- Официальный репозиторий KataGo на GitHub (github.com/lightvector/KataGo).
- Статья «KataGo: A New Open Source Go Engine» на сайте Go Game Guru (2019).
- Результаты Кубка мира по компьютерному го 2020 года (Computer Go World Cup 2020).
- Обсуждения на форуме Life in 19x19 (lifein19x19.com).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


