Github 项目推荐 | 最小化类 AlphaGo Zero 引擎 —— Nochi

时间:2022-05-04
本文章向大家介绍Github 项目推荐 | 最小化类 AlphaGo Zero 引擎 —— Nochi,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Nochi 是一个极简的 AlphaGo 引擎,它用 Keras 神经模型代替 Monte Carlo 模拟。Nochi 不会像 Michi 那样受人瞩目,但是它仍有一定的作用。

这不是一个像 AlphaGo 那样真正的「零知识」(zero-knowledge)系统,作者稍微做了一些调整。

Nochi 已经被证实能够在两周内接近 GNUGo 的水平(8500 场比赛,6 线程加一款 Tesla M60 GPU)。

用法:

首先,在脚本的开始处设定 N 的值来确定棋盘的大小,N 默认为 19.

开始训练:

python ./michi.py selfplay

它会自动生成一个 ID 并做周期性快照(这些数字应该乘以线程数来获得真实的局数)。要恢复成其他的模式(比如开始 gameio 或者 gtp),请将 ID 设置为:

python ./michi.py selfplay G171107T013304_000000150

开始游戏,你可以传递 gtp 参数并在 gogui 中启动它,或者让它用 GNUGo 玩游戏:

gogui-1.4.9/bin/gogui-twogtp -black 'python ./michi.py gtp G171107T013304_000000150' -white 'gnugo --mode=gtp --chinese-rules --capture-all-dead' -size 7 -komi 7.5 -verbose -auto -alternate -games 20 -sgffile x

Nochi 还支持监督训练:

while true; do find GoGoD-2008-Winter-Database/ -name '*.sgf' | shuf; done | python ./michi.py replay_train

用 smt 将用于位置输出的实际 MCTS 训练信号和数值监督结合起来:

while true; do find GoGoD-2008-Winter-Database/ -name '*.sgf' | shuf; done | python ./michi.py replay_traindist G171107T224743_R000030000

你可以用快照在自我对局、监督、监督 + MCTS 中自由切换,它们之间是相互兼容的。

Github 地址:

https://github.com/rossumai/nochi