Hub 文档

Spaces 概览

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Spaces 概览

Hugging Face Spaces 让您可以在几分钟内轻松创建和部署机器学习驱动的演示。观看以下视频,快速了解 Spaces。

在以下部分中,您将学习创建 Space、配置 Space 以及将代码部署到 Space 的基础知识。

创建新 Space

要创建新 Space,请访问 Spaces 主页 并点击 创建新 Space。除了为您的 Space 选择名称、选择可选许可证和设置 Space 的可见性之外,您还需要选择 Space 的 SDK。中心提供三种 SDK 选项:Gradio、Docker 和静态 HTML。如果您选择“Gradio”作为您的 SDK,您将进入一个显示以下页面的新仓库。

在幕后,Spaces 将您的代码存储在 Git 仓库中,就像模型和数据集仓库一样。因此,我们用于中心上所有其他仓库gitgit-lfs)的相同工具也适用于 Spaces。按照仓库入门中的相同流程将文件添加到您的 Space。每次推送新提交时,Space 都将自动重新构建和重启。

有关创建第一个 Space 的分步教程,请参阅以下指南:

硬件资源

每个 Spaces 环境默认限制为 16GB RAM、2 个 CPU 核和 50GB(非持久)磁盘空间,您可以免费使用。您可以升级到更好的硬件,包括各种 GPU 加速器和持久存储,以获得具有竞争力的价格。要请求升级,请点击 Space 中的设置按钮并选择您偏好的硬件环境。

硬件 GPU 显存 CPU 内存 磁盘 每小时价格
CPU 基本型 - 2 个 vCPU 16 GB 50 GB 免费!
CPU 升级 - 8 个 vCPU 32 GB 50 GB $0.03
Nvidia T4 - 小型 16GB 4 个 vCPU 15 GB 50 GB $0.60
Nvidia T4 - 中型 16GB 8 个 vCPU 30 GB 100 GB $0.90
Nvidia A10G - 小型 24GB 4 个 vCPU 15 GB 110 GB $1.05
Nvidia A10G - 大型 24GB 12 个 vCPU 46 GB 200 GB $3.15
2x Nvidia A10G - 大型 48GB 24 个 vCPU 92 GB 1000 GB $5.70
4x Nvidia A10G - 大型 96GB 48 个 vCPU 184 GB 2000 GB $10.80
Nvidia A100 - 大型 40GB 12 个 vCPU 142 GB 1000 GB $4.13
存储层 大小 持久性 月价格
临时(默认) 50GB 免费!
小型 临时 + 20GB $5
中型 临时 + 150GB $25
大型 临时 + 1TB 是的 $100

注意:在我们的定价页面上查找更详细和全面的定价信息。

您有一个很棒的 Space,但需要帮助支付硬件升级费用吗?我们乐于帮助那些拥有创新 Space 的人,所以请随意使用您 Space 的“设置”选项卡中的链接申请社区 GPU 资助,看看您的 Space 是否符合条件!

在我们的专有部分Spaces GPU 升级Spaces 存储升级中阅读更多内容。

管理秘密和环境变量

如果您的应用程序需要环境变量(例如,密钥或令牌),请不要将它们硬编码到您的应用程序中!相反,请转到您的 Space 仓库的“设置”页面并添加一个新变量秘密。如果您需要存储非敏感配置值,请使用变量;如果需要存储访问令牌、API 密钥或任何敏感值或凭据,请使用秘密。

你可以使用

  • 变量用于存储非敏感配置值。它们是公开可访问和可见的,并且会自动添加到从您的 Space 复制的 Space 中。
  • 秘密用于存储访问令牌、API 密钥或任何敏感值或凭据。它们是私有的,一旦设置,其值就无法从 Space 的设置页面读取。它们不会添加到从您的仓库复制的 Space 中。

访问秘密和变量的方式因您的 Space SDK 而异。

  • 对于静态 Spaces,两者都可以通过客户端 JavaScript 在 window.huggingface.variables 中获取。
  • 对于 Docker Spaces,请查看Docker 环境变量管理

对于其他 Spaces,两者都作为环境变量暴露给您的应用程序。以下是一个非常简单的示例,演示如何在 Python 中访问先前声明的 MODEL_REPO_ID 变量(对于秘密也是如此)。

