正文

原标题:外子贵兼济,岂独善一身:吾为什么要开源KataGo?

9月终,2020世界人造智能围棋大赛在福州终结了初赛阶段的比拼,来自中国的15支人造智能围棋团队和来自韩国、日本、比利时、美国的5支人造智能围棋团队出战本届比赛。七轮积分编排赛事后,前八名晋级将于11月终进走的镌汰赛。

令人不测的是,实力兴旺的KataGo由于胜势超时、自降算力和用未经测试的搜索算法输失踪了3盘比赛,最后名列第9无缘本赛,而大量“二次开发”的KataGo后继者却纷纷晋级8强。

赛后弈客有关到了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)?

1. 您的围棋程度如何?您与围棋有怎样的渊源?

2a. 您当初为何会选择开发围棋AI(或者说为何对开发围棋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.

吾也许是AGA(美国围棋协会)业余3段的程度,但由于以前几年吾一向凝神在AI开发和其他很多事情上,就没怎么下棋,以是棋艺陌生了不少。接触围棋有15年了,并且从当时首,吾就对人造智能AI对弈很感兴趣。编写风趣的算法、运作有关AI程序,一向是吾所喜欢和拿手的事情。吾见证了2006年和2007年蒙特卡洛树搜索(MCTS)引入围棋,那是早期专门令人振奋的一大挺进,接着围棋AI从初学者程度升至业余段位,后续又有了一系列有关的论文发外和实验研讨。不过直到17年吾才最先训练神经网络并晓畅深度学习的做事原理,17到18年之间才最先着手编写本身的对弈程序。

2b. Why is this AI named Katago?

2b. 为何将这款AI命名为KataGo?

https://en.wikipedia.org/wiki/Kata

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.

据吾所知,“kata”一词出自日语,现在也成为了一个武术里的英文常用词汇。武术训练中它指的是一串行为,或者说招法。对于自对弈程序来说,这感觉上是个风趣的名字——经由过程旁边互搏自吾演习,徐徐精进棋盘上的招式。

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?

专门感谢KataGo对AI功能雄厚性和易用性做出的重大贡献。KataGo给了棋迷们一个无与伦比的礼物。吾想问的题目是,研发KataGo的过程,是否您也在对AI的理解上获得了挺进,这栽挺进是何栽程度的?

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.

诚然。吾前线讲过,步入这个周围,吾最最先获得深度学习经验是在2017年,后来进阶为KataGo这一研究项现在。每当吾尝试研讨计算机科学一个新的主要学科周围时,吾总会经由过程启动另外的幼我项现在来协助构建吾在该周围中的知识系统,未必会收获不测之喜。吾喜欢好编写工具及算法,往做有用又风趣的事情。

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?

在KataGo出世前,围棋人造智能已经十足转折了人们对围棋AI的认知,也已经深切的影响了围棋的方方面面。那么你创出KataGo更多的是出于对于人造智能的行使实践照样对于期待进一步转折围棋生态?

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”达到的高度——现在能够由情愿投时兴间的任何人在本身的高端游玩本上实现。只要手段精确,幼型研究团队和个体开发人员都能够实现以前只有大型数据中央和数百万美元投入才能够获得的效果,研究也由此变得更添可走和实用了。

157 个训练日挺进飞速的KataGo

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.

这就是为什么KataGo同时也是开源的。不仅围棋,吾还从其他棋盘游玩的开发人员那里得知,KataGo中的某些技术行使于其他棋类项现在也很给力。倘若您只是尝试训练出更兴旺的围棋程序,但不愿分享任何内容或手段,那么能够只会稍微拔高围棋AI的峰顶,却无法助力其他在围棋或游玩项现在上想要构建本身AI的幼批研究人员或开发人员,或者协助在更普及的周围开展AI研究。

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.

不管怎样,在实现上述现在标之后,不息开发KataGo照样风趣。吾乐于往开发清淡大多都能用上的工具,KataGo便是吾对于围棋界的贡献,这犹如还异国其他人做到。包括声援日本规则在内的多栽对弈规则,判定晓畅后缩短胜定最后时不消要的走棋,让子棋中更好的外现,声援多栽棋盘规格且无需做出匹配更改……一切这些功能在AlphaZero之后的几乎一切顶级AI中都没能囊括,而吾晓畅如何改进,吾也做到了。

自对弈式样判定

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?

KataGo拥有惊人的实力,协助人们挑高竞技围棋的程度,也拥有专门解放的参数设定,不少人用它往实现围棋的兴趣性。比如弈客就行使KataGo的特性创建了广受用户喜欢的ai闯关游玩。其中各栽棋盘,分歧玩法,都让玩家大呼过瘾。不晓畅您是否晓畅?另外您觉得行家是否已经发挥了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.

谢谢。吾还没关注行家经由过程KataGo研发的一切分歧事情。吾晓畅有很多,可来不敷跟踪,但吾专门期待行家能够赓续挖掘它的魅力。还有,吾将很乐意听到倘若有任何开发人员对任何有看实现的新功能有思想。现在吾已经不止一次地在KataGo中增补了其他服务器或站点上的其他开发人员所必要的功能和子命令,实走实现了以前无法意料的风趣的新行为,以是异日吾期待能更添雄厚完善它。

【编者按:中国围棋人造智能的研发表现井喷,如星阵在“最后不退让”,“让子棋”,“幼棋盘”,“肆意贴现在”,“数现在规则”等倾向上做了大量研究和实验,并率先辈走了多场外演赛:2018年让先41局、9路挑衅赛、17路天弈挑衅赛。而弈客的弈幼天则另辟蹊径,在模拟矮程度,自定义棋风等教培行使有关周围发力。来自世界各地的AI行家们的竭力,一向地推进围棋人造智能的高程度的同时,规则有关,“拟人有关”的行使型收获会取得更大的突破】

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?

KataGo今后计划是什么?是不息深耕围棋照样往追求医学、金融或气象等其他周围?另外,围棋几乎是最早受到AI变天的,围棋人乃至于全人类答以什么样的心态来面对AI时代?

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.

接下往一两个月,跟Leela Zero相通,KataGo也能够最先分布式训练了。不过得好于KataGo挑高了效果,不必要数百个GPU和贡献者进走大周围训练就能够达到很高的程度,但倘若拥有了那些资源再看其进一步能有多大跨越,那也是值得憧憬的。分布式训练开启的话,吾期待能有更多人添入吾,共同见证KataGo能不息攀升至怎样的程度。

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.

至于其他周围,自然还有很多其他有价值的研究倾向。吾晓畅有很多研究人员试图实现有关周围的科技突破。能够在某个节点上,吾也有时中置身于某项新科研,但吾并不晓畅。然而起码在深化学习和深度学习周围,吾期待KataGo中行使的某些策略和思想能发挥作用。

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?

不久之前弈客专门有幸的有关到了经由过程KataGo引擎完善五子狗的开发者,并成功将程序行使到了平台上。为五子棋玩家带来了史无前例的胜率,支招以及开局库的体验。您是否认为如许的跨界是你期待看到的?

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.

自然。吾前线挑过,KataGo的通盘初衷绝不仅仅是围棋,而是为协助AI研究人员和开发人员更轻盈适配分歧游玩所构建的高质量程序。倘若有人直接套用了KataGo,或拿走已公开的算法技术或代码为之所用,并在其基础上进一步解决新题目或超越KataGo本身——那就是一栽成功。吾唯一的期待是人们对借用KataGo的走为能够时兴、真挚——无论是对其进走幼批修改的克隆,照样将其用作新研究的基石。开发KataGo的现在标从来都不是击败人类、冠绝AI或是赢得胜利。吾不在乎它是永久赢棋照样最顶尖AI,这无所谓。相逆,KataGo是期待让行家一首做到更好。

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.

吾被告知说在比来的福州围棋AI锦标赛初赛中,除KataGo外,还有一些参赛作品是基于KataGo编写的,并且不止一支团队都经由过程自力训练后有了新的改进。能够会在后续镌汰赛中看到各AI的精彩外现,这很棒。异国亲身参与比赛的吾只是别名看客,但倘若这是真的,那么吾期待比赛终结后,有关团队能够考虑公开,稀奇是共享新的算法和训练技术。吾为本身能够创作出其他人想要行使或构建的AI感到专门起劲。

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.

除了围棋和五子棋之外,一些开发人员还暗地与吾有关,说他们发现KataGo中的某些自力技术很有用(“计算量上限随机化”,“辅助训练现在标”等),吾还与一些研究人员进走了交谈,他们也在尝试挑高游玩树搜索的实在性方面做了更普及的做事。在一切这些情况下,倘若KataGo能够为其他人开展新的更好的研究打下基础,那会让吾很激动。

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中的一个选项,由于还棋头,使围棋的下法展现分歧。这个过程是经由过程训练所得照样特定算法实现的?因此能否实现还棋头模式下,白先落子?

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.

KataGo经由过程大量自对弈,实现了对神经网络适宜分歧规则和棋盘尺寸的训练。“还棋头”或“数子”规则也不在话下——KataGo已然成功完善了很多对局,能够说是经验雄厚。另外白棋先走也没题目,KataGo不在乎棋子颜色。倘若要先落白子,只必要通知KataGo先是白子而非暗子先走棋,然后将“贴现在”竖立成0或负数,如许暗色就是被贴现在标那一方。

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.

关于古代“还棋头”和“数子”规则风趣的是,犹如在某栽程度上鼓励的是一栽更重大的走棋思路。由于多块活棋会被请求还子,也就使得进走通盘性质的大行为和大型模样作战更添受到青睐。例如,在这些规则下,“三三”袭击犹如不再是布局的好选点,而掠夺边路和中央势力周围显得更为主要。那些对当代AI偏重四角和紧凑棋风死心的喜欢好者,也许这些古棋规则能够令人耳现在一新。

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?

您认为KataGo最后会达到一个什么程度,比如比现在的版本高出多少elo等级分?

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. :)

很难讲吧!如前所述,吾期待KataGo能够尽快投入分布式训练,并且衷心企盼行为供一切人行使的免费盛开程序,能够有有余的逆馈来声援其不息改进。吾们会看到它能够达到多高的水准的(乐)。

友情链接

Powered by 日本av番号 @2018 RSS地图 html地图

Copyright 365站群 © 2013-2018 无码中文字幕加勒比高清 版权所有