Hub documentation
Menggunakan GPU Spaces
Menggunakan GPU Spaces
Anda dapat meningkatkan Space Anda untuk menggunakan akselerator GPU dengan menggunakan tombol Pengaturan di bilah navigasi atas Space. Anda bahkan dapat meminta peningkatan gratis jika Anda sedang membangun demo keren untuk proyek sampingan!

Dalam jangka panjang, kami juga ingin membuka akses untuk perangkat keras non-GPU, seperti HPU, IPU, atau TPU. Jika Anda memiliki perangkat keras AI tertentu yang ingin Anda gunakan, silakan beri tahu kami (website di huggingface.co).
Begitu Space Anda berjalan di GPU, Anda dapat melihat perangkat keras apa yang digunakan langsung dari lencana ini:

Spesifikasi Perangkat Keras
Pada tabel-tabel berikut, Anda dapat melihat Spesifikasi untuk berbagai opsi upgrade.
CPU
| Perangkat Keras | CPU | Memori | Memori GPU | Disk | Harga per Jam |
|---|---|---|---|---|---|
| Dasar CPU | 2 vCPU | 16 GB | - | 50 GB | Gratis! |
| Upgrade CPU | 8 vCPU | 32 GB | - | 50 GB | $0.03 |
CPU Basic tidak memiliki biaya per jam, tetapi membuat Space baru yang berjalan di compute (Gradio atau Docker) memerlukan paket berbayar. Static Spaces gratis untuk semua orang. Lihat Ringkasan Spaces untuk detailnya.
GPU
| Perangkat Keras | CPU | Memori | Memori GPU | Disk | Harga per Jam |
|---|---|---|---|---|---|
| Nvidia T4 - kecil | 4 vCPU | 15 GB | 16 GB | 50 GB | $0.40 |
| Nvidia T4 - sedang | 8 vCPU | 30 GB | 16 GB | 100 GB | $0.60 |
| 1x Nvidia L4 | 8 vCPU | 30 GB | 24 GB | 400 GB | $0.80 |
| 4x Nvidia L4 | 48 vCPU | 186 GB | 96 GB | 3200 GB | $3.80 |
| 1x Nvidia L40S | 8 vCPU | 62 GB | 48 GB | 380 GB | $1.80 |
| 4x Nvidia L40S | 48 vCPU | 382 GB | 192 GB | 3200 GB | $8.30 |
| 8x Nvidia L40S | 192 vCPU | 1534 GB | 384 GB | 6500 GB | $23.50 |
| 1x Nvidia RTX PRO 6000 | 23 vCPU | 256 GB | 96 GB | 475 GB | $2.75 |
| 2x Nvidia RTX PRO 6000 | 46 vCPU | 512 GB | 192 GB | 950 GB | $5.50 |
| 4x Nvidia RTX PRO 6000 | 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 - kecil | 4 vCPU | 15 GB | 24 GB | 110 GB | $1.00 |
| Nvidia A10G - besar | 12 vCPU | 46 GB | 24 GB | 200 GB | $1.50 |
| 2x Nvidia A10G - besar | 24 vCPU | 92 GB | 48 GB | 1000 GB | $3.00 |
| 4x Nvidia A10G - besar | 48 vCPU | 184 GB | 96 GB | 2000 GB | $5.00 |
| Nvidia A100 - besar | 12 vCPU | 142 GB | 80 GB | 1000 GB | $2.50 |
| 4x Nvidia A100 | 48 vCPU | 568 GB | 320 GB | 4000 GB | $10.00 |
| 8x Nvidia A100 | 96 vCPU | 1136 GB | 640 GB | 8000 GB | $20.00 |
Konfigurasi perangkat keras secara programatik
Anda dapat mengonfigurasi perangkat keras Space secara programatik menggunakan huggingface_hub. Hal ini memungkinkan berbagai kasus penggunaan di mana Anda perlu mengalokasikan GPU secara dinamis.
Lihat panduan ini untuk detail lebih lanjut.
Kebutuhan spesifik framework
Sebagian besar Spaces seharusnya dapat berjalan langsung setelah upgrade GPU, tetapi terkadang Anda perlu menginstal versi CUDA dari framework machine learning yang Anda gunakan. Silakan ikuti panduan ini untuk memastikan Space Anda memanfaatkan peningkatan hardware.
PyTorch
Anda perlu menginstal versi PyTorch yang kompatibel dengan driver CUDA bawaan. Menambahkan dua baris berikut ke file requirements.txt Anda seharusnya berhasil:
--extra-index-url https://download.pytorch.org/whl/cu113
torchAnda dapat memverifikasi apakah instalasi berhasil dengan menjalankan kode berikut di app.py Anda dan memeriksa output di log Space Anda:
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 T4Banyak framework secara otomatis menggunakan GPU jika tersedia. Hal ini berlaku untuk Pipelines di 🤗 transformers, fastai, dan banyak lainnya. Dalam kasus lain, atau jika Anda menggunakan PyTorch secara langsung, Anda mungkin perlu memindahkan model dan data Anda ke GPU untuk memastikan komputasi dilakukan pada akselerator dan bukan pada CPU. Anda dapat menggunakan sintaks .to() dari PyTorch, misalnya:
model = load_pytorch_model()
model = model.to("cuda")JAX
Jika Anda menggunakan JAX, Anda perlu menentukan URL yang berisi paket yang kompatibel dengan CUDA. Silakan tambahkan baris berikut ke file requirements.txt Anda:
-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlibSetelah itu, Anda dapat memverifikasi instalasi dengan mencetak output dari kode berikut dan memeriksanya di log Space Anda.
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
Instalasi tensorflow bawaan seharusnya mengenali perangkat CUDA. Cukup tambahkan tensorflow ke file requirements.txt Anda dan gunakan kode berikut di app.py Anda untuk memverifikasi di log Space Anda.
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]Penagihan
Penagihan pada Spaces didasarkan pada penggunaan perangkat keras dan dihitung per menit: Anda akan dikenakan biaya untuk setiap menit Space berjalan pada perangkat keras yang diminta, terlepas dari apakah Space tersebut digunakan atau tidak.
Selama siklus hidup Space, biaya hanya dikenakan saat Space berstatus Starting atau Running. Artinya, tidak ada biaya yang timbul selama proses build.
Jika Space yang sedang berjalan mulai gagal, Space tersebut akan ditangguhkan secara otomatis dan penagihan akan dihentikan.
Spaces yang berjalan di perangkat keras gratis akan ditangguhkan secara otomatis jika tidak digunakan dalam jangka waktu yang lama (misalnya dua hari). Spaces yang ditingkatkan berjalan tanpa batas secara default, bahkan jika tidak ada penggunaan. Anda dapat mengubah perilaku ini dengan menetapkan “sleep time” khusus di pengaturan Space. Untuk menghentikan penagihan pada Space Anda, Anda dapat mengubah Hardware menjadi CPU basic, atau pause Space tersebut.
Informasi tambahan tentang penagihan dapat ditemukan di bagian khusus untuk seluruh Hub.
Community GPU Grants
Apakah Anda memiliki Space yang luar biasa tetapi membutuhkan bantuan untuk menutupi biaya peningkatan perangkat keras GPU? Kami senang membantu mereka yang memiliki Space inovatif, jadi silakan ajukan permohonan hibah GPU komunitas dan lihat apakah Space Anda lolos! Permohonan ini dapat ditemukan di pengaturan repo perangkat keras Space Anda di sudut kiri bawah di bawah “pengaturan waktu tidur”:

