{"id":13856664,"url":"https://github.com/spotty-cloud/spotty","last_synced_at":"2025-07-13T19:32:14.501Z","repository":{"id":39643734,"uuid":"108915261","full_name":"spotty-cloud/spotty","owner":"spotty-cloud","description":"Training deep learning models on AWS and GCP instances","archived":false,"fork":false,"pushed_at":"2023-10-18T09:11:13.000Z","size":1317,"stargazers_count":493,"open_issues_count":22,"forks_count":43,"subscribers_count":9,"default_branch":"dev","last_synced_at":"2024-11-09T21:50:01.169Z","etag":null,"topics":["aws","deep-learning","docker","gcp","google-cloud","gpu","sagemaker","spot-instances"],"latest_commit_sha":null,"homepage":"https://spotty.cloud","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spotty-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":["apls777"]}},"created_at":"2017-10-30T22:26:37.000Z","updated_at":"2024-10-29T21:11:38.000Z","dependencies_parsed_at":"2024-02-06T05:54:37.868Z","dependency_job_id":"a6224b5b-8b18-4ca9-b0c1-2ab2c12b8265","html_url":"https://github.com/spotty-cloud/spotty","commit_stats":{"total_commits":285,"total_committers":5,"mean_commits":57.0,"dds":"0.021052631578947323","last_synced_commit":"bdbacd4e893bbc5e5372f11cac4658dc683a4904"},"previous_names":["apls777/cloud-training"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotty-cloud%2Fspotty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotty-cloud%2Fspotty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotty-cloud%2Fspotty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotty-cloud%2Fspotty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spotty-cloud","download_url":"https://codeload.github.com/spotty-cloud/spotty/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225912210,"owners_count":17544122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","deep-learning","docker","gcp","google-cloud","gpu","sagemaker","spot-instances"],"created_at":"2024-08-05T03:01:07.966Z","updated_at":"2024-11-22T14:30:31.954Z","avatar_url":"https://github.com/spotty-cloud.png","language":"Python","readme":"\u003cimg src=\"https://spotty.cloud/_static/images/logo_740x240.png\" width=\"370\" height=\"120\" /\u003e\n\n[![Documentation](https://img.shields.io/badge/documentation-reference-brightgreen.svg)](https://spotty.cloud)\n[![PyPI](https://img.shields.io/pypi/v/spotty.svg)](https://pypi.org/project/spotty/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/spotty.svg)\n![PyPI - License](https://img.shields.io/pypi/l/spotty.svg)\n\nSpotty drastically simplifies training of deep learning models on [AWS](https://aws.amazon.com/) \nand [GCP](https://cloud.google.com/):\n\n- it makes training on GPU instances as simple as training on your local machine\n- it automatically manages all necessary cloud resources including images, volumes, snapshots and SSH keys\n- it makes your model trainable in the cloud by everyone with a couple of commands\n- it uses [tmux](https://en.wikipedia.org/wiki/Tmux) to easily detach remote processes from their terminals\n- it saves you up to 70% of the costs by using [AWS Spot Instances](https://aws.amazon.com/ec2/spot/) \nand [GCP Preemtible VMs](https://cloud.google.com/preemptible-vms/)\n\n## Documentation\n\n- See the [documentation page](https://spotty.cloud).\n- Read [this](https://medium.com/@apls/how-to-train-deep-learning-models-on-aws-spot-instances-using-spotty-8d9e0543d365) \narticle on Medium for a real-world example.\n\n## Installation\n\nRequirements:\n  * Python \u003e=3.6\n  * AWS CLI (see [Installing the AWS Command Line Interface](http://docs.aws.amazon.com/cli/latest/userguide/installing.html)) \n  if you're using AWS\n  * Google Cloud SDK (see [Installing Google Cloud SDK](https://cloud.google.com/sdk/install)) \n  if you're using GCP\n\nUse [pip](http://www.pip-installer.org/en/latest/) to install or upgrade Spotty:\n\n    $ pip install -U spotty\n\n## Get Started\n\n1. Prepare a `spotty.yaml` file and put it to the root directory of your project:\n\n   - See the file specification [here](https://spotty.cloud/docs/user-guide/configuration-file.html).\n   - Read [this](https://medium.com/@apls/how-to-train-deep-learning-models-on-aws-spot-instances-using-spotty-8d9e0543d365) \n   article for a real-world example.\n\n2. Start an instance:\n\n    ```bash\n    $ spotty start\n    ```\n\n    It will run a Spot Instance, restore snapshots if any, synchronize the project with the running instance \n    and start the Docker container with the environment.\n\n3. Train a model or run notebooks.\n\n    To connect to the running container via SSH, use the following command:\n\n    ```bash\n    $ spotty sh\n    ```\n\n    It runs a [tmux](https://github.com/tmux/tmux/wiki) session, so you can always detach this session using\n    __`Ctrl + b`__, then __`d`__ combination of keys. To be attached to that session later, just use the\n    `spotty sh` command again.\n\n    Also, you can run your custom scripts inside the Docker container using the `spotty run \u003cSCRIPT_NAME\u003e` command. Read more\n    about custom scripts in the documentation: \n    [Configuration: \"scripts\" section](https://spotty.cloud/docs/configuration-file/#scripts-section-optional).\n\n## Contributions\n\nAny feedback or contributions are welcome! Please check out the [guidelines](CONTRIBUTING.md).\n\n## License\n\n[MIT License](LICENSE)\n","funding_links":["https://github.com/sponsors/apls777"],"categories":["Python","Frameworks"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotty-cloud%2Fspotty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspotty-cloud%2Fspotty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotty-cloud%2Fspotty/lists"}