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 文件夹用命令行执行命令(权重文件替换成自己下载的文件名):
代码语言:JavaScript
复制
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 进行安装。
Github仓库:https://github.com/SabakiHQ/Sabaki/
打开软件,可以在文件-> 首选项修改语言信息。
5.配置 KataGo
在 Sabaki 引擎菜单下,勾选显示引擎侧边栏。
点击管理引擎,新增,设置 KataGo 路径,输入以下命令(权重文件替换成自己下载的文件名):
代码语言:JavaScript
复制
gtp -model 权重文件.bin.gz -config sabaki.cfg
点击左上角 KataGo,弹出以下信息,则表明模型初始化成功。
之后,在新开对局设置中,将对手设置为 KataGo,就可以顺利和 Ai 对战了。甚至可以设置两个 KataGo,观看 Ai 之间的对决。
后记
不忘初心,拿着 KataGo 再次和同门进行挑战,非常顺利。