KataGo is a free and open-sourcecomputer Go program, capable of defeating top-level human players. First released on 27 February 2019, it is developed by David Wu,[1] who also developed the Arimaa playing program bot_Sharp which defeated three top human players to win the Arimaa AI Challenge in 2015.[2]
KataGo's first release was trained by David Wu using resources provided by his employer Jane Street Capital,[3] but it is now trained by a distributed effort.[4] Members of the computer Go community provide computing resources by running the client, which generates self-play games and rating games, and submits them to a server. The self-play games are used to train newer networks and the rating games to evaluate the networks' relative strengths.
KataGo supports the Go Text Protocol, with various extensions,[5] thus making it compatible with popular GUIs such as Lizzie. As an alternative, it also implements a custom "analysis engine" protocol, which is used by the KaTrain GUI,[6] among others. KataGo is widely used by strong human go players, including the South Korean national team, for training purposes.[7][8] KataGo is also used as the default analysis engine in the online Go website AI Sensei,[9] as well as OGS (the Online Go Server).[10]
Technology
Based on techniques used by DeepMind's AlphaGo Zero, KataGo implements Monte Carlo tree search with a convolutional neural network providing position evaluation and policy guidance. Compared to AlphaGo, KataGo introduces many refinements that enable it to learn faster and play more strongly.[1][11]
Notable features of KataGo that are absent in many other Go-playing programs include score estimation; support for small boards, arbitrary values of komi, and handicaps; and the ability to use various Go rulesets and adjust its play and evaluation for the small differences between them.
While AlphaGo Zero has only game board history as input features (as it was designed as a general architecture for board games, subsequently becoming AlphaZero), the input to the network contains additional features designed by hand specifically for playing Go. These features include liberties, komi parity, pass-alive, and ladders.
The network has two heads: a policy head and a value head. The policy and value heads are mostly the same as in AlphaGo Zero, but both heads have auxiliary subheads to provide auxiliary loss signal for faster training:
Policy head: predicts policy for the current player's move this turn, and the opponent player's move in the next turn. A policy Each is a logit array of size , representing the logit of making a move in one of the points, plus the logit of passing.
Value head: predicts game outcome, expected score difference, expected board ownership, etc.
The network is described in detail in Appendix A of the report.[1]
The code base switched from using TensorFlow to PyTorch in version 1.12.
Training
Let its trunk have residual blocks and channels. During its first training run, multiple networks were trained with increasing . It took 19 days using a maximum of 28 Nvidia V100 GPUs at 4.2 million games.
After the first training run, training became a distributed project run by volunteers, with increasing network sizes. As of August 2024[update], it has reached b28c512 (28 blocks, 512 channels).
Adversarial attacks
In 2022, KataGo was used as the target for adversarial attack research, designed to demonstrate the "surprising failure modes" of AI systems. The researchers were able to trick KataGo into ending the game prematurely.[12][13]
^金雷 (1 March 2021). "AI当道 中国围棋优势缩小了吗?" [With the dominance of AI, is China's Go superiority shrinking?]. Xinmin Evening News. Retrieved 5 December 2021.
^Hong-ryeol Lee (14 April 2020). "'AI 기사' 격전장에 괴물 '블랙홀'이 등장했다" [A monster 'black hole' appeared in the battlefield of 'AI Go players']. The Chosun Ilbo. Retrieved 8 December 2021.