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 时,每天可获得 x5 倍的使用配额和 GPU 队列中的最高优先级。
  • 托管您自己的 ZeroGPU Spaces
    • 个人帐户:订阅 PRO 以在创建新的 Gradio SDK Space 时在硬件选项中访问 ZeroGPU。
    • 组织:订阅企业中心 以为所有组织成员启用 ZeroGPU Spaces。

技术规格

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

兼容性

ZeroGPU Spaces 旨在与大多数基于 PyTorch 的 GPU Spaces 兼容。虽然对 transformersdiffusers 等高级 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 入门

要利用 Spaces 中的 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 访问者的队列优先级。

托管限制

通过利用 ZeroGPU,开发者可以创建更高效且可扩展的空间,最大限度地利用 GPU 并减少成本。

反馈

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

< > 更新 在 GitHub 上