赛后弈客联系到了KataGo的作者David Wu（毕业于哈佛大学，目前供职于Jane Street，是一名从事人工智能研究的研究员），与之进行了一番深入的访谈，以下是采访实录：
1. What’s your level of Go? What’s your story with the game of Go?
2a. Why did you choose to develop Go AI in the first place (or why you are interested in developing Go AI)?
I am officially around AGA 3d amateur, but am very rusty and out of practice as I have focused the last few years on AI development and many other things rather than playing games myself. I learned about Go more 15 years ago and have been interested in computer game-playing AI ever since that time. Writing fun algorithms and AI programs for games has always been a thing I enjoy and am good at. I was around at the time of a lot of the early exciting developments when Monte-Carlo Tree Search (MCTS) was discovered in 2006 and 2007 and finally Go programs jumped from beginner level to amateur dan level, and have followed a lot of the published papers and research ever since then. However, I only actually started coding a bot of my own very recently in 2017 and 2018. In fact, around 2017 essentially the first time I ever trained a neural net and learned how deep learning worked.
2b. Why is this AI named Katago?
As I understand things, ‘kata’ is a word originally from Japanese that has now become simply also a normal word in English within the context of martial arts. It refers to the sequence of patterns and movements and forms that one practices in martial arts training. It seemed like a fun name for a self-play engine – one that improves by practicing by itself to gradually train its own pattern and movement and form on the Go board.
3. Many appreciations to KataGo’s great contribution to the richness and ease of use of AI. KataGo has given Go fans an unparalleled gift. The question I want to ask is, in the process of developing KataGo, have you also made progress in your understanding of AI, and to what extent?
Sure. As I said, the first time I ever got any experience with deep learning was in 2017, and the research project that eventually became KataGo my attempt to learn the field. Whenever I try to learn a new major subject area in Computer Science, I always try to do so by launching a personal project to build something in that area – and sometimes it becomes something useful to release for others. I love writing tools and algorithms that do useful and interesting things.
4. Before the birth of KataGo, Go AI has completely changed people’s perception of Go, and has profoundly affected all aspects. So did you create KataGo more out of the application of artificial intelligence or for the hope to further change the Go ecology?
Both! I initially developed KataGo because in the years immediately after AlphaZero, the ability to develop self-play-based AI in full-scale large board games was almost entirely out of reach of anyone except for large companies and organizations or mass-online distributed projects. AlphaZero and some replications like ELF OpenGo both used thousands of GPUs or TPUs, which is completely impossible for many individuals or smaller research groups to match.
两者都有！我最初开发KataGo的原因是，在AlphaZero之后的几年，除了大型公司和组织或大规模项目外，大棋盘上开发基于自对弈AI对任何个人来说都几乎是难以企及的。 AlphaZero以及像ELF OpenGo之类的复制品都配备数千个GPU或TPU，这对于许多个人或规模较小的研究团队而言是完全达不到的。
Once I understood the algorithms, I saw that there were many clear paths to improving the self-play algorithms to make them vastly stronger and more efficient. As a result of many such improvements, KataGo reached the top levels using only a small fraction of compute resources. With KataGo’s code, with even just a single 2080 Ti if you are able to devote a few months, you should be able to train a Go bot starting from nothing to reach strong human professional levels or maybe even beyond. That means that the level that “AlphaGo Lee” reached – can now be matched by anyone who merely happens to own a high-end gaming rig and is willing to devote the time. With the right methods, smaller research teams and individual developers can achieve results that previously were only possible with large data centers and millions of dollars, making research much more possible and practical.
理解算法后，我发现有许多清晰明了的方法可以改进自对弈，从而使之变得更加强大和高效，因此KataGo仅使用一小部分计算资源就达到了顶尖水平。KataGo的内置代码能使一个只有一块2080 Ti显卡的人，只花费短短数月时间便可从无到有地将一个围棋AI训练达到人类顶尖职业水平甚至更高。也就是说，“AlphaGo Lee”达到的高度——现在可以由愿意投入时间的任何人在自己的高端游戏本上实现。只要方法正确，小型研究团队和个体开发人员都可以实现以前只有大型数据中心和数百万美元投入才可能获得的结果，研究也由此变得更加可行和实用了。
This is why KataGo is open source as well. It is about more than just Go. I have also received personal word from developers working on other board games besides Go that some of the techniques in KataGo helped in these other games as well. If you only try to develop even stronger Go programs but you never publish anything or explain your methods, then maybe you will improve slightly the level of Go AI, but you won’t help other smaller researchers or developers who want to build their own AIs for Go or other games, or to experiment with AI research in broader areas.
Anyways, after the above goal was achieved, it seemed fun to continue developing KataGo. I also enjoy building tools that other people can use, so KataGo was my attempt to give to the Go community an engine with features that nobody else seemed yet able to produce. Support for a wide variety of rulesets including Japanese rules, reducing slack endgame play when winning to produce better analysis, better handicap game play, support for multiple board sizes without changing the neural net. All of these features were missing in almost all of the top bots post-AlphaZero, and I thought I knew ways to support them, so I did.
5. KataGo has amazing strength, helping people improve the level of competitive Go, and also has very free parameter settings. Many people use it to realize the fun of Go. For example, Yike uses the features of KataGo to create AI game that is popular among users. Among them, various chessboards and different gameplay make players hooked. I wonder if Dr. Wu have any try? Also do you think that this has presented all the characteristics of KataGo?
Thanks. No, I haven’t explored all the different things people are doing with KataGo. I know there are many more than I can follow myself, and indeed I hope it stays that way, as people continue to find it exciting and fun. And if any developers have ideas for any new features that I could implement , I’d love to hear it. More than once now, I’ve added features and subcommands into KataGo that were needed by other developers on different servers or sites to do interesting and new things that weren’t possible before, and I’m happy to add more when I have the time.
6. What are KataGo’s future plans? Should we continue to dig deep into Go or explore other fields such as medicine, finance or meteorology? In addition, Go is almost the first to be changed by AI. What kind of mentality should the people of Go and even the whole mankind face the AI era?
In the next month or two, there is a chance that KataGo can also begin distributed training, similar to Leela Zero. Thanks to KataGo’s efficiency improvements, large-scale distributed training with hundreds of GPUs and contributors has not been necessary so far to reach a high level, but it would be fascinating to push it further and see how far it can reach if it does receive those resources. Once distributed training is released, I hope there will be some people who will join me in seeing how high a level KataGo can reach with more training.
As for other fields – yes there are many other valuable areas of research. I know there are many researchers out there trying to improve the quality of science and technology in these areas. Maybe at some point I would get involved in some of those areas too at some point in a new project, I don’t know yet. But at least in the field of reinforcement learning and deep-learning-augmented search I hope that some of the approaches and ideas used in KataGo will continue to be useful.
7. Not long ago, Yike was very fortunate to contact the developer who completed Gobang AI based on the KataGo engine and successfully applied that program to the Yike platform, which brings an unprecedented win rate, strategy and opening experience for Gobang players. Do you would like to see such kind of cross-border cooperation?
Yes, definitely. As I mentioned above, the entire original purpose of KataGo was about more than just Go. It was to make it easier for a wide range of game AI researchers and developers to be able to build high-quality programs for different games. If anyone wants to take KataGo’s ideas, or its published algorithm techniques, or its code directly, and build upon them further to solve new problems or surpass KataGo itself – then that is a success. My only wish is for people to be friendly and honest about when they use KataGo – whether they clone it with only minor modifications, or whether they use it as simply the foundation for genuine new training and original research. When developing KataGo, the goal has never been about trying to beat other people, or to be the best, or to win. I don’t care if it wins or is the top bot, that doesn’t matter. Instead KataGo’s purpose is to make it possible for everyone to do better together.
And in Go, I’ve been told that in the recent Go AI tournament preliminaries in Fuzhou, besides the public KataGo entry, at least a few of the submissions were based off of KataGo and that in at least one case, a team also developed new improvements with new separate training. And I’ve been told that a few of these submissions might have made it to the upcoming final rounds as well, which is great. I am mostly a spectator and not actively involved, but if this is true then I would hope that after the conclusion of the tournament such teams would consider publishing their methods, especially if they can share new algorithms and training techniques. It makes me happy that I was able to make an AI that other people would want to use or to build on top of.
Aside from Go and “Gobang” (Gomoku?), I have also been privately contacted by a few developers for other different games, who have reported that they found some of the individual techniques in KataGo useful (“playout cap randomization”, “auxiliary training targets”, etc), and helped answer questions about how to apply them. I’ve also talked with some researchers doing more general work on trying to improve the accuracy of game-tree-search as well. In all of these cases, if KataGo can help make a foundation for other people to do new and better research, that makes me excited.
8. Taxing makes the game of Go different, which is an option in KataGo. Is this tax process achieved through training or a specific algorithm? Could it be realized that in the tax mode, White first moves?
KataGo handles different rules variations and board sizes simply by training the neural net with lots of games with these rules during self-play. You can definitely use “tax” rules or “stone scoring” rules – KataGo plays a major fraction of its games with them, so it should have much experience. And including with white playing first if you like, since KataGo doesn’t care what color moves first. If you want to make white move first, then just tell KataGo to play a move for white first instead of black, and set the “komi” to either 0 or to a negative number so that black is the one that receives compensation for moving second instead of white.
One fascinating thing about the ancient “tax” or “stone scoring” rules is that they seem to slightly encourage a more cosmic-style of play. Because the penalty is increased for making multiple small groups, this means playing lots of big global moves and making large frameworks becomes more favored. For example, under these rules, 3-3 invasion appears to be no longer a good move to play early, and fighting for influence on the sides and center becomes more favored too. For people who have been a little disappointed about the high value that modern AIs place on the corner territory and the resulting tight style of game, perhaps these ancient rules might feel refreshing.
9. What level do you think KataGo will eventually reach, such as how much higher the elo rating will be, comparing with the current version?
It’s very hard to say! As I mentioned above, I hope KataGo can begin distributed training fairly soon, and that there can be enough community support to continue improving as a free and open program for everyone to use. We will see how much farther it can improve. 🙂