Hub documentation

Spaces ZeroGPU: Spaces için Dinamik GPU Ataması

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Spaces ZeroGPU: Spaces için Dinamik GPU Ataması

ZeroGPU schema

ZeroGPU, Hugging Face Spaces'teki yapay zeka modelleri ve demolar için GPU kullanımını optimize eden paylaşımlı bir altyapıdır. İhtiyaç duyuldukça NVIDIA RTX Pro 6000 Blackwell GPU'larını dinamik olarak tahsis eder ve serbest bırakır; şu avantajları sunar:

  1. Ücretsiz GPU Erişimi: Spaces için maliyet etkin GPU kullanımını sağlar.
  2. Çoklu GPU Desteği: Uygulamaların tek bir uygulama üzerinde birden fazla GPU'yu eşzamanlı olarak kullanmasına olanak tanır.

Geleneksel tek GPU tahsislerinin aksine, ZeroGPU'nun verimli sistemi, kaynak kullanımını ve güç verimliliğini en üst düzeye çıkararak geliştiricilerin, araştırmacıların ve kuruluşların yapay zeka modellerini dağıtması için engelleri azaltır.

ZeroGPU Spaces'ı kullanma ve barındırma

  • Using existing ZeroGPU Spaces
    • ZeroGPU Spaces tüm kullanıcılara ücretsiz olarak kullanılabilir. (derlenmiş listeye göz atın).
    • PRO kullanıcıları, günlük kullanım kotasının 8 katını, GPU kuyruklarında en yüksek önceliği ve herhangi bir ZeroGPU Spaces kullanırken önceden ödenmiş kredilerle günlük kotanın ötesine geçme imkânını elde eder.
  • Hosting your own ZeroGPU Spaces
    • Ücretsiz kişisel hesaplar: iyi durumda olan hesaplar (doğrulanmış e-posta, 30 günden eski hesap) ücretsiz olarak en fazla 2 ZeroGPU Spaces barındırabilir.
    • PRO hesapları: Hesabınız altında en fazla 10 ZeroGPU Spaces barındırmak için PRO'ya abone olun.
    • Kuruluşlar: Kuruluşun tüm üyeleri için ZeroGPU Spaces'i etkinleştirmek için Team veya Enterprise planına abone olun.

Teknik Özellikler

ZeroGPU iki GPU boyutunu destekler

GPU boyutuDestek donanımıVramKota maliyeti
large (varsayılan)Yarım NVIDIA RTX Pro 6000 Blackwell48GB1×
xlargeTam NVIDIA RTX Pro 6000 Blackwell96GB2×

Boyutları nasıl kullanacağınızı öğrenmek için GPU boyutu seçimi bölümüne bakın

Uyumluluk

ZeroGPU Spaces, çoğu PyTorch tabanlı GPU Spaces ile uyumlu olacak şekilde tasarlanmıştır. transformers ve diffusers gibi üst düzey Hugging Face kütüphaneleri için uyumluluk artırılmış olsa da, kullanıcıların şunu bilmesi gerekir:

  • Şu anda ZeroGPU Spaces yalnızca Gradio SDK ile uyumludur.
  • ZeroGPU Spaces, standart GPU Spaces'e kıyasla sınırlı uyumluluğa sahip olabilir.
  • Bazı senaryolarda beklenmedik sorunlar ortaya çıkabilir.

Desteklenen Sürümler

  • Gradio: 4+

  • PyTorch: 2.8.0'dan en son sürüme kadar neredeyse tüm sürümler desteklenir

    Tam listeye bakın
    • 2.8.0
    • 2.9.1
    • 2.10.0
    • 2.11.0
    • 2.12.1
    • 2.13.0
  • Python:

    • 3.12.12
    • 3.10.13

ZeroGPU ile başlangıç

Space'inizde ZeroGPU'yı kullanmak için şu adımları izleyin:

  1. Space ayarlarınızda ZeroGPU donanımının seçildiğinden emin olun.
  2. spaces modülünü içe aktarın.
  3. GPU'ya bağımlı işlevleri @spaces.GPU ile süsleyin.

Bu süsleme işlemi, Space'in fonksiyon çağrıldığında bir GPU talep etmesine ve tamamlanınca bunu serbest bırakmasına olanak tanır.

@spaces.GPU dekoratörü, ZeroGPU olmayan ortamlarda etki yaratmayacak şekilde tasarlanmıştır ve bu sayede farklı kurulumlar arasında uyumluluk sağlanır.

Örnek Kullanım

import spaces
from diffusers import DiffusionPipeline

pipe = DiffusionPipeline.from_pretrained(...)
pipe.to('cuda')

@spaces.GPU
def generate(prompt):
    return pipe(prompt).images

gr.Interface(
    fn=generate,
    inputs=gr.Text(),
    outputs=gr.Gallery(),
).launch()

Model yükleme

Gerçek bir GPU yalnızca @spaces.GPU işlevlerinin içinde kullanılabilir olsa da, modellerin kök modül seviyesinde cuda üzerine yerleştirilmesi gerekir (yukarıdaki örnekte gösterildiği gibi).

@spaces.GPU içinde modelleri tembel yüklemek veya CUDA'ya taşımak önerilmez, çünkü bu işlem önemli ölçüde daha az verimlidir (CUDA aktarımları, başlangıç sırasında yapılan yerleştirmeler için optimize edilmiştir).

