Hub documentation

Spaces Genel Bakış

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Spaces Genel Bakış

Hugging Face Spaces, ML destekli demoları dakikalar içinde oluşturmanızı ve dağıtmanızı kolaylaştırır. Spaces hakkında kısa bir giriş için aşağıdaki videoyu izleyin:

Aşağıdaki bölümlerde, bir Space oluşturma, yapılandırma ve kodunuzu bu Space'e dağıtma temellerini öğreneceksiniz.

Yeni bir Space oluşturma

Yeni bir Space oluşturmak için Spaces ana sayfasına gidin ve Yeni Space oluştur seçeneğine tıklayın. Space’iniz için bir ad seçmenin, isteğe bağlı bir lisans belirlemenin ve Space’inizin görünürlüğünü (herkese açık, korumalı veya özel) ayarlamasının yanı sıra, Space’iniz için bir SDK seçmeniz istenir. Hub üç SDK seçeneği sunar: Gradio, Docker ve statik HTML. SDK olarak “Gradio” seçerseniz, aşağıdaki sayfayı gösteren yeni bir repoya yönlendirilirsiniz:

Statik Spaces herkes için ücretsizdir. Gradio ve Docker Spaces hesaplama üzerinde çalışır ve oluşturulması ücretli bir plan gerektirir: kişisel hesaplar için PRO, kuruluşlar için Team or Enterprise. İyi durumda olan ücretsiz kişisel hesaplar, ZeroGPU üzerinde çalışan en fazla 2 Gradio Space barındırmaya devam edebilir.

Arka planda, Spaces kodunuzu, model ve veri seti depoları gibi bir git deposunun içinde saklar. Bu sayede, Hub'daki diğer depolar için kullandığımız aynı araçlar (git ve git-xet) Spaces için de çalışır. Space'inize dosya eklemek için Depolarla Başlangıç bölümündeki akışı izleyin. Her yeni commit gönderildiğinde, Space otomatik olarak yeniden derlenir ve yeniden başlatılır.

İlk Space'inizi oluşturmaya dair adım adım eğitimler için aşağıdaki kılavuzlara göz atın:

Alan görünürlüğü

Bir Space'in görünürlüğünü Ayarlar sekmesindeki görünürlük açılır listesinden ayarlayabilirsiniz. Spaces üç görünürlük düzeyini destekler: public, protected ve private.

Korumalı görünürlük, PRO veya Team & Enterprise planlarının bir parçasıdır.

Herkese açıkKorumalıÖzel
Hub'daki kaynak kodHerkes tarafından görülebilirÖzel (sadece sahip/işbirlikçiler)Özel (sadece sahip/işbirlikçiler)
Gömme URL'si üzerinden erişilebilir uygulamaEvetEvetHayır
özel alan adı üzerinden erişilebilir uygulamaEvetEvetHayır
Başkaları tarafından klonlanabilirEvetHayırHayır

Herkese açık Spaces tamamen açıktır: herkes kaynak kodunu görüntüleyebilir, çalışan uygulamaya erişebilir ve deposunu klonlayabilir.

Korumalı Spaces, kaynak kodlarını Hub üzerinde gizli tutar — yalnızca sahip ve iş birliği yapanlar depoyu görüntüleyebilir veya klonlayabilir. Ancak, çalışan uygulama, gömme URL'si (https://<space-subdomain>.hf.space) üzerinden veya yapılandırılmışsa özel bir alan adı üzerinden herkese açıktır. Bu, kaynak kodu yayınlamadan web siteleri veya uygulamalar barındırmak için özellikle faydalıdır.

Özel Spaces tamamen özeldir: kaynak kod ve çalışan uygulama yalnızca sahibi ve işbirlikçileri tarafından erişilebilir. Space arama sonuçlarında görünmez ve diğer kullanıcılar URL'ini ziyaret ettiğinde 404 hatası alır.

Donanım kaynakları

