Hub documentation

使用 GPU Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

使用 GPU Spaces

您可以使用 Space 顶部导航栏中的 Settings 按钮,将您的 Space 升级为使用 GPU 加速器。如果您正在为副业项目构建一个很酷的演示,甚至可以申请免费升级!

从长远来看,我们还希望支持非 GPU 硬件,例如 HPU、IPU 或 TPU。如果您有希望在特定 AI 硬件上运行的需求,请告诉我们(网站地址为 huggingface.co)。

当您的 Space 在 GPU 上运行时,您可以直接通过此徽章查看其运行的硬件:

硬件规格

在下面的表格中,您可以查看不同升级选项的规格。

CPU

硬件CPU内存GPU 内存磁盘每小时价格
CPU 基础2 个 vCPU16 GB-50 GB免费!
CPU 升级8 个 vCPU32 GB-50 GB$0.03

CPU Basic 不收取按小时计费的费用,但创建运行在计算资源(Gradio 或 Docker)上的新 Space 需要付费计划。静态 Space 对所有人免费。详情请参阅 Spaces 概览。

GPU

硬件CPU内存GPU 内存磁盘每小时价格
Nvidia T4 - 小型4 个 vCPU15 GB16 GB50 GB$0.40
Nvidia T4 - 中等8 个 vCPU30 GB16 GB100 GB$0.60
1x Nvidia L48 个 vCPU30 GB24 GB400 GB$0.80
4x Nvidia L448 个 vCPU186 GB96 GB3200 GB$3.80
1x Nvidia L40S8 个 vCPU62 GB48 GB380 GB$1.80
4x Nvidia L40S48 个 vCPU382 GB192 GB3200 GB$8.30
8x Nvidia L40S192 vCPU1534 GB384 GB6500 GB$23.50
1x Nvidia RTX PRO 600023 个 vCPU256 GB96 GB475 GB$2.75
2x Nvidia RTX PRO 600046 个 vCPU512 GB192 GB950 GB$5.50
4x Nvidia RTX PRO 600092 vCPU1024 GB384 GB1900 GB$11.00
8x Nvidia RTX PRO 6000184 个 vCPU2048 GB768 GB3800 GB$22.00
Nvidia A10G - 小型4 个 vCPU15 GB24 GB110 GB$1.00
Nvidia A10G - 大型12 个 vCPU46 GB24 GB200 GB$1.50
2x Nvidia A10G - 大型24 个 vCPU92 GB48 GB1000 GB$3.00
4x Nvidia A10G - 大型48 个 vCPU184 GB96 GB2000 GB$5.00
Nvidia A100 - 大型12 个 vCPU142 GB80 GB1000 GB$2.50
Nvidia H100 (已于 2025 年 12 月移除)
8x Nvidia H100 (已于 2025 年 12 月移除)
4x Nvidia A10048 个 vCPU568 GB320 GB4000 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB8000 GB$20.00

以编程方式配置硬件

您可以通过 huggingface_hub 以编程方式配置您的 Space 硬件。这适用于需要动态分配 GPU 的多种使用场景。 有关更多详细信息,请参阅 此指南。

特定框架的要求

大多数 Spaces 在 GPU 升级后应能直接运行,但有时您需要安装所使用的机器学习框架的 CUDA 版本。请遵循本指南,以确保您的 Space 充分利用升级后的硬件。

PyTorch

您需要安装与内置 CUDA 驱动程序兼容的 PyTorch 版本。将以下两行添加到您的 requirements.txt 文件中即可:

--extra-index-url https://download.pytorch.org/whl/cu113
torch

您可以在 app.py 中运行以下代码,并在您的 Space 日志中查看输出,以验证安装是否成功:

import torch
print(f"Is CUDA available: {torch.cuda.is_available()}")
# True
print(f"CUDA device: {torch.cuda.get_device_name(torch.cuda.current_device())}")
# Tesla T4

