Gian-Carlo Pascutto (GCP), the author of LeelaZero, kindly agreed to give us (EGN) an interview.
EGN: Gian-Carlo, I suppose that most go players have heard of you due to your LeelaZero software, but before that you were programming chess. Can you tell us some of the history of your Sjeng engine?
GCP: I wrote the first version as a school project and to learn chess programming. There were already a lot of regular chess engines, so I wrote something that could play several variants instead. It was a lot of fun, and many people appreciated it (it's the chess program that comes with Apple computers to this day!), but there was a big lack of opponents to test against. I got an opportunity to participate in the Open Dutch Computer Chess Championship, and decided to work on the regular chess part a bit in preparation. That tournament turned out to be a lot of fun, with a win over a professional opponent (The King, the engine powering ChessMaster) and I got hooked. The next summer, I did not do a regular student job, but wrote an improved engine to try to sell it: Deep Sjeng. It would eventually become one of the strongest engines and won two world championships.
EGN: What led you to become interested in writing an engine for go?
GCP: The computer chess world had recurrent issues with plagiarism which have made it less and less interesting as a programming competition. Meanwhile, a French researcher had published a breakthrough work on computer go, which reset the state of the art from manually adding carefully crafted Go knowledge, to fast searching programs that relied on comparatively minimal knowledge. So it seemed like a good time to try writing a program for Go. To top it off, the next Computer Chess World Championship was going to be held together with the Computer Olympiad in Beijing, China. This seemed like an appropriate location to debut in the Go competition as well.
EGN: I guess that somebody was either Bruno Bouzy (Indigo) or Sylvain Gelly(Mogo).
GCP: No, it was Rémi Coulom. The paper was "Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search" which introduced MCTS (Monte Carlo Tree Search). This was the real breakthrough - you could say it sealed the fate of humanity. Gelly and Wang improved the method by replacing some ad-hock constructions with a method that has a more firm mathematical basis...as long as you are willing to assume that playing Go is the same as playing at the slot machines in Vegas. A weird leap of science that will surely make Go players frown, but seems to work nevertheless.
EGN: What about in programming, has anyone in particular influenced your work?
GCP: The publication of Fruit by Fabien Letouzey was very instructive for me. Suddenly you have an extremely simple program that is far stronger than anything else. It was a hard lesson that testing everything is far more important than coming up with (complicated) ideas and code.
EGN: Did you have some friendly rivalry with an opponent you were interested in outdoing?
GCP: Not really. Opponents came and went. A few I would have considered colleagues and I had interesting discussions with. As this has mostly been a hobby, outdoing someone is somewhat restricted by the amount of time that can be committed.
EGN: You've had a lot of success, but what about embarrassing moments? (At Olympiads, did your software ever play out a broken ladder, or leave a Queen en-pris?)
GCP: Not really. During one of my first tournaments, I was lucky enough that someone told me: "You can easily see who the professionals and the amateurs are. The amateurs are the ones 'improving' their program between the rounds". The implication was, of course, that without time to test things properly, they were achieving the opposite. I've taken this advice to heart. Though when one relies on external help (operators, book makers, etc), I've certainly gotten a few grey hairs trying to impart the importance of this on others. In one case I got sponsored hardware delivered the day before leaving for a tournament in Austria (World Chess Championship 2003 in Graz), a new machine which was at the time one of the very first with AMD64 capability. There was no time to test anything, the port of the program had bugs and the result was very mediocre. But it didn't drop any queens or anything.
EGN: Do you actually play go yourself? I guess that the audience is bound to want to know your rank!
GCP: I last played Go almost 20 years ago. I played for some months in a club while I was a student but got distracted by other interests. I never had a real rank but my strength must have been about 15-20 kyu or so. Obviously, this is no hindrance for making a strong computer program. When developing visions systems for self-driving cars, nobody is asking for engineers with 20/20 vision either.
EGN: Are you interested in other strategy games, or do your hobbies lie elsewhere?
GCP: I started playing chess competitively again end of last year after one of my daughters asked me to teach her the game and I realized that they are old enough that I can afford to have such hobbies again :-)
EGN: For the non-experts out there, can you explain what the essential difference between Leela and LeelaZero is?
GCP: Leela has been trained on games from strong human players, and has quite some (human) knowledge and heuristics about the game programmed into it. She uses a combination of neural networks and Monte Carlo playouts. Leela Zero only knows the basic rules, nothing more, and only uses a neural network with no Monte Carlo simulations.
EGN: Were you surprised by the level of interest that LeelaZero generated?
GCP: Yes, very much. Based on the amount of contribution Stockfish's distributed testing effort gets, and the comparatively much larger amount of chess players in the west, I estimated we would get perhaps 10 or so computer go enthusiasts to run the client. In fact it's been generally over 500! Similarly there have been some very high quality code contributions as well.
EGN: Already a lot of projects are starting to make use of LeelaZero. I have seen Lizzie, SabakiLeela, and Iceelz. Do you have an idea yourself for a future teaching tool linked to Leela?
GCP: I will leave this to others as it's not so much fun for me. There is a basic GUI for the regular Leela out of necessity - many people that are less confident around computers would have big problems to download and install a separate engine and GUI, and I wanted to help them. At some point it will be upgraded to Leela Zero. I would be happy to just have a good game analysis GUI that handles variations well, with some kind of fuseki/joseki database and with a strong engine backing it, as chess players have had and used as their workhorse for decades. I hope that having open sourced Leela Zero accomplishes this. I also made the resulting networks and data public domain. If someone makes something really nice based on it and wants to charge money for their work, they can do so.
EGN: What are the goals for Leela Zero?
GCP: They've been shifting as the community has continued to provide computing resources (and enthusiasm!). Originally I just wanted to demonstrate that Alpha Zero could be replicated by a distributed effort and see if their results were reproducible. After that, I was really happy when it surpassed the regular Leela (and a bit later, all other public programs), which made me feel good as there was now really something to show for all the people who had contributed their computer time. Then beating a professional, and eventually surpassing humans altogether. I'm sure we've reached that point now. Strength-wise the only reason to continue much further now is to create some margin and get the same level on mobile phones.
By making everything free, it also provides a lower baseline for the public availability of good software and data. I can't say exactly how Leela Zero influenced things, but at least the TensorFlow team at Google, Facebook's PyTorch team and Tencent (to some extent) have now open sourced their Go efforts. Ironically only the original DeepMind team did not do so. Facebook's effort followed Leela Zero rather closely and their results gave us some good insight of where we'd end up. We were able to make some changes to improve performance when playing against a handicap based on seeing the weaknesses of their result.
EGN: Have you been able to make money from Leela Zero?
GCP: No. But I think it has made a lot of Go players happy.
EGN: Post AlphaGo, do you think that the work involved in Computer Go will retain its interest to developers? Or will it become a stale area?
GCP: It's hard to say. Computer chess had some decent years after Deep Blue. It's not because an IBM mainframe can beat the World Champion that this helps the players at home. It took some time before PC software was clearly stronger than humans. With Go things went fast though. Leela Zero already beats strong professionals on a home desktop. There are a few things to address such as playing better with handicap, different komi and maybe even Japanese rules. As long as there is a market, you will find developers. But for researchers, it's probably more fun to push the boundary at something that computers are still bad at, than pushing it even further past human limits.