Her Spaces ortamı varsayılan olarak 16 GB RAM, 2 CPU çekirdeği ve 50 GB (kalıcı olmayan) disk alanıyla sınırlıdır. Varsayılan CPU Basic donanımının saatlik maliyeti yoktur; ancak hesaplama (Gradio veya Docker) üzerinde çalışan bir Space oluşturmak ücretli bir plan gerektirir, Static Spaces ise herkes için ücretsizdir. rekabetçi bir fiyatla GPU hızlandırıcıları dahil olmak üzere daha iyi donanımlara yükseltme yapabilirsiniz. Yükseltme talep etmek için Space'inizdeki Ayarlar düğmesine tıklayın ve tercih ettiğiniz donanım ortamını seçin.

DonanımCPUBellekGPU BelleğiSaatlik Fiyat
CPU Temel2 vCPU16 GBÜCRETSİZ
CPU Yükseltmesi8 vCPU32 GB$0.03
Nvidia T4 - küçük4 vCPU15 GB16 GB$0.40
Nvidia T4 - orta8 vCPU30 GB16 GB$0.60
1x Nvidia L48 vCPU30 GB24 GB$0.80
4x Nvidia L448 vCPU186 GB96 GB$3.80
1x Nvidia L40S8 vCPU62 GB48 GB$1.80
4x Nvidia L40S48 vCPU382 GB192 GB$8.30
8x Nvidia L40S192 vCPU1534 GB384 GB$23.50
1x Nvidia RTX PRO 600023 vCPU256 GB96 GB$2.75
2x Nvidia RTX PRO 600046 vCPU512 GB192 GB$5.50
4x Nvidia RTX PRO 600092 vCPU1024 GB384 GB$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 GB768 GB$22.00
Nvidia A10G - küçük4 vCPU15 GB24 GB$1.00
Nvidia A10G - büyük12 vCPU46 GB24 GB$1.50
2x Nvidia A10G - büyük24 vCPU92 GB48 GB$3.00
4x Nvidia A10G - büyük48 vCPU184 GB96 GB$5.00
Nvidia A100 - büyük12 vCPU142 GB80 GB$2.50
4x Nvidia A10048 vCPU568 GB320 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB$20.00

Not: Daha ayrıntılı ve kapsamlı fiyatlandırma bilgilerini fiyatlandırma sayfamızda bulabilirsiniz.

Harika bir Space'iniz var ancak 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 yüzden Space'inizin Ayarlar sekmesindeki bağlantıyı kullanarak topluluk GPU hibe başvurusunda bulunmaktan çekinmeyin ve projenizin seçilip seçilmediğini görün!

Daha fazla bilgi için Spaces GPU Yükseltmeleri ve Spaces Disk Kullanımı & Depolama başlıklı bölümlerimize göz atın.

Gizli bilgilerin ve ortam değişkenlerinin yönetimi

Uygulamanız ortam değişkenleri gerektiriyorsa (örneğin gizli anahtarlar veya jetonlar), bunları uygulamanızın içinde sabit kod olarak yazmayın! Bunun yerine, Space deposunuzun Ayarlar sayfasına gidin ve yeni bir değişken veya gizli değer ekleyin. Hassas olmayan yapılandırma değerlerini depolamak için değişkenleri, erişim jetonlarını, API anahtarlarını veya herhangi bir hassas değeri veya kimlik bilgisini depolamak için gizli değerleri kullanın.

Şunları kullanabilirsiniz:

  • Hassas olmayan yapılandırma değerlerini depolamanız gerekiyorsa Değişkenler kullanın. Bunlar herkese açıktır ve görüntülenebilir ve sizinkinden kopyalanan Spaces'lere otomatik olarak eklenir.
  • Erişim jetonlarını, API anahtarlarını veya herhangi bir hassas değeri veya kimlik bilgisini saklamak için kullanılan Gizli Bilgiler. Bunlar özel niteliktedir ve ayarlandıktan sonra Space'in ayarlar sayfasından değerleri okunamaz. Deponuzdan kopyalanan Space'lere eklenmezler.

