AIパーソナル・ラーニング
と実践的なガイダンス
TRAE

SkyPilot: あらゆるクラウドでAIとバッチタスクを効率的に実行するオープンソースフレームワーク

はじめに

SkyPilotは、カリフォルニア大学バークレー校のSky Computing Labが始めたオープンソースのフレームワークで、あらゆるクラウドインフラ上でAIやバッチ処理タスクを効率的に実行できるように設計されています。14以上のクラウドサービス(AWS、GCP、Azureなど)とKubernetesをサポートするSkyPilotは、統一された実行インターフェース、大幅なコスト削減、GPUの高い可用性を提供し、シンプルなYAMLまたはPython APIを通じて設定することで、ユーザーはコードを修正することなくクラウドにタスクをデプロイでき、最適なリソースを自動的に選択し、フォールトトレランスを実現する。SkyPilotは、ユーザーがコードを修正することなくクラウドにタスクをデプロイし、最適なリソースを自動的に選択し、フォールトトレランスを可能にする。2022年のリリース以来、GitHubで100万以上のダウンロードと7k以上のスターを集め、機械学習モデルのトレーニング、ハイパーパラメータのチューニング、バイオインフォマティクスなどで広く利用されている。

SkyPilot: あらゆるクラウドでAIとバッチタスクを効率的に実行するオープンソース・フレームワーク-1


 

機能一覧

  • マルチクラウドのミッション展開AWS、GCP、Azure、Kubernetesなど14以上のクラウド上でのタスク実行をサポートし、単一クラウドベンダーのロックインを回避。
  • コスト最適化最も安価なクラウド・リージョンやインスタンス(オンデマンドやスポット・インスタンスなど)を自動的に選択し、最大3~6.5倍のコスト削減を実現します。
  • GPU/TPUサポートGPU(NVIDIA A100など)とTPUリソースをシームレスにスケジューリング・管理し、計算効率を向上させます。
  • 自動障害復旧容量不足や先取りが発生した場合、自動的に他のクラウドやリージョンに切り替えるため、タスクが中断されることはありません。
  • コードとデータの同期ローカルのコードとデータをクラウドクラスターに自動的に同期し、デプロイプロセスを簡素化します。
  • タスクキュー管理ハイパー・パラメーター・チューニングのようなシナリオのための大規模な同時実行タスク(例えば2000以上のジョブ)をサポートします。
  • サービス展開(SkyServe)HTTPS サポートとロードバランシングポリシーを提供し、AI モデルサービスの展開を容易にします。
  • リザーブド・インスタンスのサポートAWS Capacity Blocks、GCP Dynamic Workload Schedulerなどのオンプレミスリソースを統合します。

 

ヘルプの使用

SkyPilotは、開発者、研究者、ビジネスユーザーが簡単にインストールして使用できます。以下では、SkyPilotの主な機能のインストール、設定、操作方法について詳しく説明します。

設置プロセス

  1. 環境準備
    Python 3.8以降がローカルにインストールされていること、および pip パッケージ管理ツール。依存関係の衝突を避けるため、仮想環境を推奨する:

    python3 -m venv skypilot_env
    source skypilot_env/bin/activate
  1. SkyPilotのインストール
    とおす pip 最新バージョンをインストールしてください:

    pip install -U "skypilot[all]"
    

    この中には [all] クラウドでサポートされている依存関係がすべてインストールされていることを示します。特定のクラウド(AWSなど)のみが必要な場合は、次のように置き換えます。 skypilot[aws].

  2. クラウド認証
    対象クラウドの認証情報を設定します。AWSを例に挙げる:

    • AWS CLIをインストールします:pip install awscli
    • 認証情報を設定する:aws configureアクセス・キーとシークレット・キーを入力する。
      その他のクラウド(GCPやAzureなど)については、公式ドキュメントを参照して同様の設定を行う。
  3. インストールの確認
    以下のコマンドを実行して、インストールが成功したかどうかを確認する:

    sky check
    

    出力には、有効になっているクラウド・サービスのステータスが表示される。

主な機能

1.ミッション・プロファイルの作成

SkyPilotはYAMLファイルを使ってタスクを定義します。例えば、PyTorchモデルを学習するには train.yaml::

resources:
accelerators: A100:1  # 使用 1 个 A100 GPU
num_nodes: 1         # 单节点
workdir: ~/my_project  # 同步本地项目目录
setup: |               # 安装依赖
pip install torch torchvision
run: |                 # 运行任务
python main.py --epochs 10
  • resourcesGPUの種類や数などの計算資源を指定します。
  • workdirクラウドに自動同期するローカルコードカタログ。
  • setup実行前の準備コマンド。
  • runミッション実行コマンド。

2.マンデートの開始

ターミナルで実行:

sky launch -c my-cluster train.yaml
  • -c my-clusterクラスタに名前を付け、その後の管理を容易にした。
  • SkyPilotは自動的に最適なクラウドリソースを選択し、タスクを開始します。

3.委任状況の確認

クラスタの状態を確認する:

sky status

実行中のすべてのクラスタとそのリソースの使用状況を表示します。

4.コスト最適化とスポットの例

スポットインスタンスを利用してコストを削減する:

sky launch -c my-spot-cluster train.yaml --use-spot

SkyPilotは、スポットインスタンスの停止を自動的に管理し、タスクを再開します。

5.デプロイメントサービス(SkyServe)

LLaMAモデルの展開の例として、以下のものを作成する。 serve.yaml::

resources:
accelerators: A100:1
service:
replica: 2          # 2 个副本
ports: 8080         # 服务端口
run: |
python serve.py --model llama

サービスを開始する:

sky serve up serve.yaml -n llama-service

生成されたHTTPSエンドポイントにアクセスしてサービスを利用する。

6.大規模なコンカレント・ミッション

2000以上のタスクを実行(ハイパーパラメーターのチューニングなど):

sky jobs launch -c my-jobs train.yaml --num-jobs 2000

SkyPilotは自動的にリソースを割り当て、キューを管理します。

注目の機能

マルチクラウド・スイッチング

AWSにA100がない場合は、他のクラウドを指定してください:

sky launch -c my-cluster train.yaml --cloud gcp

または、SkyPilotが最も安いクラウドを自動的に選択します:

sky launch -c my-cluster train.yaml --cloud cheapest

GPUスケジューリング

利用可能なGPUリソースを見る

sky show-gpus

需要に応じて動的に調整 resources 正鵠を得る accelerators パラメーター

ロギングとデバッグ

タスクログをリアルタイムで表示

sky logs my-cluster

デバッグモードを有効にする:

export SKYPILOT_DEBUG=1
sky launch -c my-cluster train.yaml

ほら

  • クレデンシャルのセキュリティクラウド認証情報ファイル(たとえば ~/.aws)の許可を正しく与え、漏れを防ぐ。
  • リソースリリースタスクが完了したらクラスタを手動でシャットダウンする:
    sky down my-cluster
    
  • ドキュメンテーション・サポートより高度な使い方については、SkyPilotの公式ドキュメントを参照してください。

これらのステップを踏むことで、ユーザーはSkyPilotをすぐに使い始め、AIやバッチタスクを効率的に実行できるようになります。

無断転載を禁じます:チーフAIシェアリングサークル " SkyPilot: あらゆるクラウドでAIとバッチタスクを効率的に実行するオープンソースフレームワーク
ja日本語