Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验的访问权限

开始使用

空间概述

Hugging Face 空间使您可以轻松地在几分钟内创建和部署支持 ML 的演示。观看以下视频以快速了解空间

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

创建新空间

要创建一个新空间,请访问 空间主页 并点击创建新空间。除了选择空间名称、选择可选许可证以及设置空间的可见性之外,还会提示您选择空间的SDK。Hub 提供四个 SDK 选项:Gradio、Streamlit、Docker 和静态 HTML。如果您选择“Gradio”作为您的 SDK,您将被导航到一个显示以下页面的新仓库

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

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

硬件资源

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

硬件 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

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

您是否有很棒的空间但需要帮助支付硬件升级成本?我们喜欢帮助那些拥有创新空间的人,因此请随时使用空间“设置”选项卡中的链接申请社区 GPU 补助金,看看您的空间是否合格!

在有关 空间 GPU 升级空间存储升级 的专用部分中了解更多信息。

管理秘密和环境变量

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

您可以使用

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

访问秘密和变量的方式因空间 SDK 而异

  • 对于静态空间,两者都可通过 window.huggingface.variables 中的客户端 JavaScript 使用
  • 对于 Docker 空间,请查看 使用 Docker 进行环境管理
  • 对于 Streamlit 空间,秘密通过 Streamlit 秘密管理 公开给您的应用程序,公共变量直接作为环境变量可用

对于其他空间,两者都作为环境变量公开给您的应用程序。以下是在 Python 中访问先前声明的 MODEL_REPO_ID 变量的非常简单的示例(对于秘密来说也是一样的)

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

当我们的 Spaces Secrets Scanner 发现硬编码的秘密 时,会向空间所有者发出警告。

复制空间

如果您想使用另一个演示作为初始模板来构建新的演示,复制空间可能会有用。如果您想拥有一个供您个人使用,并进行快速推断的升级空间,复制空间也很有用。

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

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

某些空间可能具有需要您设置的环境变量。 在这些情况下,重复工作流程将自动从源空间填充公共变量,并向您发出有关设置 Secrets 的警告。 重复的空间默认使用免费的 CPU 硬件,但您可以在需要时升级。

网络

如果您的空间需要进行任何网络请求,您可以通过标准 HTTP 和 HTTPS 端口(80 和 443)以及端口 8080 进行请求。 任何前往其他端口的请求都会被阻止。

生命周期管理

在免费硬件上,如果您的空间一段时间内未被使用,它将“进入睡眠状态”并停止执行。 如果您希望您的空间无限期运行,请考虑升级到付费硬件。 您也可以从“设置”选项卡手动暂停您的空间。 暂停的空间将停止执行,直到其所有者手动重新启动。 暂停时间不收费。

辅助环境变量

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

  • CPU_CORES: 4
  • MEMORY: 15Gi
  • SPACE_AUTHOR_NAME: osanseviero
  • SPACE_REPO_NAME: i-like-flan
  • SPACE_TITLE: 我喜欢 Flan(在 README 文件中指定)
  • SPACE_ID: osanseviero/i-like-flan
  • SPACE_HOST: osanseviero-i-like-flan.hf.space
  • SPACE_CREATOR_USER_ID: 6032802e1f993496bc14d9e3 - 这是最初创建空间的用户的 ID。 如果空间位于组织下,这很有用。 您可以使用 API 调用 https://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview 获取用户信息。

如果为您的空间启用了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获取。

克隆仓库

您可以轻松地将空间仓库本地克隆。 从点击空间页面右上角的下拉菜单开始

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

链接 Hub 上的模型和数据集

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

以下是如何链接来自空间的两个模型的示例

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 上更新