AIパーソナル・ラーニング
と実践的なガイダンス
サイバーナイフ用ドローイングミラー

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以降がローカルにインストールされていること、および ピップ パッケージ管理ツール。依存関係の衝突を避けるため、仮想環境を推奨する:

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

    pip install -U "skypilot[all]"
    

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

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

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

    スカイチェック
    

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

主な機能

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

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

リソース: A100:1
アクセラレータ: A100:1 A100 GPUを1つ使用する#
num_nodes: 1 # シングルノード
workdir: ~/my_project # ローカル・プロジェクト・ディレクトリの同期
setup: | #の依存関係をインストールします。
pip install torch torchvision
run: | #の実行タスク
python main.py --epochs 10
  • リソースGPUの種類や数などの計算資源を指定します。
  • ワークディレクトリクラウドに自動同期するローカルコードカタログ。
  • セットアップ実行前の準備コマンド。
  • 走るミッション実行コマンド。

2.マンデートの開始

ターミナルで実行:

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

3.委任状況の確認

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

スカイステータス

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

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

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

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

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

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

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

リソース
アクセラレータ: A100:1
service: replica: 2 # 2 replicas
レプリカ: 2 # 2レプリカ
ports: 8080 #サービスポート
run: || run: | 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リソースを見る

スカイショーグーパス

需要に応じて動的に調整 リソース 正鵠を得る アクセラレーター パラメーター

ロギングとデバッグ

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

スカイログ マイクラスタ

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

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

ほら

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

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

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

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語