ImparaAI / checkers-prediction

Checkers/draughts AI training and prediction app
4 stars 2 forks source link

Modification for a different game #2

Open jasondaming opened 4 years ago

jasondaming commented 4 years ago

I have taken the Checkers repo and made one that looks very similar for Bobail. This is a different game but I think it will be easily "solved" by this system. I have looked at the ImparaAI MCTS library and this one and I think the easiest thing to do to get the system working for Bobail would be to fork this repo do you agree? Any tips on what is working here and what I should avoid?

sdsomma commented 4 years ago

Hey @jasondaming thanks for interest in this project. It has been a while since we worked on this repo but I think your correct that you should be able to fork this repo and have it work for a new game. The most important things you will need to change surrounds the model. Your input/output/action space will have to modeled to your specific game. Also you will want to play around with how many hidden layers you train with, lessons per training session and total training time. I would play around with these locally first and once you have confidence ramp up in a cloud environment. On our project, we ran the nvidia.Dockerfile in a google cloud environment and saw decent results in a 24 hour training window.

janhartigan commented 4 years ago

Yep as @sdsomma said, the key thing (as with most things ML) is the shape of the inputs and outputs. Everything else is essentially a shrunken-down version of AlphaZero (because we're not google rich). Most of our compute time was taken up by the actual simulation of the games rather than the training, so optimizing your game simulation code is probably the most important thing if you want to get good training sessions without spending tons of money or time.

It also might be worth poking around the latest research papers to see if there are some newer/better NN layer architectures. When we first began this project we didn't really know where to start, but looking through the DeepMind papers (and really understanding them) was probably the biggest key in unlocking the knowledge around the NN side of things. The MCTS stuff should be pretty straightforward using the library we made.

jasondaming commented 4 years ago

I am having a lot of version issues building the docker files (I am mainly trying to get cpu to work right now). I noticed you didn't include version numbers so I am not exactly sure what it installed when you built. I am not an expert or anything on this process. I wonder if debian:strectch-slim is limiting us? I have got errors about needing tensorflow2.2, the pip version that installed was 9 which limited that, and now I can't get a semi recent version of python on there and circus says it needs >3.4

jasondaming commented 4 years ago

So I changed the CPU dockerfile to use the Python 3.8 slim buster. It now only gets hung up on not being able to "find /usr/lib/python" any idea how to fix this or if this is even the best path to go down?

jasondaming commented 4 years ago

I was able to get past the above problem by removing that line. Things at least run now but it looks like it can't find the prediction.db do I need to manually create it?