Hub documentation
Spaces ZeroGPU: Spaces için Dinamik GPU Ataması
Spaces ZeroGPU: Spaces için Dinamik GPU Ataması
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:
- Ücretsiz GPU Erişimi: Spaces için maliyet etkin GPU kullanımını sağlar.
- Ç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 boyutu | Destek donanımı | Vram | Kota maliyeti |
|---|---|---|---|
large (varsayılan) | Yarım NVIDIA RTX Pro 6000 Blackwell | 48GB | 1× |
xlarge | Tam NVIDIA RTX Pro 6000 Blackwell | 96GB | 2× |
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:
- Space ayarlarınızda ZeroGPU donanımının seçildiğinden emin olun.
spacesmodülünü içe aktarın.- GPU'ya bağımlı işlevleri
@spaces.GPUile 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.GPUdekoratö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.GPUiş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.GPUiç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)xlargegenellikle daha yüksek kuyrukta bekleme olasılığı ve daha uzun bekleme süreleri anlamına gelirxlargeyalnı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).imagesBu, 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).imagesDerleme
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 dakika | Düşük |
| Ücretsiz hesap | 5 dakika | Orta |
| PRO hesabı | 40 dakika (genişletilebilir) | En yüksek |
| Ekip organizasyonu üyesi | 40 dakika (genişletilebilir) | En yüksek |
| Kurumsal kuruluş üyesi | 60 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