Space SDK'nıza bağlı olarak gizli bilgilerin ve değişkenlerin erişimi farklıdır:

  • Statik Spaces için her ikisi de window.huggingface.variables üzerinden istemci tarafı JavaScript ile kullanılabilir.
  • Docker Spaces için Docker ile ortam yönetimi konusuna göz atın

Diğer Spaces için her ikisi de uygulamanıza ortam değişkeni olarak sunulur. Daha önce tanımlanan MODEL_REPO_ID değişkenine Python'da erişiminin çok basit bir örneği aşağıdadır (gizli bilgiler için de aynı olacaktır):

import os
print(os.getenv('MODEL_REPO_ID'))

Spaces sahipleri, Spaces Secrets Scanner sabit kodlanmış gizli bilgileri bulduğunda uyarılır.

Bir Space'in Kopyalanması

Bir Space'i çoğaltmak, başka bir demo başlangıç şablonu olarak kullanarak yeni bir demo oluşturmak istediğinizde faydalı olabilir. Hızlı çıkarım için kullanımınıza özel bireysel bir Yükseltilmiş Space'e sahip olmak istediğinizde de çoğaltılmış Space'ler faydalı olabilir.

Bir Space'i çoğaltmak istiyorsanız, Space'in sağ üst köşesindeki üç noktaya tıklayıp Duplicate this Space seçeneğine tıklayabilirsiniz. Bunu yaptığınızda aşağıdaki öznitelikleri değiştirebilirsiniz:

  • Sahip: Kopyalanan Space hesabınız altında veya yazma erişiminiz olan herhangi bir kuruluşta olabilir
  • Alan adı
  • Görünürlük: Uzay varsayılan olarak özeldir. Görünürlük seçenekleri hakkında daha fazla bilgi için buraya bakın.
  • Donanım: Space'in çalışacağı donanımı seçebilirsiniz. Donanım yükseltmeleri hakkında daha fazla bilgi için buraya bakın.
  • Depolama: Orijinal depo bir depolama kovası kullanıyorsa, depolamayı yapılandırmak için size istek gönderilir. Disk kullanımı ve depolama hakkında daha fazla bilgiyi burada okuyabilirsiniz.
  • Gizli bilgiler ve değişkenler: Orijinal depoda bazı gizli bilgiler ve değişkenler tanımlanmışsa, depoyu çoğaltırken bunları da ayarlayabilirsiniz.

Bazı Spaces, ayarlamanız gerekebilecek ortam değişkenlerine sahip olabilir. Bu durumlarda, çoğaltma iş akışı, kaynak Space'teki herkese açık Değişkenleri otomatik olarak doldurur ve Gizli Bilgileri (Secrets) ayarlamanız konusunda size bir uyarı verir. Çoğaltılan Space varsayılan olarak CPU Basic donanımını kullanır, ancak gerekirse daha sonra yükseltebilirsiniz. Çoğaltma işlemi, yeni bir Space oluşturma ile aynı kurallara tabidir: Gradio veya Docker Space çoğaltmak, hedef hesap veya kuruluş için ücretli bir plan gerektirir (kişisel hesaplar için aynı ZeroGPU ücretsiz katmanı istisnası hariç).

Ağ

Space'iniz ağ istekleri yapması gerekiyorsa, standart HTTP ve HTTPS portları (80 ve 443) ile 8080 portu üzerinden istekler yapabilirsiniz. Diğer portlara giden tüm istekler engellenir.

Yaşam döngüsü yönetimi

Ücretsiz donanımda, Space'iniz kullanılmadığı takdirde belirli bir süre sonra “uyku moduna” geçer ve çalışmayı durdurur. Space'inizin sınırsız süreyle çalışmasını istiyorsanız, ücretli donanıma yükseltme yapmayı düşünebilirsiniz. Ayrıca Space'inizi Ayarlar sekmesinden manuel olarak duraklatabilirsiniz. Duraklatılan bir Space, yazma erişimine sahip biri tarafından yeniden başlatılana kadar çalışmayı durdurur. Duraklatma süresi faturalandırılmaz.

