Spotty drastically simplifies training of deep learning models on AWS and GCP:
- it makes training on GPU instances as simple as training on your local machine
- it automatically manages all necessary cloud resources including images, volumes, snapshots and SSH keys
- it makes your model trainable in the cloud by everyone with a couple of commands
- it uses tmux to easily detach remote processes from their terminals
- it saves you up to 70% of the costs by using AWS Spot Instances and GCP Preemtible VMs
- See the documentation page.
- Read this article on Medium for a real-world example.
Requirements:
- Python >=3.6
- AWS CLI (see Installing the AWS Command Line Interface) if you're using AWS
- Google Cloud SDK (see Installing Google Cloud SDK) if you're using GCP
Use pip to install or upgrade Spotty:
$ pip install -U spotty
-
Prepare a
spotty.yamlfile and put it to the root directory of your project: -
Start an instance:
$ spotty start
It will run a Spot Instance, restore snapshots if any, synchronize the project with the running instance and start the Docker container with the environment.
-
Train a model or run notebooks.
To connect to the running container via SSH, use the following command:
$ spotty sh
It runs a tmux session, so you can always detach this session using
Ctrl + b, thendcombination of keys. To be attached to that session later, just use thespotty shcommand again.Also, you can run your custom scripts inside the Docker container using the
spotty run <SCRIPT_NAME>command. Read more about custom scripts in the documentation: Configuration: "scripts" section.
Any feedback or contributions are welcome! Please check out the guidelines.
