skypilot - SkyPilotは、統一されたインターフェイスを介して、あらゆるクラウドで機械学習ワークロードを簡単に実行するためのフレームワークです。

(SkyPilot is a framework for easily running machine learning workloads on any cloud through a unified interface.)

Created at: 2021-08-12 07:32:15
Language: Python
License: Apache-2.0

スカイパイロット

ドキュメンテーション GitHub リリース スラックに参加する

あらゆるクラウドでジョブを簡単かつコスト効率よく実行

SkyPilotは、MLワークロード1を任意のクラウドで簡単かつコスト効率よく実行するためのフレームワークです。

スカイパイロットは、クラウドインフラの負担を抽象化します。

  • 任意のクラウド(AWS、Azure、GCP)でジョブとクラスターを起動
  • ゾーン/リージョン/クラウド間で希少なリソースを見つける
  • キュージョブとクラウドオブジェクトストアの使用

スカイパイロットはクラウドコストを削減します。

  • マネージドスポット:スポットVMを使用した3倍のコスト削減と、プリエンプションからの自動リカバリ
  • 自動停止:アイドル状態のクラスターのハンズフリークリーンアップ
  • ベンチマーク: ジョブに最適な VM の種類を見つける
  • オプティマイザー:ゾーン/地域/クラウド間で最良の価格を自動選択することで2倍のコスト削減

SkyPilotは、コードを変更することなく、既存のGPU、TPU、CPUワークロードをサポートします。

pip(クラウドを選択)またはソースからインストールします。

pip install "skypilot[aws,gcp,azure]"

はじめ

ドキュメントはここにあります。

1分でわかるスカイパイロット

SkyPilotタスクは、リソース要件、同期するデータ、セットアップコマンド、およびタスクコマンドを指定します。

この統一インターフェイス (YAML または Python API) で記述すると、タスクは使用可能な任意のクラウドで起動できます。これにより、ベンダーロックインが回避され、ジョブを別のプロバイダーに簡単に移動できます。

以下をファイルに貼り付けます。

my_task.yaml

resources:
  accelerators: V100:1  # 1x NVIDIA V100 GPU

num_nodes: 1  # Number of VMs to launch

# Working directory (optional) containing the project codebase.
# Its contents are synced to ~/sky_workdir/ on the cluster.
workdir: ~/torch_examples

# Commands to be run before executing the job.
# Typical use: pip install -r requirements.txt, git clone, etc.
setup: |
  pip install torch torchvision

# Commands to run as a job.
# Typical use: launch the main program.
run: |
  cd mnist
  python main.py --epochs 1

クローンを作成して作業ディレクトリを準備します。

git clone https://github.com/pytorch/examples.git ~/torch_examples

で起動します(注:この例ではGPUインスタンスへのアクセスが必要です):

sky launch

sky launch my_task.yaml

その後、スカイパイロットが以下のような重労働を行います。

  1. さまざまなクラウドで最低価格のVMインスタンスタイプを見つける
  2. VM をプロビジョニングし、クラウドが容量エラーを返した場合の自動フェールオーバーを使用する
  3. ローカルを VM に同期する
    workdir
  4. タスクのコマンドを実行して、タスクを実行するための VM を準備します
    setup
  5. タスクのコマンドを実行する
    run

スカイパイロットのデモ

SkyPilot の使用を開始するには、「クイックスタート」を参照してください。

詳細情報

詳細:

問題、機能要求、および質問

私たちはあなたのフィードバックを聞くことを嬉しく思います!

一般的なディスカッションについては、スカイパイロットのスラックにご参加ください。

貢献

私たちはプロジェクトへのすべての貢献を歓迎し、評価します!参加方法については、貢献を参照してください。

  1. SkyPilotは現在、機械学習ワークロードを対象としていますが、他の一般的なバッチワークロードをサポートし、使用されています。お客様のユースケースと、お客様の要件をより適切にサポートする方法についてお聞きできることを嬉しく思います。このディスカッションにぜひご参加ください!