jonathan-laurent/AlphaZero.jl

A generic, simple and fast implementation of Deepmind's AlphaZero algorithm.

What it solves

AlphaZero.jl provides a fast, simple, and generic implementation of DeepMind's AlphaZero algorithm. It aims to make the AlphaZero methodology—combining learning and search to explore large combinatorial spaces—accessible to students, researchers, and hackers who lack the the high-end distributed computing resources typically required by low-level C++ implementations.

How it works

The project implements the core AlphaZero algorithm in pure Julia code. It uses a combination of neural networks and Monte Carlo Tree Search (MCTS) to enable an agent to learn purely from self-play, without any supervision or prior knowledge of the game rules beyond the basic mechanics. The implementation is designed to be generic, allowing users to easily integrate new games or learning frameworks.

Who it’s for

It is designed for researchers, students, and hackers who want to experiment with AlphaZero-style reinforcement learning on standard desktop computers with a GPU, or scale their training to a cluster of machines without changing the code.

Highlights

  • High Performance: One to two orders of magnitude faster than pure Python alternatives (excluding JAX-based libraries).
  • Accessible Codebase: The core algorithm is contained in approximately 2,000 lines of hackable Julia code.
  • Generic Interfaces: Simplifies the addition of support for new games and learning frameworks.
  • Scalable: Supports training on a single computer or a cluster of machines with no code modifications.

Related

  • Project
  • Project
  • Project
  • Project