在人工智能技术领域,GPU 资源一直是推动研究和应用的关键因素。然而,GPU 的成本和可用性对于许多研究人员和开发者来说却是一个显著的障碍。
在 Hugging Face,我们希望人工智能技术可以更加普惠化,更多开发者可以参与其中共同探索,在人工智能技术浪潮中创造出让更多人受益的产品。
为此,我们计划提供 1000 万美元的免费共享 GPU,借以推动下一波的人工智能创新。
什么是 ZeroGPU?
ZeroGPU 是 Hugging Face 的 Spaces 平台的一种新型硬件集成,设计有两个主要目标:
- 为 Spaces 应用提供免费的 GPU 访问;
- 允许 Space 应用在多个 GPU 上运行,提高性能和效率。
通过一个动态系统实现,Space 应用可以根据需要高效地持有和释放 GPU,而不受限于单个 GPU。ZeroGPU 采用强大的 Nvidia A100 GPU,每个设备提供 40GB 的显存,确保复杂工作负载的高性能。
兼容性和使用
ZeroGPU Spaces 旨在与大多数基于 PyTorch 的 GPU Spaces 兼容,尤其是 Hugging Face 库如 transformers 或 diffusers。然而,由于其使用较新的架构,ZeroGPU Spaces 可能比传统的 GPU Spaces 遇到更多的错误。目前,ZeroGPU 仅兼容 Gradio SDK,并推荐使用以下版本以确保最佳性能:
- Gradio: v4+ 版本
- PyTorch: 2.0.0 至 2.2.0 版本
- Python: 3.10.13
要集成 ZeroGPU,需要在要使用 ZeroGPU 处理的 Python 函数前使用 @spaces.GPU
这个 decorator (装饰器) 。
这个装饰器确保函数执行期间分配 GPU,并在执行完毕后立即释放。以下是如何在 Space 中设置 GPU 支持函数的示例:
python
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()
这种设置不仅优化了资源使用,还简化了 AI 模型的部署。
增强的可访问性
ZeroGPU 对所有用户开放,PRO 用户还可以托管自己的 ZeroGPU Spaces。为了帮助开发过程,Hugging Face 鼓励用户通过社区标签提供反馈,并探索已经可用的 ZeroGPU Spaces列表。
对于需要较长执行时间的函数,开发者可以在 @spaces.GPU
装饰器中指定持续时间参数,将GPU分配时间延长到最多 120 秒,以适应更密集的计算需求。
开始使用
注册用户可以在 Spaces 页面选择创建 Space,选择使用 Gradio SDK,Space Hardware 选择 Zero NVIDIA A100 即可。
期待反馈
我们希望开发者们可以将这个消息分享给身边的朋友,如果有任何反馈,请随时在文章里留言让我们知道!