ML Application for drafting heroes in the Dota 2 game.
OpenDota API is scraped to retrieve match ids along with the teams' drafts and outcome.
- Google Cloud Function
- Google Cloud Pub/Sub
- Google Cloud Scheduler
- Google Cloud Dataflow / Apache Beam
- Google Cloud AI Platform
- Weights and Biases
- Trigger data collection from CloudScheduler using a Pub/Sub topic
- Cloud function collects matches from the OpenDota API and saves them to CloudStorage
- Trigger manually a batch processing of data that filters matches of interest and saves them to CloudStorage
- These files are set up for a training job and are split into train/val/test folders
- Train a model to predict the outcome of a match given the draft
- Currently saving the model using Weights & Biases, working on training using Cloud AI Platform
- The model is stored online and can be retrieved for evaluation
- Use the trained model to suggest heroes in a web UI using torch-js
In order for the project to work as intended, you'll need to set up the following files:
draft/configs/gar.yaml
draft/configs/gcs.yaml
draft/configs/opendota.yaml
draft/configs/wandb.yaml
See the specific README for more details.