Atur waktu tidur kustom
Jika Space Anda berjalan di perangkat keras cpu-basic bawaan, Space tersebut akan masuk ke mode tidur jika tidak aktif selama lebih dari batas waktu tertentu (saat ini, 48 jam). Siapa pun yang mengunjungi Space Anda akan memulainya secara otomatis.
Jika Anda ingin Space Anda tidak pernah dinonaktifkan atau jika Anda ingin mengatur waktu tidur kustom, Anda perlu meningkatkan ke perangkat keras berbayar.
Secara default, Space yang sudah di-upgrade tidak akan pernah masuk ke mode tidur. Namun, Anda dapat menggunakan pengaturan ini agar Space yang sudah di-upgrade menjadi idle (tahap stopped) saat tidak digunakan 😴. Anda tidak akan dikenakan biaya untuk hardware yang sudah di-upgrade selama ia dalam keadaan tidur. Space akan ‘bangun’ atau di-restart kembali begitu menerima pengunjung baru.
Antarmuka berikut kemudian akan tersedia di pengaturan perangkat keras Spaces Anda:

Opsi berikut tersedia:

Replika
Anda dapat menskalakan Space secara horizontal dengan meminta beberapa replika. Hal ini mendistribusikan lalu lintas di antara beberapa instans Space Anda untuk meningkatkan ketersediaan dan throughput. Anda dapat mengatur jumlah replika melalui API:
POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json
{
"replicas": 2
}Replicas hanya tersedia untuk perangkat keras yang sudah di-upgrade (berbayar). Setiap replica ditagih secara independen.
Streaming Log, Peristiwa, dan Metrik
Anda dapat streaming log real-time, event status, dan metrik dari Space Anda melalui SSE (Server-Sent Events):
- Membangun atau menjalankan log:
GET /api/spaces/{namespace}/{repo}/logs/{build|run} - Peristiwa status:
GET /api/spaces/{namespace}/{repo}/events - Metriks:
GET /api/spaces/{namespace}/{repo}/metrics
Endpoint ini memerlukan autentikasi dan mengembalikan data menggunakan protokol SSE.
Endpoint log menerima parameter query opsional tail (bilangan bulat non-negatif) untuk membatasi respons ke N baris log terakhir:
GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100Menjeda Space
You can pause a Space from the repo settings. A “paused” Space means that the Space is on hold and will not use resources until manually restarted. Anyone with write access to the Space can pause or restart it. Paused time is not billed.