Yerleşik ortam değişkenleri

Bazı durumlarda, Space yazarına veya depo adına programatik erişim almak isteyebilirsiniz. Bu özellik, kullanıcıların Space'inizi çoğaltmasını beklediğinizde özellikle faydalıdır. Bunu kolaylaştırmak için Spaces, çalışma zamanında farklı ortam değişkenlerini açığa çıkarır (bkz. ayrıca Jobs'ta yerleşik ortam değişkenleri). osanseviero/i-like-flan adlı bir Space için:

  • ACCELERATOR: Kullanılabilir hızlandırıcının türü (ör. t4-medium, a10g-small) veya yalnızca CPU kullanan Spaces için none.
  • CPU_CORES: 4
  • MEMORY: 15Gi
  • SPACE_AUTHOR_NAME: osanseviero
  • SPACE_REPO_NAME: i-like-flan
  • SPACE_TITLE: I Like Flan (README dosyasında belirtilir)
  • SPACE_ID: osanseviero/i-like-flan
  • SPACE_HOST: osanseviero-i-like-flan.hf.space
  • SPACE_CREATOR_USER_ID: 6032802e1f993496bc14d9e3 - Bu, Space'i ilk olarak oluşturan kullanıcının kimlik numarasıdır. Space bir organizasyon altındaysa işe yarar. Kullanıcı bilgilerini https://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview adresine bir API çağrısı yaparak alabilirsiniz.
  • SPACE_SIGNING_SECRET: Space'inize özgü, gizli olarak maruz bırakılan rastgele bir gizli anahtar. Yeniden başlatmalar, yeniden derlemeler ve kopyalar arasında aynı kalır; bu sayede çerezler, OAuth durumu veya CSRF jetonları gibi öğeleri imzalamak için kullanabilirsiniz. Kendi değerinizi kullanmak isterseniz, Space ayarlarınızda SPACE_SIGNING_SECRET adında bir gizli anahtar ekleyin.

Eğer OAuth Space'iniz için etkinleştirildiyse, aşağıdaki değişkenler de kullanılabilir olacaktır:

  • OAUTH_CLIENT_ID: OAuth uygulamanızın istemci kimliği (halka açık)
  • OAUTH_CLIENT_SECRET: OAuth uygulamanızın istemci gizli anahtarı
  • OAUTH_SCOPES: OAuth uygulamanızın erişebildiği kapsamlar. Şu anda bu her zaman "openid profile"'dır.
  • OPENID_PROVIDER_URL: OpenID sağlayıcısının URL'si. OpenID meta verileri {OPENID_PROVIDER_URL}/.well-known/openid-configuration adresinde kullanılabilir olacaktır.

Depoyu Klonlayın

Space depoyunuzu yerel olarak kolayca klonlayabilirsiniz. Bunun için Space sayfanızın sağ üst köşesindeki açılır menüye tıklayarak başlayın:

“Clone repository” seçeneğini seçin, ardından Space deposunu HTTPS veya SSH kullanarak yerel makinenize klonlamak için talimatları izleyebilirsiniz.

Hub'da Modelleri ve Veri Setlerini Bağlama

Space’inizin README metadata’sına tanımlayıcılarını ekleyerek Space’inizin bağlantı kurduğu tüm modelleri ve veri kümelerini sergileyebilirsiniz. Bunu yapmak için bunları models ve datasets anahtarlarının altında tanımlayabilirsiniz. README dosyasında bu artefaktları listelemekle kalmayıp herhangi bir .py, .ini veya .html dosyasında da kaydedebilirsiniz. Biz bunu otomatik olarak ayrıştıracağız!

Bir uzaydaki iki modeli bağlayan bir örnek:

title: My lovely space
emoji: 🤗
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
models:
- reach-vb/musicgen-large-fp16-endpoint
- reach-vb/wav2vec2-large-xls-r-1B-common_voice7-lt-ft
Update on GitHub