Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There is a public distributed effort happening for Go right now: http://zero.sjeng.org/. They've been doing a fantastic job, and just recently fixed a big training bug that has resulted in a large strength increase.

I ported over from GCP's Go implementation to chess: https://github.com/glinscott/leela-chess. The distributed part isn't ready to go yet, we are still working the bugs out using supervised training, but will be launching soon!



Regarding supervised learning, what data do you use? Would it make sense to use endgame tablebases[1]?

1. https://en.wikipedia.org/wiki/Endgame_tablebase


We are using data from both human grandmaster games and self-play games of a recent Stockfish version. Both have resulted in networks that play reasonable openings, but we had some issues with the value head not understanding good positions. We think we have a line on why this is happening (too few weights in the final stage of the network), but this is exactly the purpose of the supervised learning debugging phase :).


This is really cool! The chart on that page makes it look like Leela Zero is already much much better than AlphaZero (~7400 Elo vs ~5200 Elo). I suspect I'm misinterpreting something though, could you clarify?


Leela Zero's ELO graph assumes that 0 ELO is completely random play, as a simple reference point. On the other hand Alphago uses the more common ELO scale where 0 is roughly equivalent to a beginner who knows the rules, so you can't directly compare the two.


I've been having fun following along with Leela Zero, it's a great way to understand how a project like this goes at significant scale. Good luck with Leela Chess, I'm excited for it!


From the leela-zero page :

> If your CPU is not very recent (Haswell or newer, Ryzen or newer), performance will be outright bad,

Obviously TPU >> GPU >> CPU

But are there special vector instructions added in Haswell? Or is this just general preference for a multi core newish cpu ?


Not sure if this is their reasoning, but Haswell introduced AVX2 instructions (https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Adv...)


AVX2 introduces vectorized Fused-Multiply-Add, for a 2x boost in linear algebra ops.


The irony here being you're using Stockfish move representation in a codebase written by the author of Sjeng :-)


What does SPRT stand for in that context?


Sequential probability ratio test, it is essentially a test that distinguishes between two hypotheses with high probability.

In the case of Leela Zero the idea is to train new networks continuously and have them fight against the current best network, which is replaced only when a new network is statistically stronger, according to SPRT.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: