You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SkyPilot is a framework for easily running machine learning[^1]workloads on any cloud through a unified interface. No knowledge of cloud offerings is required or expected – you simply define the workload and its resource requirements, and SkyPilot will automatically execute it on AWS, Google Cloud Platform or Microsoft Azure.
11
+
SkyPilot is a framework for easily running machine learning workloads[^1] on any cloud.
12
12
13
+
Use the clouds **easily** and **cost effectively**, without needing cloud infra expertise.
13
14
14
-
### Key features
15
+
_Ease of use & productivity_
15
16
***Run existing projects on the cloud** with zero code changes
16
-
***No cloud lock-in** – seamlessly run your code across different cloud providers (AWS, Azure or GCP)
17
-
***Minimize costs** by leveraging spot instances and automatically stopping idle clusters
18
-
***Automatic recovery from spot instance failures**
19
-
***Automatic fail-over** to find resources across regions and clouds
17
+
***Easily manage jobs** across multiple clusters
18
+
***Automatic fail-over** to find scarce resources (GPUs) across regions and clouds
20
19
***Store datasets on the cloud** and access them like you would on a local file system
21
-
***Easily manage job queues** across multiple clusters
20
+
***No cloud lock-in**– seamlessly run your code across different cloud providers (AWS, Azure or GCP)
22
21
22
+
_Cost saving_
23
+
* Run jobs on **spot instances** with **automatic recovery** from preemptions
* One-click use of **TPUs**, for high-performance, cost-effective training
26
+
* Automatically benchmark and find the cheapest hardware for your job
23
27
24
28
## Getting Started
25
29
You can find our documentation [here](https://skypilot.readthedocs.io/en/latest/).
@@ -29,7 +33,9 @@ You can find our documentation [here](https://skypilot.readthedocs.io/en/latest/
29
33
30
34
## Example SkyPilot Task
31
35
32
-
Tasks in SkyPilot are specified as a YAML file containing the resource requirements, data to be synced, setup commands and the task commands. Here is an example.
36
+
A SkyPilot task is specified as a YAML file containing the resource requirements, data to be synced, setup commands, and the task commands.
37
+
38
+
Once written in a YAML, the task can be launched on any available cloud. Example:
33
39
34
40
```yaml
35
41
# my_task.yaml
@@ -65,7 +71,7 @@ Launch with `sky launch`:
65
71
```bash
66
72
sky launch my_task.yaml
67
73
```
68
-
SkyPilot will perform multiple functions for you:
74
+
SkyPilot will perform multiple actions for you:
69
75
1. Find the lowest priced VM instance type across different clouds
70
76
2. Provision the VM
71
77
3. Copy the local contents of `workdir` to the VM
@@ -76,7 +82,13 @@ SkyPilot will perform multiple functions for you:
Please refer to [Quickstart](https://skypilot.readthedocs.io/en/latest/getting-started/quickstart.html) for more on how to use SkyPilot.
85
+
86
+
See [**`examples`**](./examples) for more YAMLs that run popular ML frameworks on the cloud with one command (PyTorch/Distributed PyTorch, TensorFlow/Distributed TensorFlow, HuggingFace, JAX, Flax, Docker).
87
+
88
+
Besides YAML, SkyPilot offers a corresponding [Python API](https://github.com/skypilot-org/skypilot/blob/master/sky/core.py) for more advanced programmatic use.
89
+
90
+
Refer to [Quickstart](https://skypilot.readthedocs.io/en/latest/getting-started/quickstart.html) for more on how to get started with SkyPilot.
91
+
80
92
81
93
## Issues, feature requests and questions
82
94
We are excited to hear your feedback! SkyPilot has two channels for engaging with the community - [GitHub Issues](https://github.com/skypilot-org/skypilot/issues) and [GitHub Discussions](https://github.com/skypilot-org/skypilot/discussions).
@@ -87,4 +99,4 @@ We are excited to hear your feedback! SkyPilot has two channels for engaging wit
87
99
We welcome and value all contributions to the project! Please refer to the [contribution guide](CONTRIBUTING.md) for more on how to get involved.
88
100
89
101
<!-- Footnote -->
90
-
[^1]: SkyPilot is primarily targeted at machine learning workloads, but it can also support many general workloads. We're excited to hear about your use case and would love to hear more about how we can better support your requirements - please join us in [this discussion](https://github.com/skypilot-org/skypilot/discussions/1016)!
102
+
[^1]: SkyPilot is currently targeted at machine learning workloads, but it can also support many general workloads. We're excited to hear about your use case and would love to hear more about how we can better support your requirements - please join us in [this discussion](https://github.com/skypilot-org/skypilot/discussions/1016)!
Copy file name to clipboardexpand all lines: docs/source/index.rst
+13-9
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,29 @@
1
1
SkyPilot Documentation
2
-
======================
2
+
=========================
3
3
4
4
.. figure:: ./images/skypilot-wide-light-1k.png
5
5
:width:60%
6
6
:align:center
7
7
:alt:SkyPilot
8
8
9
-
SkyPilot is a framework for easily running machine learning workloads on any cloud through a unified interface.
9
+
SkyPilot is a framework for easily running machine learning workloads on any cloud.
10
10
11
-
No knowledge of cloud offerings is required or expected – you simply define the workload and its resource requirements, and SkyPilot will automatically execute it on AWS, Google Cloud Platform or Microsoft Azure.
11
+
Use the clouds **easily** and **cost effectively**, without needing cloud infra expertise.
12
12
13
-
Key features:
13
+
*Ease of use & productivity*
14
14
15
15
- **Run existing projects on the cloud** with zero code changes
16
-
- **No cloud lock-in** – seamlessly run your code across different cloud providers (AWS, Azure or GCP)
17
-
- **Minimize costs** by leveraging spot instances and automatically stopping idle clusters
18
-
- **Automatic recovery from spot instance failures**
19
-
- **Automatic fail-over** to find resources across regions and clouds
16
+
- **Easily manage jobs** across multiple clusters
17
+
- **Automatic fail-over** to find scarce resources (GPUs) across regions and clouds
20
18
- **Store datasets on the cloud** and access them like you would on a local file system
21
-
- **Easily manage job queues** across multiple clusters
19
+
- **No cloud lock-in** – seamlessly run your code across different cloud providers (AWS, Azure or GCP)
20
+
21
+
*Cost saving*
22
22
23
+
- Run jobs on **spot instances** with **automatic recovery** from preemptions
1.[**`resnet_app.py`**](./resnet_app.py): ResNet50 training on GPUs, adapted from [tensorflow/tpu](https://github.com/tensorflow/tpu).
14
+
15
+
-[**`huggingface_glue_imdb_app.yaml`**](./huggingface_glue_imdb_app.yaml): Use [Huggingface Transformers](https://github.com/huggingface/transformers/) to finetune a pretrained BERT model.
16
+
17
+
-[**`resnet_distributed_torch.yaml`**](./resnet_distributed_torch.yaml): Run Distributed PyTorch (DDP) training of ResNet50 on 2 nodes.
18
+
19
+
-[**`detectron2_app.yaml`**](./detectron2_app.yaml): Run Detectron2 on a V100 GPU.
20
+
21
+
- TPU examples
22
+
-[**`tpu/tpu_app.yaml`**](./tpu/tpu_app.yaml): Train on a **TPU node** on GCP. Finetune BERT on Amazon Reviews for sentiment analysis.
23
+
-[**`tpu/tpuvm_mnist.yaml`**](./tpu/tpuvm_mnist.yaml): Train on a **TPU VM** on GCP. Train on MNIST in Flax (based on JAX).
24
+
25
+
-[**`resnet_app.py`**](./resnet_app.py): ResNet50 training on GPUs, adapted from [tensorflow/tpu](https://github.com/tensorflow/tpu).
11
26
12
27
The training data is currently a public, "fake_imagenet" dataset (`gs://cloud-tpu-test-datasets/fake_imagenet`, 70GB).
13
-
14
-
2.[**`resnet_distributed_tf_app.py`**](./resnet_distributed_tf_app.py): **Distributed training** variant of the above, via TensorFlow Distributed.
15
28
16
-
3.[**`resnet_distributed_torch_app.py`**](./resnet_distributed_torch_app.py): Distributed training variant of the above, via PyTorch Distributed.
29
+
30
+
-[**`resnet_distributed_tf_app.py`**](./resnet_distributed_tf_app.py): **Distributed training** variant of the above, via TensorFlow Distributed.
17
31
18
-
4.[**`huggingface_glue_imdb_app.py`**](./huggingface_glue_imdb_app.py): Use [Huggingface Transformers](https://github.com/huggingface/transformers/) to finetune a pretrained BERT model.
19
-
20
-
5.[**`huggingface_glue_imdb_grid_search_app.py`**](./huggingface_glue_imdb_grid_search_app.py): Run **grid search** on the above. Run many trials concurrently on the same VM.
32
+
-[**`huggingface_glue_imdb_grid_search_app.py`**](./huggingface_glue_imdb_grid_search_app.py): **Grid search**: run many trials concurrently on the same VM.
21
33
22
-
6.[**`tpu_app.py`**](./tpu/tpu_app.py): **Train on a TPU** (v3-8) on GCP. Finetune BERT on Amazon Reviews for sentiment analysis.
23
34
35
+
...and many more.
24
36
25
37
General examples:
26
38
27
-
1.[**`multi_echo.py`**](./multi_echo.py): Launch and schedule hundreds of bash commands in the cloud, with configurable resources. Similar to grid search.
39
+
-[**`detectron2_docker.yaml`**](./detectron2_docker.yaml): Using Docker to run Detectron2 on GPUs.
40
+
41
+
-[**`using_file_mounts.yaml`**](./using_file_mounts.yaml): Using `file_mounts` to upload local/cloud paths to a cluster.
42
+
43
+
-[**`multi_hostname.yaml`**](./multi_hostname.yaml): Run a command on multiple nodes.
44
+
45
+
-[**`env_check.yaml`**](./env_check.yaml): Using environment variables in the `run` commands.
46
+
47
+
-[**`multi_echo.py`**](./multi_echo.py): Launch and schedule hundreds of bash commands on the clouds, with configurable resources. Similar to grid search.
28
48
29
-
## TODO: non-runnable apps
30
-
1.[**`timm_app.py`**](./timm_app.py): the [PyTorch image models (timm)](https://github.com/rwightman/pytorch-image-models) package.
31
-
- Not runnable due to requiring ImageNet images, not tfrecords; consider using https://github.com/mlcommons/inference/blob/master/vision/classification_and_detection/tools/make_fake_imagenet.sh.
0 commit comments