Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

Spaces ZeroGPU:Spaces 的动态 GPU 分配

ZeroGPU schema

ZeroGPU 是一个共享基础设施,可优化 Hugging Face Spaces 上 AI 模型和演示的 GPU 使用率。它可以根据需要动态分配和释放 NVIDIA A100 GPU,从而提供:

  1. 免费 GPU 访问:为 Spaces 提供经济高效的 GPU 使用方式。
  2. 多 GPU 支持:允许 Spaces 在单个应用程序上同时利用多个 GPU。

与传统的单 GPU 分配不同,ZeroGPU 的高效系统通过最大限度地提高资源利用率和能效,降低了开发者、研究人员和组织部署 AI 模型的门槛。

使用和托管 ZeroGPU Spaces

  • 使用现有的 ZeroGPU Spaces
    • 所有用户都可以免费使用 ZeroGPU Spaces。(访问精选列表)。
    • PRO 用户在使用任何 ZeroGPU Spaces 时,可获得 5 倍的每日使用配额,并在 GPU 队列中获得最高优先级。
  • 托管您自己的 ZeroGPU Spaces
    • 个人账户:订阅 PRO 以在创建新的 Gradio SDK Space 时访问硬件选项中的 ZeroGPU。
    • 组织:订阅 Enterprise Hub,为所有组织成员启用 ZeroGPU Spaces。

技术规格

  • GPU 类型:Nvidia A100
  • 可用 VRAM:每个工作负载 40GB

兼容性

ZeroGPU Spaces 旨在与大多数基于 PyTorch 的 GPU Spaces 兼容。虽然对于诸如 transformers 和 diffusers 等高级 Hugging Face 库的兼容性得到了增强,但用户应该注意:

  • 目前,ZeroGPU Spaces 仅与 Gradio SDK 兼容。
  • 与标准 GPU Spaces 相比,ZeroGPU Spaces 的兼容性可能有限。
  • 在某些情况下可能会出现意外问题。

支持的版本

  • Gradio:4+
  • PyTorch:2.0.1、2.1.2、2.2.2、2.4.0(注意:由于 PyTorch 错误,不支持 2.3.x)
  • Python:3.10.13

ZeroGPU 入门指南

要在您的 Space 中使用 ZeroGPU,请按照以下步骤操作:

  1. 确保在您的 Space 设置中选择了 ZeroGPU 硬件。
  2. 导入 `spaces` 模块。
  3. 使用 `@spaces.GPU` 装饰器装饰依赖 GPU 的函数。

此装饰过程允许 Space 在函数被调用时请求 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 访问者的队列优先级。

托管限制

  • 个人账户 (PRO 订阅者):最多 10 个 ZeroGPU Spaces。
  • 组织账户 (Enterprise Hub):最多 50 个 ZeroGPU Spaces。

通过利用 ZeroGPU,开发者可以创建更高效、可扩展的 Spaces,最大限度地提高 GPU 利用率,同时最大限度地降低成本。

反馈

您可以直接在 HF Hub 上分享您对 Spaces ZeroGPU 的反馈:https://huggingface.co/spaces/zero-gpu-explorers/README/discussions

< > 在 GitHub 上更新