Skip to content

Commit 3cc7405

Browse files
README polishes. (skypilot-org#1110)
* Readme. * Update README.md * Update README.md * Update README.md * Update README.md * Docs readme * Fix ver * Reword * Item * Update * Sync taglines to docs
1 parent d5db2ac commit 3cc7405

File tree

4 files changed

+69
-35
lines changed

4 files changed

+69
-35
lines changed

README.md

+23-11
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,22 @@
88
![pytest](https://github.com/skypilot-org/skypilot/actions/workflows/pytest.yml/badge.svg)
99
[![Documentation Status](https://readthedocs.org/projects/skypilot/badge/?version=latest)](https://skypilot.readthedocs.io/en/latest/?badge=latest)
1010

11-
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.
1212

13+
Use the clouds **easily** and **cost effectively**, without needing cloud infra expertise.
1314

14-
### Key features
15+
_Ease of use & productivity_
1516
* **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
2019
* **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)
2221

22+
_Cost saving_
23+
* Run jobs on **spot instances** with **automatic recovery** from preemptions
24+
* Hands-free cluster management: **automatically stopping idle clusters**
25+
* One-click use of **TPUs**, for high-performance, cost-effective training
26+
* Automatically benchmark and find the cheapest hardware for your job
2327

2428
## Getting Started
2529
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/
2933

3034
## Example SkyPilot Task
3135

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:
3339

3440
```yaml
3541
# my_task.yaml
@@ -65,7 +71,7 @@ Launch with `sky launch`:
6571
```bash
6672
sky launch my_task.yaml
6773
```
68-
SkyPilot will perform multiple functions for you:
74+
SkyPilot will perform multiple actions for you:
6975
1. Find the lowest priced VM instance type across different clouds
7076
2. Provision the VM
7177
3. Copy the local contents of `workdir` to the VM
@@ -76,7 +82,13 @@ SkyPilot will perform multiple functions for you:
7682
<img src="https://i.imgur.com/TgamzZ2.gif" alt="SkyPilot Demo"/>
7783
</p>
7884

79-
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+
8092

8193
## Issues, feature requests and questions
8294
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
8799
We welcome and value all contributions to the project! Please refer to the [contribution guide](CONTRIBUTING.md) for more on how to get involved.
88100

89101
<!-- 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)!

docs/source/conf.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
copyright = '2022, SkyPilot Team'
1414
author = 'the SkyPilot authors'
1515

16-
release = '0.1'
17-
version = '0.1.0'
16+
release = '0.1.1'
17+
version = '0.1.1'
1818

1919
# -- General configuration
2020

docs/source/index.rst

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
SkyPilot Documentation
2-
======================
2+
=========================
33

44
.. figure:: ./images/skypilot-wide-light-1k.png
55
:width: 60%
66
:align: center
77
:alt: SkyPilot
88

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.
1010

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.
1212

13-
Key features:
13+
*Ease of use & productivity*
1414

1515
- **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
2018
- **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*
2222

23+
- Run jobs on **spot instances** with **automatic recovery** from preemptions
24+
- Hands-free cluster management: **automatically stopping idle clusters**
25+
- One-click use of **TPUs**, for high-performance, cost-effective training
26+
- Automatically benchmark and find the cheapest hardware for your job
2327

2428
.. toctree::
2529
:maxdepth: 1

examples/README.md

+31-13
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,49 @@
11
# Example SkyPilot applications
22

33
To launch an example:
4-
```python
4+
```bash
5+
# Recommended: YAML + CLI
6+
sky launch examples/<name>.yaml
7+
8+
# Advanced: programmatic API
59
python examples/<name>.py
610
```
711

812
Machine learning examples:
913

10-
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).
1126

1227
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.
1528

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.
1731

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.
2133

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.
2334

35+
...and many more.
2436

2537
General examples:
2638

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.
2848

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.
49+
...and many more.

0 commit comments

Comments
 (0)