许多框架在检测到可用 GPU 时会自动使用 GPU。🤗 transformers、fastai 中的 Pipelines 以及许多其他框架都是如此。在其他情况下,或者如果你直接使用 PyTorch,可能需要将模型和数据移动到 GPU 上,以确保计算在加速器上而非 CPU 上执行。例如,你可以使用 PyTorch 的 .to() 语法:

model = load_pytorch_model()
model = model.to("cuda")

JAX

如果你使用 JAX,需要指定包含 CUDA 兼容包的 URL。请在你的 requirements.txt 文件中添加以下行:

-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlib

之后,您可以通过打印以下代码的输出并在您的 Space 日志中检查来验证安装。

import jax

print(f"JAX devices: {jax.devices()}")
# JAX devices: [StreamExecutorGpuDevice(id=0, process_index=0)]
print(f"JAX device type: {jax.devices()[0].device_kind}")
# JAX device type: Tesla T4

TensorFlow

默认的 tensorflow 安装应能识别 CUDA 设备。只需将 tensorflow 添加到您的 requirements.txt 文件中,并在 app.py 中使用以下代码,即可在您的 Space 日志中验证。

import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

账单

Spaces 的计费基于硬件使用情况,并按分钟计算:只要 Space 在请求的硬件上运行,无论是否被使用,都会按分钟计费。

在 Space 的生命周期中,只有当 Space 处于 Starting 或 Running 状态时才会产生费用。这意味着构建阶段不产生任何费用。

如果正在运行的 Space 开始出现故障,它将被自动暂停,并且计费也会停止。

运行在免费硬件上的 Spaces 如果长时间(例如两天)未被使用,将自动挂起。升级后的 Spaces 默认会无限期运行,即使没有使用。您可以通过在 Space 的设置中设置自定义“休眠时间”来更改此行为。若要停止对您的 Space 计费,您可以将硬件更改为 CPU basic,或将其暂停。

有关账单的更多信息,请参阅Hub 全局专用部分。

社区 GPU 资助

您是否拥有一个出色的 Space,但需要帮助支付 GPU 硬件升级费用?我们乐于为具有创新性的 Space 提供支持,因此请随时申请社区 GPU 资助,看看您的项目能否入选!您可以在 Space 硬件仓库设置的左下角“sleep time settings”下找到此申请入口:

Community GPU Grant

设置自定义休眠时间

如果您的 Space 运行在默认的 cpu-basic 硬件上,当闲置时间超过设定阈值(目前为 48 小时)时,它将进入休眠状态。任何访问您 Space 的用户都会自动将其重新启动。

如果您希望您的 Space 永不休眠,或者希望设置自定义的休眠时间,则需要升级到付费硬件。

默认情况下,升级后的 Space 永远不会进入休眠状态。不过,您可以使用此设置,让升级后的 Space 在闲置时进入空闲(stopped 阶段)😴。在休眠期间,您无需为升级的硬件付费。当 Space 收到新的访问者时,它会“唤醒”或重新启动。

随后,您的 Spaces 硬件设置中将提供以下界面:

以下选项可用:

副本

你可以通过请求多个副本对 Space 进行横向扩展。这会将流量分配到 Space 的多个实例上,从而提升可用性和吞吐量。你可以通过 API 设置副本数量:

POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json

{
  "replicas": 2
}

副本仅适用于已升级(付费)的硬件。每个副本单独计费。

流式传输日志、事件和指标

您可以通过 SSE(Server-Sent Events)从您的 Space 流式传输实时日志、状态事件和指标:

  • 构建或运行日志:GET /api/spaces/{namespace}/{repo}/logs/{build|run}
  • 状态事件:GET /api/spaces/{namespace}/{repo}/events
  • 指标:GET /api/spaces/{namespace}/{repo}/metrics

这些端点需要身份验证,并使用 SSE 协议 返回数据。

日志端点接受一个可选的 tail 查询参数(非负整数),用于将响应限制为日志的最后 N 行:

GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100

暂停 Space

您可以从仓库设置中pause一个 Space。“已暂停”的 Space 表示该 Space 处于挂起状态,在手动重启之前不会使用任何资源。任何对该 Space 具有写入权限的用户都可以暂停或重启它。暂停期间不计费。

Update on GitHub