import os
print(os.getenv('MODEL_REPO_ID'))

当我们的 Spaces Secrets Scanner 发现硬编码的秘密时,Spaces 所有者会收到警告。

复制 Space

如果您想以一个现有的演示作为初始模板来构建新演示,复制 Space 会很有用。复制的 Space 也可以用于您自己的使用,以实现快速推理。

如果您想复制一个 Space,可以点击 Space 右上角的三个点,然后点击 复制此 Space。完成此操作后,您将能够更改以下属性:

  • 所有者:复制的 Space 可以归您或您拥有写入权限的任何组织所有。
  • 空间名称
  • 可见性:Space 默认是私有的。有关私有仓库的更多信息,请点击此处
  • 硬件:您可以选择 Space 将运行的硬件。有关硬件升级的更多信息,请点击此处
  • 存储:如果原始仓库使用持久存储,系统将提示您选择一个存储层。有关持久存储的更多信息,请点击此处
  • 秘密和变量:如果原始仓库设置了秘密和变量,您可以在复制仓库时设置它们。

某些 Spaces 可能需要您设置环境变量。在这种情况下,复制工作流程会自动填充源 Space 中的公共变量,并就设置秘密向您发出警告。复制的 Space 默认将使用免费的 CPU 硬件,但如果需要,您可以稍后升级。

网络

如果您的 Space 需要进行任何网络请求,您可以通过标准 HTTP 和 HTTPS 端口(80 和 443)以及端口 8080 进行请求。任何发送到其他端口的请求都将被阻止。

生命周期管理

在免费硬件上,您的 Space 在一段时间未使用后会“休眠”并停止执行。如果您希望您的 Space 无限期运行,请考虑升级到付费硬件。您也可以从“设置”选项卡手动暂停您的 Space。暂停的 Space 会停止执行,直到其所有者手动重新启动。暂停时间不计费。

辅助环境变量

在某些情况下,您可能希望以编程方式访问 Space 作者或仓库名称。此功能在您期望用户复制您的 Space 时特别有用。为了帮助实现这一点,Spaces 在运行时公开了不同的环境变量。给定一个 Space osanseviero/i-like-flan

  • CPU_CORES: 4
  • MEMORY: 15Gi
  • SPACE_AUTHOR_NAME:osanseviero
  • SPACE_REPO_NAME: i-like-flan
  • SPACE_TITLE: I Like Flan (在 README 文件中指定)
  • SPACE_ID: osanseviero/i-like-flan
  • SPACE_HOST: osanseviero-i-like-flan.hf.space
  • SPACE_CREATOR_USER_ID: 6032802e1f993496bc14d9e3 - 这是最初创建 Space 的用户 ID。如果 Space 属于某个组织,则此 ID 会很有用。您可以通过对 https://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview 进行 API 调用来获取用户信息。

如果您的 Space 启用了 OAuth,则以下变量也将可用:

  • OAUTH_CLIENT_ID:您的 OAuth 应用程序的客户端 ID(公开)
  • OAUTH_CLIENT_SECRET:您的 OAuth 应用的客户端密钥
  • OAUTH_SCOPES:您的 OAuth 应用程序可访问的范围。目前,此值始终为 "openid profile"
  • OPENID_PROVIDER_URL:OpenID 提供程序的 URL。OpenID 元数据将在 {OPENID_PROVIDER_URL}/.well-known/openid-configuration 中可用。

克隆仓库

您可以轻松地在本地克隆您的 Space 仓库。首先点击您 Space 页面右上角的下拉菜单。

选择“克隆仓库”,然后您将能够按照说明使用 HTTPS 或 SSH 将 Space 仓库克隆到您的本地机器。

连接中心上的模型和数据集

您可以通过在 Space 的 README 元数据中添加模型和数据集的标识符来展示您的 Space 链接到的所有模型和数据集。为此,您可以在 modelsdatasets 键下定义它们。除了在 README 文件中列出工件,您还可以在任何 .py.ini.html 文件中记录它们。我们将自动解析它们!

这是一个链接两个 Space 模型的示例:

title: My lovely space
emoji: 🤗
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
models:
- reach-vb/musicgen-large-fp16-endpoint
- reach-vb/wav2vec2-large-xls-r-1B-common_voice7-lt-ft
< > 在 GitHub 上更新