拿AI下围棋 -- 开源项目leela-zero
本文介绍了如何使用Leela Zero开源项目实现AI围棋对弈。通过下载Leela Zero引擎、权重文件和Lizzie图形界面,用户可以在命令行和GUI中运行AI围棋程序。文章详细说明了配置步骤,包括权重文件处理、OpenCL性能调优等,并展示了Lizzie界面的实时胜率分析和推荐落子功能。最后提供了命令行调试方法和GUI配置参数,帮助用户快速体验AI围棋对弈功能。
书接上回AlphaGo 王树森深度强化学习DRL(三)围棋AlphaGo+蒙特卡洛-CSDN博客
蒙生实践体验和AI对弈 借助AI和别人下围棋的想法
在github上找了一个 复现 AlphaGo Zero 论文中的方法 leela-zero
不依赖任何人类棋谱知识,完全靠自我对弈+ 深度残差神经网络 + 蒙特卡洛树搜索(MCTS)训练
使用它下围棋需要四个步骤:
1. 下载 Leela Zero Windows Release(含 leelaz.exe)。
2. 下载网络权重文件(官方发布的 best network)。(因为权重是社区不断训练更新的 需额外下载)
3. 命令行启动引擎。 加载权重,检测到显卡后,做 OpenCL 算子性能调优。
4. 在图形界面GUI如 Lizzie可视化下棋。
所需要下载的文件如下:
https://github.com/leela-zero/leela-zero/releases Leela Zero Windows Release
https://zero.sjeng.org/best-network 权重文件
https://github.com/featurecat/lizzie/releases GUI Lizzie
1. 效果展示
左上角有一个实时胜率图 左下角是类似min-max 双方未来几步按照它最优解的下法(变化图)

棋盘上 上面的数字代表期望胜率(动作价值函数) 下面的数字是MCTS的访问次数
综合得蓝色是最推荐的点,绿色是次推荐的点,红色其次
(正常情况下会显示上面的圈圈 也可能会出现未知bug 不显示的情况)
可以ENTER可以让AI走下一步。 下方为我拿AI走黑棋,朋友走白棋的一局。

可以看见下方的胜率曲线从开局几步 白方失误开始 黑方胜率就一直稳定在99%以上。

2. 一步步实操步骤
2.1 命令行实操
1. 先创建一个GoAI文件夹 下载之前说的三个文件夹 解压命名为leelaz和lizzie

2. 把best-network文件重命名为weights.txt.gz 并且放在leelaz文件夹下
3. 打开命令提示符(Win+R → cmd)进入目录 cd /d D:\GoAI\leelaz
4. 启动引擎(GTP 模式 + 指定权重;有 GPU 就用 --gpu 0,没有就删掉):
leelaz.exe --gtp -w weights.txt.gz -t 8 --gpu 0
它会进行检查显卡配置做 OpenCL 算子性能调优

“Started OpenCL SGEMM tuner”表示它开始优化 矩阵乘法 (SGEMM) 的实现。Leela Zero 的神经网络大量依赖矩阵乘法,这一步会尝试不同配置,找到在你显卡上最快的计算方式。
(需要等待几分钟 并处在下面380种调优搜索)
Started OpenCL SGEMM tuner. Will try 380 valid configurations.
(1/380) KWG=16 KWI=2 MDIMA=8 MDIMC=8 MWG=16 NDIMB=16 NDIMC=16 NWG=64 SA=1 SB=1 STRM=0 STRN=0 TCE=0 VWM=2 VWN=4 0.1797 ms (2625.6 GFLOPS)
最后会停在设置搜索树的大小和缓存空间。 然后我们可以进行 一些命令行调试是否导入成功。
version 版本; boardsize 19 建立19路棋盘
clear_board 清空盘面; genmove b 让AI执黑棋线下

后续它会搜索一些点 周期性输出最好的点(MCTS探索次数最多的点)
Win 胜率多少,PV为后续若干步之后的双方最优盘面。
2.2 Lizzie GUI
在lizzie文件夹中有一个config.txt文件 要把开头的 "leelaz" "engine-command-list" 改为
"leelaz": {
"engine-command": "D:/GoAI/leelaz/leelaz.exe --gtp -w D:/GoAI/leelaz/weights.txt.gz -t 8 --gpu 0 -v 1600",
"engine-start-location": "D:/GoAI/leelaz",
"print-comms": false,
"show-lcb-winrate": false,
"max-analyze-time-minutes": 99999,
"analyze-update-interval-centisec": 10,
"max-game-thinking-time-seconds": 2,
"avoid-keep-variations": 30
}
Java Downloads | Oracle 需要事先下载好Java 之后在命令行中运行
cd /d D:\GoAI\lizzie
java -jar lizzie.jar
然后 enjoy yourself 吧 ~
更多推荐


所有评论(0)