Hub documentation
GPU Alanlarını Kullanma
GPU Alanlarını Kullanma
Space'inizi, Space'in üst gezinme çubuğundaki Ayarlar düğmesini kullanarak bir GPU hızlandırıcısı kullanacak şekilde yükseltebilirsiniz. Yan projeler için harika bir demo geliştiriyorsanız ücretsiz bir yükseltme bile talep edebilirsiniz!

Uzun vadede, HPU, IPU veya TPU gibi GPU dışı donanımları da açığa çıkarmak istiyoruz. Çalıştırmak istediğiniz belirli bir yapay zeka donanımı varsa, lütfen bize bildirin (huggingface.co adresindeki web sitesi).
Space'iniz GPU üzerinde çalışmaya başladığında, hangi donanım üzerinde çalıştığını doğrudan bu rozetten görebilirsiniz:

Donanım Özellikleri
Aşağıdaki tablolarda, farklı yükseltme seçeneklerinin Specs bilgilerini görebilirsiniz.
CPU
| Donanım | CPU | Bellek | GPU Belleği | Disk | Saatlik Fiyat |
|---|---|---|---|---|---|
| CPU Temel | 2 vCPU | 16 GB | - | 50 GB | Ücretsiz! |
| CPU Yükseltmesi | 8 vCPU | 32 GB | - | 50 GB | $0.03 |
CPU Basic saatlik bir maliyet taşımaz, ancak hesaplama biriminde (Gradio veya Docker) çalışan yeni bir Space oluşturmak ücretli bir plan gerektirir. Statik Spaces herkes için ücretsizdir. Ayrıntılar için Spaces Genel Bakış sayfasına göz atın.
GPU
| Donanım | CPU | Bellek | GPU Belleği | Disk | Saatlik Fiyat |
|---|---|---|---|---|---|
| Nvidia T4 - küçük | 4 vCPU | 15 GB | 16 GB | 50 GB | $0.40 |
| Nvidia T4 - orta | 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 - küçük | 4 vCPU | 15 GB | 24 GB | 110 GB | $1.00 |
| Nvidia A10G - büyük | 12 vCPU | 46 GB | 24 GB | 200 GB | $1.50 |
| 2x Nvidia A10G - büyük | 24 vCPU | 92 GB | 48 GB | 1000 GB | $3.00 |
| 4x Nvidia A10G - büyük | 48 vCPU | 184 GB | 96 GB | 2000 GB | $5.00 |
| Nvidia A100 - büyük | 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 |
Donanımı programatik olarak yapılandırın
Space donanımınızı huggingface_hub ile programatik olarak yapılandırabilirsiniz. Bu, GPU'ları dinamik olarak atamanız gereken geniş bir kullanım senaryosu yelpazesini mümkün kılar.
Daha fazla ayrıntı için bu kılavuza göz atın.
Çerçeveye özgü gereksinimler
Çoğu Space, GPU yükseltmesinden sonra hazır halde çalışmalıdır, ancak bazen kullandığınız makine öğrenme çerçevelerinin CUDA sürümlerini yüklemeniz gerekebilir. Space'inizin geliştirilmiş donanımdan faydalanmasını sağlamak için lütfen bu kılavuza uyun.
PyTorch
CUDA sürücülerine uyumlu bir PyTorch sürümü kurmanız gerekecektir. requirements.txt dosyanıza aşağıdaki iki satırı eklemeniz yeterli olacaktır:
--extra-index-url https://download.pytorch.org/whl/cu113
torchKurulumun başarılı olup olmadığını, app.py dosyanızda aşağıdaki kodu çalıştırıp Space günlüklerinizdeki çıktıyı kontrol ederek doğrulayabilirsiniz:
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 T4Birçok çerçeve, GPU mevcut ise bunu otomatik olarak kullanır. 🤗 transformers, fastai ve birçok diğerinde Pipelines için durum budur. Diğer durumlarda veya PyTorch'u doğrudan kullanıyorsanız, hesaplamanın CPU'da değil de hızlandırıcıda yapılmasını sağlamak için modellerinizi ve verilerinizi GPU'ya taşımanız gerekebilir. Örneğin PyTorch'un .to() sözdizimini kullanabilirsiniz:
model = load_pytorch_model()
model = model.to("cuda")JAX
JAX kullanıyorsanız, CUDA uyumlu paketleri içeren URL'yi belirtmeniz gerekir. Lütfen aşağıdaki satırları requirements.txt dosyanıza ekleyin:
-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlibBunun ardından, aşağıdaki kodun çıktısını yazdırarak ve bunu Space günlüklerinizde kontrol ederek kurulumu doğrulayabilirsiniz.
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
Varsayılan tensorflow kurulumu CUDA cihazını tanımalıdır. requirements.txt dosyanıza tensorflow ekleyin ve Space günlüklerinizde doğrulamak için app.py dosyanızda aşağıdaki kodu kullanın.
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]Faturalandırma
Spaces'teki faturalandırma donanım kullanımına dayanır ve dakikada bir hesaplanır: Space, istenen donanımda çalıştığı her dakika için faturalandırılır, Space kullanılıp kullanılmadığına bakılmaksızın.
Bir Space’ın yaşam döngüsü boyunca, yalnızca Space Starting veya Running durumundayken faturalandırılır. Bu, derleme sırasında herhangi bir maliyetin oluşmadığı anlamına gelir.
Çalışan bir Space başarısız olmaya başlarsa, otomatik olarak askıya alınır ve faturalama durdurulur.
Ücretsiz donanımda çalışan Spaces, uzun bir süre kullanılmadığında (ör. iki gün) otomatik olarak askıya alınır. Yükseltilmiş Spaces, kullanım olmasa bile varsayılan olarak sınırsız süreyle çalışır. Bu davranışı, Space ayarlarında özel bir “uyku süresi” belirleyerek değiştirebilirsiniz. Space’inizdeki faturalandırmayı durdurmak için Donanımı CPU basic olarak değiştirebilir veya duraklatabilirsiniz.
Faturalandırmaya ilişkin ek bilgi, Hub genelindeki ayrılmış bölümde bulunabilir.
Topluluk GPU Hibe Programları
Harika bir Space'iniz var ancak GPU donanım yükseltme maliyetlerini karşılamak için yardıma mı ihtiyacınız var? Yenilikçi bir Space'e sahip olanlara yardımcı olmaktan büyük keyif alıyoruz, bu nedenle bir topluluk GPU hibesi başvurusunda bulunmaktan çekinmeyin ve projenizin seçilip seçilmediğini görün! Bu başvuru, Space donanım deposu ayarlarınızın sol alt köşesindeki “sleep time settings” altında bulunabilir:

