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 上更新