Hub documentation

GPU Alanlarını Kullanma

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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ımCPUBellekGPU BelleğiDiskSaatlik Fiyat
CPU Temel2 vCPU16 GB-50 GBÜcretsiz!
CPU Yükseltmesi8 vCPU32 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ımCPUBellekGPU BelleğiDiskSaatlik Fiyat
Nvidia T4 - küçük4 vCPU15 GB16 GB50 GB$0.40
Nvidia T4 - orta8 vCPU30 GB16 GB100 GB$0.60
1x Nvidia L48 vCPU30 GB24 GB400 GB$0.80
4x Nvidia L448 vCPU186 GB96 GB3200 GB$3.80
1x Nvidia L40S8 vCPU62 GB48 GB380 GB$1.80
4x Nvidia L40S48 vCPU382 GB192 GB3200 GB$8.30
8x Nvidia L40S192 vCPU1534 GB384 GB6500 GB$23.50
1x Nvidia RTX PRO 600023 vCPU256 GB96 GB475 GB$2.75
2x Nvidia RTX PRO 600046 vCPU512 GB192 GB950 GB$5.50
4x Nvidia RTX PRO 600092 vCPU1024 GB384 GB1900 GB$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 GB768 GB3800 GB$22.00
Nvidia A10G - küçük4 vCPU15 GB24 GB110 GB$1.00
Nvidia A10G - büyük12 vCPU46 GB24 GB200 GB$1.50
2x Nvidia A10G - büyük24 vCPU92 GB48 GB1000 GB$3.00
4x Nvidia A10G - büyük48 vCPU184 GB96 GB2000 GB$5.00
Nvidia A100 - büyük12 vCPU142 GB80 GB1000 GB$2.50
Nvidia H100 (Aralık 2025'te kaldırıldı)
8x Nvidia H100 (Aralık 2025'te kaldırıldı)
4x Nvidia A10048 vCPU568 GB320 GB4000 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB8000 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
torch

Kurulumun 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 T4

Birç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]
jaxlib

Bunun 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 T4

TensorFlow

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:

Community GPU Grant

Ö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=100

Bir 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.

Update on GitHub