Özel bir uyku süresi ayarlayın
Space'iniz varsayılan cpu-basic donanımında çalışıyorsa, belirli bir süre (şu anda 48 saat) boyunca pasif kalırsa uyku moduna geçer. Space'inizi ziyaret eden herkes onu otomatik olarak yeniden başlatır.
Space'inizin asla devre dışı bırakılmamasını veya özel bir uyku süresi ayarlamayı istiyorsanız, ücretli donanıma yükseltme yapmanız gerekir.
Varsayılan olarak, yükseltilmiş bir Space asla uyumaya geçmez. Ancak, yükseltilmiş Space'iniz kullanılmadığında boşta kalması (stopped aşaması) için bu ayarı kullanabilirsiniz 😴. Donanım uyurken yükseltilmiş donanım için ücretlendirilmezsiniz. Space, yeni bir ziyaretçi aldığında 'uyanır' veya yeniden başlatılır.
Ardından Spaces donanım ayarlarınızda aşağıdaki arayüz kullanılabilir olacaktır:

Aşağıdaki seçenekler kullanılabilir:

Kopyalar
Birden fazla replika talep ederek Space'inizi yatay olarak ölçeklendirebilirsiniz. Bu, trafiği Space'inizin birden fazla örneği arasında dağıtarak kullanılabilirliği ve işleme kapasitesini artırır. Replika sayısını API üzerinden ayarlayabilirsiniz:
POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json
{
"replicas": 2
}Replicalar yalnızca yükseltilmiş (ücretli) donanımlar için kullanılabilir. Her replika bağımsız olarak faturalandırılır.
Günlük Kayıtlarını, Olayları ve Metrikleri Akışa Alma
Space'inizden SSE (Sunucu Tarafından Gönderilen Olaylar) aracılığıyla gerçek zamanlı günlükleri, durum olaylarını ve metrikleri akış olarak alabilirsiniz:
- Oluşturma veya çalışma günlükleri:
GET /api/spaces/{namespace}/{repo}/logs/{build|run} - Durum olayları:
GET /api/spaces/{namespace}/{repo}/events - Metricler:
GET /api/spaces/{namespace}/{repo}/metrics
Bu uç noktalar kimlik doğrulama gerektirir ve verileri SSE protokolü kullanarak döndürür.
Loglar uç noktası, yanıtı logların son N satırıyla sınırlamak için isteğe bağlı tail sorgu parametresini (negatif olmayan tamsayı) kabul eder:
GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100Bir Space'i Duraklatma
Bir Space'i depo ayarlarından pause edebilirsiniz. “paused” bir Space, askıya alındığı ve manuel olarak yeniden başlatılana kadar kaynak kullanmadığı anlamına gelir. Space'e yazma erişimi olan herkes onu duraklatabilir veya yeniden başlatabilir. Duraklatma süresi faturalandırılmaz.