Hub documentation

GPU Spacesの使用

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

GPU Spacesの使用

Spaceの上部ナビゲーションバーにあるSettingsボタンから、SpaceをGPUアクセラレータを使用するようにアップグレードできます。サイドプロジェクトでクールなデモを作成している場合は、無料のアップグレードをリクエストすることもできます。

長期的には、HPU、IPU、TPUなどのGPU以外のハードウェアも公開したいと考えています。特定のAIハードウェアで実行したいものがあれば、お知らせください(ウェブサイトはhuggingface.co)。

SpaceがGPU上で実行されると、このバッジからどのハードウェアで実行されているか直接確認できます。

ハードウェア仕様

以下の表に、異なるアップグレードオプションの仕様(Specs)を示しています。

CPU

ハードウェアCPUメモリGPU メモリディスク時間単価
CPU 基本2 vCPU16 GB-50 GB無料です!
CPU アップグレード8 vCPU32 GB-50 GB$0.03

CPU Basicには時間単位の料金はありませんが、compute(GradioまたはDocker)で実行される新しいSpaceを作成するには有料プランが必要です。Static Spacesはすべてのユーザーに無料です。詳細はSpaces Overviewを参照してください。

GPU

ハードウェアCPUメモリGPU メモリディスク時間単価
Nvidia T4 - 小型4 vCPU15 GB16 GB50 GB$0.40
Nvidia T4 - 中8 vCPU30 GB16 GB100 GB$0.60
Nvidia L4 1枚8 vCPU30 GB24 GB400 GB$0.80
Nvidia L4 4枚48 vCPU186 GB96 GB3200 GB$3.80
Nvidia L40S 1台8 vCPU62 GB48 GB380 GB$1.80
Nvidia L40S 4台48 vCPU382 GB192 GB3200 GB$8.30
8x Nvidia L40S192 vCPU1534 GB384 GB6500 GB$23.50
Nvidia RTX PRO 6000 1台23 vCPU256 GB96 GB475 GB$2.75
Nvidia RTX PRO 6000 2台46 vCPU512 GB192 GB950 GB$5.50
Nvidia RTX PRO 6000 4枚92 vCPU1024 GB384 GB1900 GB$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 GB768 GB3800 GB$22.00
Nvidia A10G - 小型4 vCPU15 GB24 GB110 GB$1.00
Nvidia A10G - 大12 vCPU46 GB24 GB200 GB$1.50
2x Nvidia A10G - large24 vCPU92 GB48 GB1000 GB$3.00
4x Nvidia A10G - 大48 vCPU184 GB96 GB2000 GB$5.00
Nvidia A100 - 大12 vCPU142 GB80 GB1000 GB$2.50
Nvidia H100 (2025年12月に削除)
8x Nvidia H100 (2025年12月に削除)
Nvidia A100 4枚48 vCPU568 GB320 GB4000 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB8000 GB$20.00

ハードウェアをプログラムで設定する

huggingface_hub を使用して、Space のハードウェアをプログラムで設定できます。これにより、GPU を動的に割り当てる必要がある幅広いユースケースに対応できます。 詳細は、このガイドを参照してください。

フレームワーク固有の要件

ほとんどのSpacesはGPUのアップグレード後にそのまま動作しますが、使用する機械学習フレームワークのCUDAバージョンをインストールする必要がある場合があります。改善されたハードウェアの恩恵をSpaceに受けさせるために、このガイドに従ってください。

PyTorch

ビルトインのCUDAドライバーと互換性のあるPyTorchのバージョンをインストールする必要があります。requirements.txtファイルに以下の2行を追加すれば動作するはずです。

--extra-index-url https://download.pytorch.org/whl/cu113
torch

app.py に以下のコードを実行し、Space のログで出力を確認することで、インストールが正常に行われたかどうかを検証できます。

import torch
print(f"Is CUDA available: {torch.cuda.is_available()}")
# True
print(f"CUDA device: {torch.cuda.get_device_name(torch.cuda.current_device())}")
# Tesla T4

多くのフレームワークは、GPUが利用可能な場合、自動的にGPUを使用します。🤗 transformers、fastaiのPipelinesや、その他の多くのフレームワークも同様です。それ以外のケース、またはPyTorchを直接使用している場合は、計算がCPUではなくアクセラレータ上で行われることを保証するために、モデルとデータをGPUに移動する必要がある場合があります。例えば、PyTorchの.to()構文を使用できます。

model = load_pytorch_model()
model = model.to("cuda")

