KataGo
Developer(s) | David Wu |
---|---|
Initial release | 27 February 2019 |
Stable release | 1.15.3
/ 5 August 2024 |
Repository | |
Written in | C++ |
Type | Go software |
License | MIT License |
Website | katagotraining |
KataGo is a free and open-source computer 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
[edit]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.
Network
[edit]The network used in KataGo are ResNets with pre-activation.
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 trunk is essentially the same as in AlphaGo Zero, but with global pooling layers modules added to allow the network to be internally condition on global context such as ko fights. This is similar to Squeeze-and-Excitation Network.[1]
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
[edit]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
[edit]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]
Adversarial training improves defense against adversarial attacks, though not perfectly.[14][15]
References
[edit]- ^ a b c d David Wu (27 February 2019). "Accelerating Self-Play Learning in Go". arXiv:1902.10565 [cs.LG].
- ^ Wu, David J. (2015-01-01). "Designing a Winning Arimaa Program". ICGA Journal. 38 (1): 19–40. doi:10.3233/ICG-2015-38104. ISSN 1389-6911.
- ^ David Wu (28 February 2019). "Accelerating Self-Play Learning in Go" (blog post). Retrieved 2 November 2022.
- ^ "KataGo Distributed Training". Retrieved 2 November 2022.
- ^ "KataGo GTP Extensions". GitHub. Retrieved 3 January 2023.
- ^ "KaTrain". GitHub (Github repo). Retrieved 3 January 2023.
- ^ 金雷 (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.
- ^ "AI Sensai FAQ". Retrieved 2 November 2022.
- ^ Anoek (OGS developer) (31 March 2022). "Considering removing Leela Zero from our supported AI Reviewers". Retrieved 2 November 2022.
- ^ David Wu (15 November 2020). "Other Methods Implemented in KataGo". GitHub. Retrieved 4 November 2022.
- ^ Benj Edwards (7 November 2022). "New Go-playing trick defeats world-class Go AI, but loses to human amateurs". Retrieved 8 November 2022.
- ^ Wang, Tony Tong; Gleave, Adam; Tseng, Tom; Pelrine, Kellin; Belrose, Nora; Miller, Joseph; Dennis, Michael D.; Duan, Yawen; Pogrebniak, Viktor; Levine, Sergey; Russell, Stuart (2023-07-03). "Adversarial Policies Beat Superhuman Go AIs". Proceedings of the 40th International Conference on Machine Learning. PMLR: 35655–35739. arXiv:2211.00241.
- ^ Hutson, Matthew (2024-07-08). "Can AI be superhuman? Flaws in top gaming bot cast doubt". Nature. doi:10.1038/d41586-024-02218-7. PMID 38977931.
- ^ Tseng, Tom; McLean, Euan; Pelrine, Kellin; Wang, Tony T.; Gleave, Adam (2024-06-18). "Can Go AIs be adversarially robust?". arXiv:2406.12843 [cs.LG].