最近社交媒体上《棋魂》居然重新火起来了,这是一部改编自日本原作漫画《棋魂》的改编剧,从日本背景改到了中国背景。自然佐为也被改叫了褚嬴,还给他整了一个千年棋圣的设定。我一开始也把它当作是纯粹的中国剧,后来看了设定才知道这是日本漫画,可以说中国团队的本地化是做得非常好,真的可以说得上是漫改剧的典范了,那些漫改真人的建议学学。随着《棋魂》一起重新火起来的,还有围棋这一项非常传统的游戏运动。说真的我确实有一段时间没有下棋了,记得上次下棋还是和小芬在网站上下五子棋,这次下回围棋都间隔两个月了。而且我记得上次我下得特别菜,这次我可得好好练一练。

既然不跟人玩,那我跟什么玩呢?没错,机器啊!我记得以前是在某些小网站上下的,大概是在疫情时期那时候,窝在家里实在无聊。但如今的我已经是极客了,肯定不能再在那些小网站上请教真假 AlphaGo,但我们可以自己部署。开源方案我推荐 KataGo,它几乎是很多围棋选手的选择。我在网上搜索了 KataGo 的部署教程,总结起来并不是很难。虽然涉及到什么“深度学习”之类的东西,但深度学习的是训练模型的那方,我只要有环境部署就行了。网上的教程大多数都是针对 N 卡的,所以又是下载 CUDA 又是配置环境的,非常复杂。但在 Mac 上,社区已经把那些都打包好了,还是 Metal 后端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
brew install sabaki # 围棋客户端,也可以自己和朋友下
brew install katago # KataGo 服务端,就那么简单

# 以下命令重开一个终端

whereis katago # 获取 KataGo 安装位置
brew list --verbose katago # 获取模型和配置文件位置

# 模型文件的后缀是 .bin.gz,配置文件的后缀是 .cfg,记住这些的路径
# 我选择 /opt/homebrew/Cellar/katago/1.18.2_1/share/katago/g170-b40c256x2-s5095420928-d1229425124.bin.gz 作为示范

mkdir Sabaki # 创建一个文件夹存放配置
cd Sabaki # 进入这个配置文件夹

katago genconfig -model /opt/homebrew/Cellar/katago/1.18.2_1/share/katago/g170-b40c256x2-s5095420928-d1229425124.bin.gz -output sabaki.cfg # 创建配置文件,一直回车即可

大概需要等待一会,等你的程序任务完成并自动退出。完成后看一下目录下有没有 sabaki.cfg 和日志文件夹,如果有的话说明成功了。打开安装好的 Sabaki,点击左上角苹果图标旁边的 Sabaki,点击 Preferences。在新界面中找到语言选项,将语言切换成简体中文,再重启软件。重启后点击上面选项栏的“界面”,勾选上“显示变化树”;再找到选项栏上的“引擎”,点击“显示引擎侧边栏”,这样你的 Sabaki 就有两个侧边栏了。我们点击窗口左上角的“播放”图标,在选项中点击“管理引擎”,点击新菜单中的新增。名字就写上 KataGo,位置填上我们刚刚用命令得到的 KataGo 位置。

参数填上 gtp -model 模型位置 -config 配置位置,这里的模型位置就是我们刚刚命令得到的模型位置,配置位置就是 sabaki.cfg 的绝对位置。配置完成后点击右下角的关闭即可,Sabaki 会保存这套配置。现在我们想下棋,就点击那个“播放”图标,在下拉的菜单中找到 KataGo 点击它。右键 KataGo 可以选择它是执白棋还是执黑棋,我们也可以通过选项栏的“对局”菜单,切换我们自己是执白棋还是执黑棋。如果我们想要关闭它,只需要右键 KataGo 选择停止就行了。如果想要清空棋盘的话,我们就在左上角的菜单栏“对局”中新建一个对局,保不保存取决于你觉得这一局是否有价值。

当然,我还是个围棋渣,对于围棋完全不感兴趣,这次折腾就当是技术实践了。各位如果感兴趣的话,可以尝试和 KataGo 过两招,看看自己是否能打的过它。如果你打不过也没关系,KataGo 本来就是很强的对手。