Codify your workflows and the resources they need. Run workflows and keep track of logs and artifacts in real-time.
Define your workflows and the resources they need via a simple and extensible YAML format.
Use your own servers as runners, or let dstack set up runners in your own cloud account based on the need.
Run workflows and watch their progress via the CLI. Browse runs, logs, and artifacts via a convenient dashboard.
Browse workflow logs in real-time as your workflow is running.
Persist output artifacts in S3-compatible storage in real-time as your workflow is running.
Tag successful runs with tags for later reuse.
Define every step of your training process as an individual reproducible workflow.
For each workflow, define variables, specify a Docker image, commands, other workflows it depends on, and output artifacts.
No changes in your code are required.
Run workflows via the CLI. Browse real-time logs and artifacts. Stop and resume runs.
Mark successful runs with tags. Reuse them yourself and share them with others.
Register your local machine or any remote servers as self-hosted runners.
After you set up self-hosted runners, submit any workflow to run there from your laptop using the CLI.
Authorize dstack to run workflows in your own cloud account.
Use either regular or spot instances.
If a spot instance terminates before finishing the run, dstack will re-assign it to another instance without losing the checkpoints.