AI News HubLIVE
サイト内リライト3 分で読了

任意のクラウドでAIワークロードを実行し、Hugging Faceに保存:SkyPilotによるゼロエグレスストレージ

SkyPilotとHugging Faceの連携により、モデルとデータセットをHubに保存し、SkyPilotを使っていずれのクラウドでもデータ転送料金なしで計算を実行できます。

多くのチームにとって、モデルとデータセットは1つのクラウドの1リージョンにあるバケットに保存されています。しかし、開発、トレーニング、または推論に使用できるGPUは、データとは別のクラウドにあることが増えています。データと計算が分離されると、自分のデータを自分のGPUに読み込むだけでクロスクラウドのデータ転送料金が発生します。

SkyPilotとHugging Faceはこの課題を解決しました。モデルとデータセットはHubに残り、SkyPilotがGPUを持つ任意のクラスターで計算(開発、トレーニング、推論)を実行します。hf:// URLと既存のHF_TOKENを使用してHugging Face Bucketまたは任意のHubリポジトリをSkyPilotジョブにマウントし、容量のある場所で起動します。Hugging Faceはエグレス料金を請求しないため、GPUへのデータ読み取りはどのクラウドでも無料です。

主な機能:

  • 任意のジョブでHubデータを使用:store: hfを使用して、Hugging Face Bucket(読み書き可能)または任意のモデル/データセット/Spaceリポジトリ(読み取り専用)をSkyPilotタスクにマウント。hf:// URLとHF_TOKENを使用し、MOUNTまたはCOPYモードを選択。
  • 任意のGPUとクラウドで実行:SkyPilotは20以上のクラウド、Kubernetes、Slurm、オンプレミス環境でジョブをスケジュールするため、同じ実行がベンダーを問わず利用可能な予約済みまたはオンデマンドGPUを使用。
  • データ読み取りにエグレスなし:Hugging Face Storageはエグレス料金やCDN料金を請求しないため、SkyPilotがジョブをどこに配置しても、同じバケットからモデルとデータセットを直接読み取り可能。クラウドごとにコピーを作成したり、データをプルするためのエグレス料金が発生しない。
  • Xetベースの重複排除:バケットはXet上に構築されており、増分チェックポイントとモデルバリアントは変更されたチャンクのみを保存および転送。

Hugging Face StorageはSkyPilotのファーストクラスバックエンドになりました。SkyPilotタスクは既にS3、GCS、Azure、R2などのクラウドオブジェクトストアをマウントして読み書きできますが、Hugging Face Storageがstore: hfおよびhf://スキームで追加されました。

例えば、以下の設定ではチェックポイント用に読み書き可能なバケットをマウントし、モデルとデータセットリポジトリを読み取り専用でマウントします:

file_mounts: /checkpoints: source: hf://buckets/my-org/qwen-sft store: hf mode: MOUNT /base-model: source: hf://Qwen/Qwen3.5-4B store: hf mode: MOUNT

MOUNTモードはHugging Faceのhf-mount FUSEバックエンドを使用し、リポジトリがローカルパスのように見えます。読み取りは遅延方式で、コードがread()を発行すると、そのバイトだけがXetバックエンドから取得され、ディスク上のキャッシュが保持されます。COPYモードはhuggingface_hubを使用して事前に全ファイルをダウンロードします。

認証は既存のHF_TOKENを使用し、--secret HF_TOKENでジョブに渡します。このトークンはどのクラウドでも機能するため、クラウドごとのバケットキーを管理する必要はありません。

エグレスなしにより、ストレージが実行場所を決定しなくなります。GPU容量は複数のベンダーに分散しており、チームは複数のクラウドで予約容量を保持し、SkyPilotが空いているクラスターにジョブを割り当てます。以前はオブジェクトストレージのエグレス料金が障壁となり、実行をデータを保持するベンダーに固定していましたが、Hugging Face Storageは読み取りのエグレスコストを排除します(ストレージ料金は$12-18/TB/月、AWS S3は約$23/TBにエグレス追加)。書き込みには通常のエグレスがかかりますが、AIワークロードでは読み取りが支配的であるため、柔軟性が大幅に向上します。

ベンチマーク:Qwen3.5-4BモデルとMultilingual-Thinkingデータセットを使用した微調整をAWS、GCP、Lambdaで実行。同じSkyPilot YAMLを使用し、すべてのクラウドで同じバケットを読み書き。モデル読み込みは無料で約30秒(最大500 MB/s)、チェックポイント書き込み速度は112〜168 MB/s。

Xetストレージの重複排除機能:コンテンツ定義チャンキングにより、増分チェックポイント、アダプタチェックポイント、ベースを共有するモデルバリアント、データセットへの追加時に変更されたチャンクのみを転送。例えば、100K行のテーブルに10K行を追加すると約10 MBのみ転送(全体では約106 MB)。既存の8.43 GBのblobを再アップロードする場合、初回24秒に対し約8秒で完了。

開始方法: pip install "skypilot[huggingface]" hf auth login その後、任意のSkyPilotタスクにhf://マウントを追加して起動。MOUNTモードではglibc 2.34+と/dev/fuseを含むベースイメージが必要。

この機能はNikhil Jhaの貢献から始まり、Hugging Faceチームがhf-mountのFUSE修正を上流に取り込み、SkyPilotチームがストレージバックエンドに統合しました。すべてのコンポーネントはオープンソースです:SkyPilot、hf-mount、huggingface_hub。