Minigo is a TensorFlow-based reinforcement learning engine designed to master the game of Go. It functions as a comprehensive system for training neural networks to predict board policies and game outcomes, utilizing a model trainer to generate self-play data and optimize weights.
The project is distinguished by its ability to perform large-scale game simulations using Kubernetes to distribute worker nodes across CPU, GPU, and TPU hardware. It employs a Monte Carlo Tree Search implementation to identify optimal moves and supports specialized hardware acceleration, including inference on Edge TPUs.
The engine covers a broad set of capabilities including a full reinforcement learning pipeline, game logic simulation, and data management for SGF extraction and binary serialization. It integrates the Go Text Protocol to communicate with external game interfaces and provides tools for game state visualization and variation analysis.