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

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

ハードウェア仕様
以下の表に、異なるアップグレードオプションの仕様(Specs)を示しています。
CPU
| ハードウェア | CPU | メモリ | GPU メモリ | ディスク | 時間単価 |
|---|---|---|---|---|---|
| CPU 基本 | 2 vCPU | 16 GB | - | 50 GB | 無料です! |
| CPU アップグレード | 8 vCPU | 32 GB | - | 50 GB | $0.03 |
CPU Basicには時間単位の料金はありませんが、compute(GradioまたはDocker)で実行される新しいSpaceを作成するには有料プランが必要です。Static Spacesはすべてのユーザーに無料です。詳細はSpaces Overviewを参照してください。
GPU
| ハードウェア | CPU | メモリ | GPU メモリ | ディスク | 時間単価 |
|---|---|---|---|---|---|
| Nvidia T4 - 小型 | 4 vCPU | 15 GB | 16 GB | 50 GB | $0.40 |
| Nvidia T4 - 中 | 8 vCPU | 30 GB | 16 GB | 100 GB | $0.60 |
| Nvidia L4 1枚 | 8 vCPU | 30 GB | 24 GB | 400 GB | $0.80 |
| Nvidia L4 4枚 | 48 vCPU | 186 GB | 96 GB | 3200 GB | $3.80 |
| Nvidia L40S 1台 | 8 vCPU | 62 GB | 48 GB | 380 GB | $1.80 |
| Nvidia L40S 4台 | 48 vCPU | 382 GB | 192 GB | 3200 GB | $8.30 |
| 8x Nvidia L40S | 192 vCPU | 1534 GB | 384 GB | 6500 GB | $23.50 |
| Nvidia RTX PRO 6000 1台 | 23 vCPU | 256 GB | 96 GB | 475 GB | $2.75 |
| Nvidia RTX PRO 6000 2台 | 46 vCPU | 512 GB | 192 GB | 950 GB | $5.50 |
| Nvidia RTX PRO 6000 4枚 | 92 vCPU | 1024 GB | 384 GB | 1900 GB | $11.00 |
| 8x Nvidia RTX PRO 6000 | 184 vCPU | 2048 GB | 768 GB | 3800 GB | $22.00 |
| Nvidia A10G - 小型 | 4 vCPU | 15 GB | 24 GB | 110 GB | $1.00 |
| Nvidia A10G - 大 | 12 vCPU | 46 GB | 24 GB | 200 GB | $1.50 |
| 2x Nvidia A10G - large | 24 vCPU | 92 GB | 48 GB | 1000 GB | $3.00 |
| 4x Nvidia A10G - 大 | 48 vCPU | 184 GB | 96 GB | 2000 GB | $5.00 |
| Nvidia A100 - 大 | 12 vCPU | 142 GB | 80 GB | 1000 GB | $2.50 |
| Nvidia A100 4枚 | 48 vCPU | 568 GB | 320 GB | 4000 GB | $10.00 |
| 8x Nvidia A100 | 96 vCPU | 1136 GB | 640 GB | 8000 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
torchapp.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 T4TensorFlow
デフォルトの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」の下にあります:

カスタムスリープ時間の設定
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 を一時停止または再起動できます。一時停止中の時間は請求対象外です。