JAX

JAXを使用する場合は、CUDA互換のパッケージを含むURLを指定する必要があります。requirements.txtファイルに以下の行を追加してください。

-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlib

その後、以下のコードの出力を表示し、Space のログで確認することで、インストールを検証できます。

import jax

print(f"JAX devices: {jax.devices()}")
# JAX devices: [StreamExecutorGpuDevice(id=0, process_index=0)]
print(f"JAX device type: {jax.devices()[0].device_kind}")
# JAX device type: Tesla T4

TensorFlow

デフォルトのtensorflowインストールでは、CUDAデバイスが認識されるはずです。requirements.txtファイルにtensorflowを追加し、app.pyで以下のコードを使用して、Spaceのログで確認してください。

import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

請求

Spacesの請求はハードウェアの使用に基づいており、1分単位で計算されます。Spaceが要求されたハードウェアで実行されている間、Spaceが使用されているかどうかに関わらず、1分ごとに請求されます。

Spaceのライフサイクルにおいて、課金が発生するのはSpaceがStartingまたはRunning状態のときのみです。つまり、ビルド中はコストが発生しません。

実行中のSpaceが失敗し始めると、自動的に停止され、請求が停止されます。

無料ハードウェアで実行されている Spaces は、一定期間(例:2日間)使用されないと自動的に停止します。アップグレードされた Spaces は、使用されていなくてもデフォルトで無期限に実行されます。Spaces の設定でカスタムの「スリープ時間」を設定することで、この動作を変更できます。Spaces の請求を停止するには、Hardware を CPU basic に変更するか、一時停止してください。

請求に関する追加情報は、Hub全体の専用セクションで確認できます。

コミュニティ GPU グラント

素晴らしいSpaceをお持ちで、GPUハードウェアのアップグレード費用の支援が必要ですか?革新的なSpaceを持つ方をサポートすることに情熱を持っていますので、コミュニティGPU助成金への申請をぜひご検討ください。あなたのSpaceが選ばれるかもしれません!この申請フォームは、Spaceのハードウェアリポジトリ設定の左下にある「sleep time settings」の下にあります:

Community GPU Grant

カスタムスリープ時間の設定

Space がデフォルトの cpu-basic ハードウェアで実行されている場合、一定時間(現在 48 時間)以上アクティブでない場合にスリープ状態になります。Space を訪問したユーザーによって自動的に再起動されます。

Spaceが非アクティブになることを完全に防止したい場合、またはカスタムのスリープ時間を設定したい場合は、有料のハードウェアへのアップグレードが必要です。

デフォルトでは、アップグレードされた Space はスリープ状態にはなりません。ただし、この設定を使用すると、アップグレードされた Space が未使用のときにアイドル状態(stoppedステージ)になります😴。スリープ中は、アップグレードされたハードウェアの料金は発生しません。新しい訪問者を受け取ると、Space は「目覚め」て再起動されます。

その後、Spaces のハードウェア設定で以下のインターフェースが利用可能になります。

以下のオプションが利用可能です:

レプリカ

Spaceは、複数のレプリカをリクエストすることで水平スケーリングできます。これにより、トラフィックがSpaceの複数のインスタンスに分散され、可用性とスループットが向上します。レプリカ数はAPI経由で設定できます:

POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json

{
  "replicas": 2
}

レプリカはアップグレード済み(有料)のハードウェアでのみ利用可能です。各レプリカは個別に課金されます。

ログ、イベント、メトリクスのストリーミング

SpaceからSSE(Server-Sent Events)を介して、リアルタイムのログ、ステータスイベント、メトリクスをストリーミングできます:

  • ビルドまたは実行ログ: GET /api/spaces/{namespace}/{repo}/logs/{build|run}
  • ステータスイベント: GET /api/spaces/{namespace}/{repo}/events
  • メトリクス: GET /api/spaces/{namespace}/{repo}/metrics

これらのエンドポイントは認証を必要とし、SSEプロトコルを使用してデータを返します。

ログエンドポイントは、応答をログの最後の N 行に制限するための任意の tail クエリパラメータ(非負の整数)を受け入れます:

GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100

スペースの一時停止

リポジトリの設定から、Space をpause(一時停止)できます。「一時停止中」の Space は保留状態となり、手動で再起動されるまでリソースを消費しません。Space への書き込み権限を持つユーザーは、Space を一時停止または再起動できます。一時停止中の時間は請求対象外です。

Update on GitHub