May 2, 2018

Facebook Open Sources ELF OpenGo

By: Yuandong Tian, Larry Zitnick

Today, Facebook AI Research (FAIR) open sourced ELF OpenGo, an AI bot that has defeated world champion professional Go players, based on our existing ELF platform for Reinforcement Learning Research. We are releasing both the trained model and the code used to create it.

Inspired by DeepMind’s work, we kicked off an effort earlier this year to reproduce their recent AlphaGoZero results using FAIR’s Extensible, Lightweight Framework (ELF) for reinforcement learning research. The goal was to create an open source implementation of a system that would teach itself how to play Go at the level of a professional human player or better. By releasing our code and models we hoped to inspire others to think about new applications and research directions for this technology.

ELF OpenGo has been successful playing against both other open source bots and human Go players. We played a series of games (198 wins, 2 losses) against LeelaZero (158603eb, Apr. 25, 2018), the strongest publicly available bot, using its default settings and no pondering. We also achieved a 14 win, 0 loss record against four of the top 30 world-ranked human Go players. These games were all played using a single GPU making moves every 50 seconds, Chinese rules with 7.5 komi, and unlimited time given to human players to consider their moves. We thank the LeelaZero team for their high quality work, and our hope is that open-sourcing our bot can similarly benefit community initiatives like LeelaZero. We would additionally like to thank Mr. Kim Jiseok, Mr. Shin Jinseo, Mr. Park Yeonghun, and Mr. Choi Cheolhan of the Korean Baduk association for their eager participation, challenging our bot through a series of games.

We have also made improvements to ELF, first released in June of 2016, upgrading the framework for higher efficiency, more friendly APIs, and support of distributed computation against thousands of machines. As part of PyTorch, ELF makes it easy for researchers to try different ideas of reinforcement learning with fast and flexible experiments.

The ELF OpenGo code and the model are available under the BSD license at

We look forward to the Go community exploring the strengths and weaknesses of the bots, and hope they provide Go players with insightful knowledge and the ability to experiment with new strategies.

Update May 3, 2018: An earlier version of this post stated a 200:0 record against LeelaZero. However, we discovered a flaw in our setup that resulted in LeelaZero using a tighter time budget than what we had expected. After correcting this issue and giving 50 seconds per move to both sides, we reran the series of games. The 198:2 record stated above is from this latest run. We thank the LeelaZero team for bringing this to our attention.