对 Misty 82 胜 0 负

上线之前,我们让它和我们自己的斗兽棋电脑 Misty 进行了一场公开挑战赛:200 盘,每步 1,000 次访问。hzyhhzy 的引擎赢 82 盘、输 0 盘、和 118 盘,得分率 0.705。每一盘胜局都是走进 Misty 的兽穴取胜,每一盘和棋都是重复局面。

每盘棋都由 Mistboard 自己的规则代码裁判,两个引擎只负责提出着法。双方的预算按用时对齐,在同一台机器上每步大约两秒:Misty 用它平时的 500 万个节点、单线程,KataGo 用 1,000 次访问、四线程,搭配 b10c384 神经网络。两个引擎都在固定的搜索量处停下,所以在 Modal 上下出的棋,就是它们在这里会下出的棋。KataGo 自带的重复局面规则被关闭,双方都按裁判的规则处理重复。

KataGo胜和棋负得分率
执红,100 盘445600.72
执黑,100 盘386200.69
合计8211800.705
对局长度的中位数是 127 个半回合。得分率的 95% 置信区间是 0.67 到 0.74,约合 +125 到 +180 Elo;挑战赛的要求是 0.55。

全部 200 盘都收在一个研究里,原始记录放在一个文件中,每盘一行 JSON。

虎现在可以横向跳河

我们是在 GitHub 上找揭棋引擎时发现 KataGo 的。它放在一个名为 KataGomo 的仓库的 AnimalChess2025 分支上,名字里看不出和斗兽棋有关,所以之前专门找斗兽棋引擎时漏掉了它。

它的虎既能纵向跳河,也能横向跳河,跳法和狮一样。我们的虎原先只能纵向跳,这个理解来自英文维基百科的条目。腾讯 QQ游戏的规则、莱顿大学的斗兽棋页面和 KataGo 自己的源代码,都让虎拥有和狮一样的跳法;一个按某条规则训练的引擎,去和一个按另一条规则下棋的引擎比赛,比出来的只是规则的差别。

从 9 月 21 日起,Mistboard 上的虎可以纵横两个方向跳河,规则引擎、电脑、分析棋盘、规则页面和题目都已更新。有一道题目被新的跳法驳倒,已经撤下。这次改动只增加了着法,所以之前的每一盘棋按原样仍然合法。

两盘胜局,两个引擎各自怎么看

我们用两个引擎按比赛设置,把其中两盘胜局的每个局面重新评估了一遍。每张图只显示一个数:KataGo 的胜率,由两个引擎各判断一次,一次是 KataGo 自己,一次是 Misty。两条线分开的地方,就是两个引擎对谁占优看法不一。和棋算作半胜;Misty 的分数(厘兵)按我们分析棋盘使用的曲线 1 / (1 + e^(−0.00368 × cp)) 换算成胜率。

第 67 盘:多一只狼,却输了

Misty 执红,第 11 回合吃掉一只狼,大半盘都认为自己领先;而 KataGo 的得分先停在 50%,随后一路上升。

第 29 回合 Misty 把困在角落的虎从 g8 走到 g9,KataGo 对自己的得分从 61% 升到 92%,而 Misty 仍认为自己 +111。KataGo 为红方给出的变化从狮 b1-b2 开始,能让红方保持 37%。Misty 到第 36 回合才看出来,晚了七个回合。

第 94 盘:慢慢收紧

Misty 执黑,第 19 回合吃掉一只狼,此后 30 个回合里大部分时间都认为自己领先;而 KataGo 的得分从 50% 慢慢升到 63%。

第 50 回合 Misty 把猫从 c8 走到 c7,KataGo 从 63% 升到 98%。Misty 仍认为自己 +80,两个回合之后才算出必输。KataGo 为黑方给出的变化是象 d6-d7,能让黑方保持 38%。

在这两盘棋中,KataGo 分别比 Misty 早七个回合和两个回合看出胜局。

KataGo 就是那个围棋程序,用自我对弈重新训练

KataGo-AnimalChess 就是原版 KataGo,只是把棋盘和规则换成了斗兽棋,自我对弈的训练流程原样照跑:自我对弈时每步 400 次访问,10 个残差块、384 个通道的神经网络在两块 GPU 上用 SGD 训练,规则在 Dandelion 软件支持的各个变体之间随机切换,所以一个网络就能下所有变体。仓库里估计,在一个小型棋类上练到顶尖棋力,算力花费不到 50 美元。网络权重打包在软件的下载里,没有单独发布,也没有注明许可协议。

Misty 的评估只有三项手写的内容:子力、离兽穴的距离,以及陷阱扣分。在它之上再加一层学习出来的修正,并没有帮助。

Misty 不懂冲兽穴竞速

Misty 对局面的评估是子力,加上每个棋子离对方兽穴距离的奖励,所以冲兽穴竞速谁先到,它要等搜索抵达兽穴时才知道。8 月我们试了三种办法教它,一旦把搜索预算固定住,没有一种有帮助;在全力对弈中,竞速只决定 4.7% 的对局。教斗兽棋引擎冲兽穴竞速一文有完整的对抗结果,还有一盘靠搜索深度自己找到竞速的对局。

入门仍从 Misty 开始

KataGo 排在斗兽棋电脑列表的最上面,在 Misty 之上。Misty 仍是默认对手,也是较容易的那一个;想下更难的棋就选 KataGo。斗兽棋的复盘和分析仍由 Misty 负责。

在网站上,KataGo 每步搜索 150 次访问,大约用时 1.5 到 3.5 秒。在这个设置下,它和 Misty 下了 50 盘,19 胜 0 负 31 和,得分率 0.690,与 1,000 次访问的结果分不出差别。它的棋力来自神经网络。

致谢

KataGomo 是开源项目,地址是 github.com/hzyhhzy/KataGomo。感谢 hzyhhzy 提供引擎并允许我们使用,感谢 lightvector 的 KataGo,也感谢 Kouza 的 Dandelion 4 神经网络。

挑战 KataGo斗兽棋规则