前言
最近和同门在比试围棋,结果被爆虐,于是想借助Ai治治“嚣张”的他。
KataGo简介
继2016年AlphaGo出圈以来,已有不少Ai模型,其中部分如下图[1]所示。
在线围棋对弈网站OGS上,使用KataGo(https://online-go.com/)这款工具进行Ai分析,于是去了解了一下KataGo。
KataGo作者是David Wu(毕业于哈佛大学,目前供职于Jane Street,是一名从事人工智能研究的研究员),“kata”一词出自日语,现在也成为了一个武术里的英文常用词汇,意思是通过左右互搏自我练习,慢慢精进棋盘上的招式[2]。
KataGo官方地址:https://github.com/lightvector/KataGo
KataGo论文:Accelerating Self-Play Learning in Go
KataGo基于AlphaZero采用的蒙特卡洛树(Monte Carlo tree)进行大量训练速度上都优化,目前该仓库还在维护更新,一些更新的优化策略更新在仓库中。
KataGo的模型也在不断训练更新,可以从下面这个地址下载到最新或效果最好的模型:https://katagotraining.org/networks/
KataGo+Sabaki部署搭建
KataGo仅仅是作为一个算法后端,一个完整的围棋助手还需要搭配图像化的前端界面,在本文中使用Sabaki作为前端界面。下面来进行搭建部署。
1.下载KataGo
在KataGo仓库中,可以下载到KataGo的不同版本,主要包括以下四个:OpenCL (GPU)、CUDA (GPU)、TensorRT (GPU) 和 Eigen (CPU)。其中,推理速度最快的是TensorRT (GPU),但需要Cuda以及TensorRT版本去进行适配,配置起来较麻烦。因此,推荐下载OpenCL版本,无需繁琐配置,在日常主机上基本5s左右能算完一步,基本可用。
2.下载权重
在权重网站上下载最新或性能最好的权重,下载之后放置在KataGo文件夹中。
3.配置参数文件
在Katago文件夹用命令行执行命令(权重文件替换成自己下载的文件名):
katago.exe genconfig -model 权重文件.bin.gz -output sabaki.cfg
生成配置文件的过程中要提问几个问题:
- 问katago默认的围棋规则是什么,选中国规则,输入:chinese,然后回车;
- 问katago要不要对读秒之类的时间规则加个额外限制,选不用。输入:n,然后回车;
- 问是否允许katago在对手读秒的时候思考,默认是否,直接回车;
- 问katago要使用哪个计算核心,只有一块显卡,选项是“0”,直接回车;
- 问katago的内存上限设置为多少,我的内存是16GB,输入8,直接回车。
然后就是AI引擎自己运行测试硬件的性能,自动选择参数生成配置文件sabaki.cfg
后结束运行。
4.下载Sabaki
Sabaki官网:https://sabaki.yichuanshen.de/
在官网上下载Sabaki进行安装。
打开软件,可以在文件->首选项修改语言信息。
5.配置KataGo
在Sabaki引擎菜单下,勾选显示引擎侧边栏。
点击管理引擎,新增,设置KataGo路径,输入以下命令(权重文件替换成自己下载的文件名):
gtp -model 权重文件.bin.gz -config sabaki.cfg
点击左上角KataGo,弹出以下信息,则表明模型初始化成功。
之后,在新开对局设置中,将对手设置为KataGo,就可以顺利和Ai对战了。甚至可以设置两个KataGo,观看Ai之间的对决。
后记
不忘初心,拿着KataGo再次和同门进行挑战,非常顺利。
参考
[1]围棋AI及GUI的使用简介:https://zhuanlan.zhihu.com/p/267139001
[2]《丈夫贵兼济,岂独善一身:我为什么要开源KataGo?》——弈客采访KataGo作者:https://www.163.com/dy/article/FP8F9RPS0529BOGK.html