Sayuri
Sayuri copied to clipboard
AlphaZero based engine for the game of Go (圍棋/围棋).
Sayuri
Let's ROCK!
Sayuri is a GTP-compliant go engine based on Deep Convolutional Neural Network and Monte Carlo Tree Search. Learning the game of Go without strategic knowledge from human with AlphaZero-based algorithm. She is strongly inspired by Leela Zero and KataGo. The board data structure, search algorithm and network format are borrowed from Leela Zero in the beginning. Current version follows the KataGo research, the engine supports variable komi and board size now. Some methods or reports you may see my articles (some are chinese).
Quick Start via Terminal
First, you need a executable weights. Download the old v0.6 weights here or last v0.7 weights here. Some description of weights and RL progression is here. If you want to use the older network, please use the v0.5 engine at the save-last-v050
branch.
Then start the program with GTP mode via the terminal/PowerShell, please enter
$ ./sayuri -w <weights file> -t 1 -b 1 -p 400
You will see the diagnostic verbose. If the verbose includes Network Verison
information, it means you success to execute the program with GPT mode. For more arguments, please give the --help
option.
$ ./sayuri --help
Execute Engine via Graphical Interface
Sayuri is not complete engine. You need a graphical interface for playing with her. She supports any GTP (version 2) interface application. Sabaki and GoGui are recommended because Sayuri supports some specific analysis commands.
- Sabaki analysis mode
- GoGui analysis commands
Build From Source
Please see this section. If you are Windows platform, you may download the executable file from release page.
Reinforcement Learning
Sayuri is a fairly fast self-play learning system for the game of Go. The current performance is apparently better than KataGo g104 which is one of fastest system in 2019s. The pictute shows the performance of v0.6 engine versus KataGo. The picture source is here. Here will describe how to build the self-play loop.
Todo
- Support NHWC format.
- Support distributed computation.
- Support KataGo analysis mode.
Other Resources
- Go Text Protocol, https://www.gnu.org/software/gnugo/gnugo_19.html
- Leela Zero, https://github.com/leela-zero/leela-zero
- KataGo methods, https://github.com/lightvector/KataGo/blob/master/docs/KataGoMethods.md
- YouTube, playing with Pachi.
- Supported analysis commands, analyze.
- AlphaZero 之加速演算法實作 (v0.4~v0.5), describe some methods for old version.
- Journal
License
The code is released under the GPLv3, except for threadpool.h, cppattributes.h, Eigen and Fast Float, which have specific licenses mentioned in those files.
Contact
[email protected] (Hung-Tse Lin)