Fast implementation of DeepMind's AlphaZero algorithm in Julia
1–10 of 73 posts
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#2Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#3Edit: I was mainly asking because I was curious about the relative expressiveness Julia...
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#4I don't know anything about Julia...how hard would this be to port to python or a c-style language? Edit: I was mainly asking because I was curious about the relative expressiveness Julia...
The point of that project is to be a very fast alternative to those implementations while being more accessible than a C++ implementation.
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#5https://github.com/cgreer/alpha-zero-boosted
It's mostly to understand how AlphaZero&Friends work. I'm also curious about how well a GBDT could do, and if there are self-play techniques that can accelerate training.
The nice thing about a GBDT is that, unlike when using a NN, you can do thousands of value/policy lookups per second on a single core. So it should be cheaper to scale self-play and run a lot of self-play experiments (assuming the self-play learnings when using the GBDT model transfer to when you use the more-powerful NN in these environments).
If you're curious about accelerating self-play training, check out David Wu's work (https://arxiv.org/pdf/1902.10565.pdf). He's the creator of KataGo. I implemented his "Playout Cap Randomization" technique in my implementation above and, sure enough, it's much more efficient: https://imgur.com/a/epaKtDY. It seems like it's still early days in terms of how efficient self-play training is.
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#6I don't know anything about Julia...how hard would this be to port to python or a c-style language? Edit: I was mainly asking because I was curious about the relative expressiveness Julia...
In fact, one of the things we want to do is maximize the performance of the Julia implementation. We hope to co-develop the compiler and ML stack to address these issues as they come up.
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#7I've been working on a Python implementation that uses Gradient Boosted Decision Trees (LightGBM/Treelite) instead of using a neural network for the value/policy models: https://github.com/cgreer/alpha-zero-boosted It's mostly to understand how AlphaZero&Friends work. I'm also curious about how well a GBDT could do, and if there are self-play techniques that can accelerate training. The nice thing about a GBDT is tha…
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#8Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#9I don't know anything about Julia...how hard would this be to port to python or a c-style language? Edit: I was mainly asking because I was curious about the relative expressiveness Julia...
Re: Fast implementation of DeepMind's AlphaZero algorithm in Julia
#10Also, is this really faster than PyTorch/TF? Last time I benchmarked Flux for non-trivial networks, the speed was quite good with small models but memory usage was ~5x higher than pytorch, and I couldn’t fit my models on the GPU for flux. For large models, I had to compromise on batch size in Julia, although maybe with Zygote.jl the memory issues have been resolved?