KataGo+Sabaki搭建Ai围棋助手

0 / 16

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 再次和同门进行挑战,非常顺利。