Easy-to-run ML workflows on any cloud
Project description
Easy-to-run ML workflows on any cloud
Define ML workflows as code and run via CLI. Use any cloud. Collaborate within teams.
Docs • Quick start • Usage • Slack
What is dstack?
dstack
is an open-source tool that enables defining ML workflows as code, running them easily on any cloud while saving
artifacts for reuse. It offers freedom to use any ML frameworks, cloud vendors, or third-party tools without requiring
code changes.
Installation
Use pip
to install dstack
:
pip install dstack --upgrade
Configure a remote
To run workflows remotely (e.g. in a configured cloud account),
configure a remote using the dstack config
command.
dstack config
? Choose backend. Use arrows to move, type to filter
> [aws]
[gcp]
[hub]
If you intend to run remote workflows directly in the cloud using local cloud credentials,
feel free to choose aws
or gcp
. Refer to AWS and GCP correspondingly for the details.
If you would like to manage cloud credentials, users and other settings centrally
via a user interface, it is recommended to choose hub
.
The
hub
remote is currently in an experimental phase. If you are interested in trying it out, please contact us via Slack.
Define workflows
Define ML workflows, their output artifacts, hardware requirements, and dependencies via YAML.
workflows:
- name: mnist-data
provider: bash
commands:
- pip install torchvision
- python mnist/mnist_data.py
artifacts:
- path: ./data
- name: train-mnist
provider: bash
deps:
- workflow: mnist-data
commands:
- pip install torchvision pytorch-lightning tensorboard
- python mnist/train_mnist.py
artifacts:
- path: ./lightning_logs
YAML eliminates the need to modify code in your scripts, giving you the freedom to choose frameworks, experiment trackers, and cloud providers.
Run workflows
Once a workflow is defined, you can use the dstack run
command to run it either locally or remotely.
Run locally
By default, workflows run locally on your machine.
dstack run mnist-data
RUN WORKFLOW SUBMITTED STATUS TAG BACKENDS
penguin-1 mnist-data now Submitted local
Provisioning... It may take up to a minute. ✓
To interrupt, press Ctrl+C.
Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
The artifacts from local workflows are also stored and can be reused in other local workflows.
Run remotely
To run a workflow remotely (e.g. in a configured cloud account), add the --remote
flag to the dstack run
command:
dstack run mnist-data --remote
RUN WORKFLOW SUBMITTED STATUS TAG BACKENDS
mangust-1 mnist-data now Submitted aws
Provisioning... It may take up to a minute. ✓
To interrupt, press Ctrl+C.
Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
The output artifacts from remote workflows are also stored remotely and can be reused by other remote workflows.
The necessary hardware resources can be configured either via YAML or through arguments in the dstack run
command, such
as --gpu
and --gpu-name
.
dstack run train-mnist --remote --gpu 1
RUN WORKFLOW SUBMITTED STATUS TAG BACKENDS
turtle-1 train-mnist now Submitted aws
Provisioning... It may take up to a minute. ✓
To interrupt, press Ctrl+C.
GPU available: True, used: True
Epoch 1: [00:03<00:00, 280.17it/s, loss=1.35, v_num=0]
Upon running a workflow remotely, dstack
automatically creates resources in the configured cloud account and destroys them
once the workflow is complete.
More information
For additional information and examples, see the following links:
Licence
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dstack-0.2.2.tar.gz
.
File metadata
- Download URL: dstack-0.2.2.tar.gz
- Upload date:
- Size: 105.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d76ed66ab4368a0f22d9869f333c0e2b3cd19c1d9816089b8dedcf70792aa0df |
|
MD5 | b47cad69ea3dbedaaba6f420e897a272 |
|
BLAKE2b-256 | 418d036b54640c0f85b322fcdcec403777c29d5c03730d6fd62e61d0f198ef8e |
File details
Details for the file dstack-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: dstack-0.2.2-py3-none-any.whl
- Upload date:
- Size: 13.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6c284eee0a6eb52c32e9a04e8cc042bee769ce352a78518c8a91ac2305be908 |
|
MD5 | 9f5901408e4c29bfc4eaf19135973d79 |
|
BLAKE2b-256 | 4b81748deda81d5cd8a02f3bbf53ce61d4cc5ecaaac7eaca251933e01c86c26c |