Hub 文件
Spaces ZeroGPU:Spaces 的動態 GPU 分配
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
Spaces ZeroGPU:Spaces 的動態 GPU 分配

ZeroGPU 是一種共享基礎設施,可最佳化 Hugging Face Spaces 上 AI 模型和演示的 GPU 使用。它根據需要動態分配和釋放 NVIDIA H200 GPU,提供:
- 免費 GPU 訪問:實現 Spaces 的經濟高效的 GPU 使用。
- 多 GPU 支援:允許 Spaces 在單個應用程式上同時利用多個 GPU。
與傳統的單 GPU 分配不同,ZeroGPU 的高效系統透過最大化資源利用率和電源效率,降低了開發人員、研究人員和組織部署 AI 模型的障礙。
使用和託管 ZeroGPU Spaces
- 使用現有 ZeroGPU Spaces
- 託管自己的 ZeroGPU Spaces
技術規格
- GPU 型別:Nvidia H200 分片
- 可用視訊記憶體:每個工作負載 70GB
相容性
ZeroGPU Spaces 旨在與大多數基於 PyTorch 的 GPU Spaces 相容。雖然針對 transformers
和 diffusers
等高階 Hugging Face 庫增強了相容性,但使用者應注意:
- 目前,ZeroGPU Spaces 僅相容 Gradio SDK。
- 與標準 GPU Spaces 相比,ZeroGPU Spaces 的相容性可能有限。
- 在某些情況下可能會出現意外問題。
支援的版本
- Gradio: 4+
- PyTorch: 2.1.2, 2.2.2, 2.4.0, 2.5.1(注意:由於存在 PyTorch bug,不支援 2.3.x)
- Python: 3.10.13
ZeroGPU 入門
要在 Space 中利用 ZeroGPU,請遵循以下步驟:
- 確保在 Space 設定中選擇了 ZeroGPU 硬體。
- 匯入
spaces
模組。 - 使用
@spaces.GPU
裝飾 GPU 依賴函式。
此裝飾過程允許 Space 在呼叫函式時請求 GPU,並在完成後釋放 GPU。
使用示例
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()
注意:@spaces.GPU
裝飾器在非 ZeroGPU 環境中設計為無副作用,確保了不同設定之間的相容性。
持續時間管理
對於預計會超過預設 60 秒 GPU 執行時間的函式,您可以指定自定義持續時間:
@spaces.GPU(duration=120)
def generate(prompt):
return pipe(prompt).images
這會將最大函式執行時間設定為 120 秒。為較快函式指定較短的持續時間將提高 Space 訪問者的佇列優先順序。
託管限制
透過利用 ZeroGPU,開發人員可以建立更高效、可擴充套件的 Spaces,最大限度地利用 GPU 並最大限度地降低成本。
反饋
您可以在 HF Hub 上直接分享您對 Spaces ZeroGPU 的反饋:https://huggingface.co/spaces/zero-gpu-explorers/README/discussions
< > 在 GitHub 上更新