Modül seviyesinde modelleri cuda üzerinde yüklemek, @spaces.GPU işlevlerinin dışında etkinleştirilen PyTorch CUDA emülasyon modu sayesinde çalışır; bu mod, gerçek bir GPU olmadan CUDA işlemlerine olanak tanır. @spaces.GPU içinde gerçek CUDA kullanılır.

GPU boyutu seçimi

@spaces.GPU tarafından kullanılan varsayılan boyut large'dır (yarım NVIDIA RTX Pro 6000 Blackwell).

size="xlarge" belirterek tam bir NVIDIA RTX Pro 6000 Blackwell açıkça talep edebilirsiniz:

@spaces.GPU(size="xlarge")
def generate(prompt):
    return pipe(prompt).images
  • xlarge, large'den 2× daha fazla günlük kota tüketir (ör. 45 sn'lik etkin görev süresi 90 sn kota tüketir)
  • xlarge genellikle daha yüksek kuyrukta bekleme olasılığı ve daha uzun bekleme süreleri anlamına gelir
  • xlarge yalnızca iş yükünüz ek hesaplama veya bellekten gerçekten faydalanıyorsa kullanın

Süre Yönetimi

Varsayılan 60 saniyelik GPU çalışma süresini aşması beklenen işlevler için özel bir süre belirtebilirsiniz:

@spaces.GPU(duration=120)
def generate(prompt):
   return pipe(prompt).images

Bu, maksimum işlev çalışma süresini 120 saniye olarak ayarlar. Daha hızlı işlevler için daha kısa süreler belirtmek, Space ziyaretçileri için kuyruk önceliğini iyileştirir.

Dinamik süre

@spaces.GPU dinamik süreleri de destekler.

Süre değerini doğrudan geçirmek yerine, süslenmiş fonksiyonunuzla aynı girdileri alan ve bir süre değeri döndüren bir çağrılabilir nesne (callable) geçin:

def get_duration(prompt, steps):
    step_duration = 3.75
    return steps * step_duration

@spaces.GPU(duration=get_duration)
def generate(prompt, steps):
   return pipe(prompt, num_inference_steps=steps).images

Derleme

ZeroGPU, torch.compile desteklememektedir ancak PyTorch önceden derleme özelliğini kullanabilirsiniz (torch 2.8+ gerektirir)

ZeroGPU'da derleme öncesi (ahead-of-time) derleme hakkında kapsamlı bir rehber için bu blog yazısına göz atın.

Kullanım Kademeleri

GPU kullanımı, hesap katmanına göre günlük kota sınırlarına tabidir:

Hesap türüDahili günlük GPU kotasıKuyruk önceliği
Kimlik doğrulanmamış2 dakikaDüşük
Ücretsiz hesap5 dakikaOrta
PRO hesabı40 dakika (genişletilebilir)En yüksek
Ekip organizasyonu üyesi40 dakika (genişletilebilir)En yüksek
Kurumsal kuruluş üyesi60 dakika (genişletilebilir)En yüksek

Dahili günlük kota, ilk GPU kullanımınızdan tam 24 saat sonra sıfırlanır.

Kalan kota, ZeroGPU kuyruklarındaki önceliği doğrudan etkiler.

Kredilerle kota genişletme

PRO, Team ve Enterprise kullanıcıları, dahili günlük kota dışında, GPU süresinin dakikası başına 10 dakikaya 1 $ oranında ön ödemeli kredileri harcayarak ZeroGPU Spaces'i kullanmaya devam edebilir. Günlük kotanız tükendiğinde, ek GPU kullanımı otomatik olarak kredi bakiyenizden tahsil edilir.

faturalandırma ayarlarınızdan kredi ekleyebilirsiniz.

Barındırma Kısıtlamaları

  • Ücretsiz kişisel hesaplar: İyi durumda olan hesaplar için (doğrulanmış e-posta, 30 günden eski hesap) en fazla 2 ZeroGPU Spaces.
  • Kişisel hesaplar (PRO aboneleri): En fazla 10 ZeroGPU Spaces.
  • Organizasyon hesapları (Team & Enterprise): En fazla 50 ZeroGPU Spaces.

ZeroGPU'dan yararlanarak geliştiriciler, GPU kullanımını en üst düzeye çıkarırken maliyetleri en aza indiren daha verimli ve ölçeklenebilir Spaces oluşturabilir.

Öneriler

Demo'nuz büyük bir model kullanıyorsa, ahead-of-time derleme ve flash-attention 3 gibi optimizasyonları kullanmanızı öneririz. Bu optimizasyonlardan nasıl yararlanacağınızı bu gönderide ZeroGPU ile öğrenebilirsiniz. Bu optimizasyonlar, ZeroGPU saatlerinden en iyi şekilde faydalanmanıza ve daha iyi bir kullanıcı deneyimi sunmanıza yardımcı olacaktır.

Geri bildirim

Spaces ZeroGPU ile ilgili geri bildirimlerinizi doğrudan HF Hub üzerinden paylaşabilirsiniz: https://huggingface.co/spaces/zero-gpu-explorers/README/discussions

Update on GitHub