简而言之

  • KataGo-AnimalChess 是 hzyhhzy 和 Kouza 发布的 AlphaZero 风格斗兽棋神经网络,在 200 局中以 82 胜 0 负 118 和击败 MistyJungle:得分 0.70,约 +150 Elo。
  • 同一台机器上每着用时相同:1,000 次访问对 500 万节点。它执红执黑都赢过,一局未输。
  • 在 Mistboard 的虎能像狮一样横向跳河之前,这场对抗赛不可能公平;中文规则本来就是这样。这条规则先上线了。
  • 这赢下了挑战页面上的斗兽棋一行:KataGo-AnimalChess 成为 Mistboard 上的斗兽棋机器人,并署上他们的名字。

MistyJungle 是 Mistboard 上的斗兽棋机器人:在三项手写评估上做 alpha-beta 搜索,每着 500 万节点,没有神经网络。6 月它以约 16 Elo 击败了我能运行的最强开源引擎,此后挑战页面一直把它的席位开放给任何在同等预算下击败它的引擎。

上周为揭棋的工作扫描 GitHub 时,我发现了一个之前漏掉的更强对手:KataGo-AnimalChess,hzyhhzy 把 KataGo 的自我对弈训练改造到斗兽棋上,训练好的网络随 Kouza 的 Dandelion 界面一起发布。6 月的搜索漏掉它,是因为这个引擎位于一个名为 KataGomo 的仓库的分支上;名字里没有任何字样提到斗兽棋。

有一条规则必须先改

他们的虎既能纵向也能横向跳河,与狮的跳法相同。Mistboard 的虎不能:它只能纵向跳,这一读法来自英文维基百科的条目,据我所查,别处都没有。腾讯 QQ游戏的规则、莱顿大学的斗兽棋页面和 KataGo 的源代码都让虎拥有狮的跳法。一个按某条规则训练的网络与一个按另一条规则下棋的引擎对弈,衡量的是规则,而不是引擎。

于是规则改了。自 9 月 21 日起,Mistboard 上的虎两个方向都能跳,内核、机器人、分析引擎、规则页面和残局都随之更新(有一道被新跳法破解的子力残局已下架)。这次改动只增加着法,所以此前的每一局按当时的走法依然合法。维基百科的条目现在也注明了这一变体。

对抗赛

两百局,交替执红黑,由 Mistboard 内核担任裁判:进入兽穴、吃光对方全部棋子和无子可动算胜,三次重复局面和 200 着无吃子算和。每个引擎只提出着法;提出不合法的着法就判负,而这一次也没有发生。

预算按同一台机器上的实际用时匹配,每着约两秒:MistyJungle 用它上线时的 500 万节点单线程,KataGo 用 Dandelion 4 附带的 b10c384 网络、四线程 1,000 次访问。两个引擎都按预算而不是按时钟搜索,所以在 Modal 上下出的对局就是它们在这里会下出的对局。KataGo 的循环规则被关闭,让裁判的重复规则对双方同样生效。

  得分
KataGo 执红(100 局) 44 56 0 0.72
KataGo 执黑(100 局) 38 62 0 0.69
合计 82 118 0 0.705

每一局分出胜负的对局都以进入兽穴结束;每一局和棋都是重复局面。中位对局长度为 127 着。得分的 95% 区间是 0.67 到 0.74,大约相当于 +125 到 +180 Elo。挑战要求的是 0.55。

全部 200 局都在 Mistboard 上的研究里,八局有名字的排在最前。先看一局短的,第 67 局,KataGo 执黑:它的虎在第 54 着横向跨过西边的湖,这是旧规则禁止的一步,36 着之后走进兽穴。

执红最短的胜局,第 138 局,81 着:

它是什么

KataGo-AnimalChess 就是原版 KataGo,那个围棋程序,把棋盘和规则换成斗兽棋,自我对弈的循环原样运行:自我对弈中每着 400 次访问,一个 10 个残差块、384 通道的网络,用 SGD 在两块 GPU 上训练,规则在界面支持的各种变体之间随机切换,让一个网络服务所有变体。训练脚本和配置都在分支里;仓库自己的估计是,在一个小型棋类上达到顶级强度需要不到五十美元的计算量。权重放在界面下载包里,没有单独发布,也没有注明许可证。

相比之下,MistyJungle 的评估只有子力、到兽穴的距离和陷阱惩罚。它对传统对手守住了阵脚,在此之上加一个学习型残差也没有帮助。这是常见的结果:自我对弈训练出的网络胜过手工调校的搜索,而在一个和棋率很高的游戏里,它赢下能赢的对局,一局不输。

他们赢下了席位

挑战页面上的斗兽棋一行现在写着已被赢下,署着他们的名字,KataGo-AnimalChess 成为 Mistboard 上的斗兽棋机器人。引擎是开源的,网络随他们的界面发布,所以部署它是一项构建工作,而不是一个请求:服务器里的 GTP 桥接、AnimalChess 分支的 Linux 二进制文件,以及本站每着负担得起的访问预算。在此之前 MistyJungle 继续占据席位,分析棋盘暂时也留在它上面。挑战对持有者继续开放:在同等预算下 200 局击败 KataGo-AnimalChess,席位就是你的。

对抗赛的驱动程序(连接 KataGo 的 GTP 与内核的桥接;KataGo 的棋盘是我们的左右镜像)是 Mistboard 仓库里的 jungle-katago-match.ts,200 局的记录在这里