Definition:
SkyPilotとは,クラウド・リージョン・インフラ環境の断片化という構造的問題に対処するために設計された, AIワークロード向けのマルチクラウド統合実行基盤である.その設計上の本質は, 異なる計算環境を単一の抽象化レイヤで統一しつつ, コストと可用性の両面においてリソースを動的に最適化する点にある.ユーザーはどのクラウドでどのインスタンスを使うかという詳細を意識することなく, GPUなどのリソース要件と実行内容のみを宣言的に記述すればよく, 最適な実行環境の選択とプロビジョニングはシステムが担う.
SkyPilotは, AWSやGCP, Azureといったパブリッククラウドに加え, Kubernetesクラスタ, Slurmベースの計算環境, さらにはオンプレミスのマシンに至るまで, 異なる計算資源を同一の操作体系で扱うことを可能にする.従来, これらの環境はそれぞれ異なるAPIや運用手法を必要としていたが, SkyPilotはそれらを統一し, ユーザーが計算資源の詳細を意識せずにAIジョブを記述・実行できるようにする.実際の使用においては, リソース要件・実行コマンド・ファイル同期設定などをYAMLベースのタスク定義ファイルに記述し, sky launch コマンド一つでジョブを投入するという宣言的インターフェースが基本となる.
その基本構成は, 計算資源の集合としてのCluster, 実行単位としてのJob, そしてモデルのサービス提供を担うServiceという三つの抽象概念から成る.JobにはInteractive JobとManaged Jobという二つの実行モードがあり, 前者は既存クラスタ上での対話的な実行を, 後者はクラスタのプロビジョニングからジョブ実行・終了後のクラスタ解放までを一体的に管理する自律的な実行モードを指す.Managed Jobはスポットインスタンスとの組み合わせを前提として設計されており, スポット中断が発生した場合にもチェックポイントからの自動復元・再起動を行うことで, 低コストと高可用性を両立する.ServiceはSkyServeとして実装されており, LLM推論などのサービングワークロードに対してオートスケーリング, ロードバランシング, および複数クラウドにまたがるレプリカ管理を提供する.
SkyPilotの本質的な特徴は, 単なる抽象化にとどまらず, コストおよび可用性の観点から計算資源を動的に最適化する点にある.ユーザーがGPUなどの要件を指定すると, システムは複数クラウドやリージョンを横断して最も安価かつ利用可能なリソースを探索し, 必要に応じてスポットインスタンスを活用することでコストを大幅に削減する.また, 特定のクラウドやリージョンでリソース確保が困難な場合には, 自動的に別の候補へフェイルオーバーする機構も備えている.
このような設計により, SkyPilotはクラウド依存[いわゆるロックイン]を回避しつつ, AI開発における「計算資源の確保」「コスト最適化」「スケーラビリティ」といった課題を同時に解決する.位置づけとしては, KubernetesやSlurmといった低レイヤの計算環境をターゲットリソースの一つとして扱いながら, その上でAIワークロードに特化した統合制御を行う層として機能する.
したがってSkyPilotは, 分散処理フレームワークやワークフローエンジンとは異なり, AIワークロードをマルチクラウド環境で最適に実行するための統合的な実行基盤である.リソース抽象化・スケジューリング・実行管理という機能がOSのそれと対応することから, 「AI向けのマルチクラウドOS」という比喩で理解することができる.
Mathematics is the language with which God has written the universe.