开源 AI 食谱文档
HF Spaces 中的交互式开发
并获得增强的文档体验
开始使用
HF Spaces 中的交互式开发
像 Google Colab 或 Kaggle Notebooks 这样的服务让人们可以非常轻松地在浏览器中使用易于使用的 Jupyter Notebooks 访问计算资源。不幸的是,这些服务也有一些限制
- GPU 不稳定,训练作业可能在完成前被取消。
- GPU 的选择仅限于少数几个单 GPU。
- 没有原生支持通过您首选的本地 IDE(如 VS Code)连接到云 GPU。
HF JupyterLab Spaces 克服了这些限制。使用 HF JupyterLab Space,您可以
- 在浏览器中的 JupyterLab 中完成所有开发工作。
- 动态地在 CPU 和各种 GPU 之间切换,这些 GPU 永远不会停止,除非您希望它们停止。
- 通过 SSH 将云计算资源与您首选的本地 IDE(如 VS Code)连接,以实现完全远程开发。
本食谱将指导您完成自己的 JupyterLab Space 的设置。
HF JupyterLab Spaces 中的交互式开发
创建您的 JupyterLab Space
要创建您自己的 HF JupyterLab Space,请导航到 Space 创建页面,然后单击 Docker
> JupyterLab
。HF JupyterLab Space 本质上是一个 Docker 容器,其中预配置了 JupyterLab 的副本,该副本在 Hugging Face 的云基础设施上运行。以下是关于配置 JupyterLab Space 的一些建议
- 选择正确的所有者:如果您将 JupyterLab Space 用作企业 Hub 组织工作的一部分,请在
所有者
下拉列表中选择组织的名称(例如,下图中的虚拟“enterprise-explorers”)。任何计算成本都将记入此企业组织的帐户。 - 访问控制:如果您只希望团队的选定成员访问 JupyterLab Space,您可以单击
访问控制
旁边的所有人
,并将对 JupyterLab Space 的访问权限限制为预定义的资源组。资源组是一项企业 Hub 功能,可让您将对选定存储库(模型、数据集、Spaces)的访问权限限制为较小的团队成员组。请参阅关于如何创建您的第一个资源组的文档。

- 选择您的硬件:您可以从各种硬件中进行选择,从免费 CPU 到 A100 GPU。在设置 Space 时,我们建议您选择免费的基础 CPU。一旦您需要,您可以切换到更好的付费硬件(请参阅此处的可用硬件和价格 此处)。
- 持久性存储:将持久性存储附加到 Space 非常重要,这样您创建的所有文件(代码、模型、数据)在 Space 暂停或重置时也会保存。您可以随时在设置中增加磁盘空间(如有必要)。所有持久性数据都存储在
/data
目录中 (文档)。 - 设置密码:Space 创建后,将需要密码才能登录 JupyterLab。此密码使用
JUPYTER_TOKEN
Space 密钥定义。如果您在此处未定义密码,则默认密码为“huggingface”。我们建议设置一个强密码。 - 开发模式:开发模式是企业 Hub 订阅者的功能,使您可以 SSH 进入任何 HF Space。激活此功能可通过 SSH 连接本地 VS Code,以便在 Space 的云硬件上进行远程开发(也可以稍后开启/关闭此功能)。请参阅此处的预览文档。
- 私有 Spaces:作为额外的安全层,我们建议将 Space 设置为私有,以便只有您的企业组织(和特定资源组)的成员才能看到它。

配置 JupyterLab Space 后,您可以单击 创建 Space
。Space 将被构建,几秒钟后您将看到 JupyterLab 登录屏幕。您现在可以使用之前定义的密码登录。

使用您的 JupyterLab Space
您现在可以在浏览器中使用自己的 JupyterLab Space 工作了!您可以在左侧的文件浏览器中创建自己的目录结构,其中包含 .ipynb 笔记本或任何其他文件和数据集。如果您已激活持久性存储,则所有文件都将永久存储在 Space 的默认 /data
目录中。

动态地在 CPU 和 GPU 之间切换
与 Google Colab 等服务类似,您可以动态更改 Space 正在运行的硬件。我们建议在升级或免费 CPU 上进行初始设置工作,例如数据清理、设置端点或测试 API。一旦您的代码设置完成,您只需单击 Space 右上角的 设置
,然后更改为各种硬件,这些硬件可能是更计算密集型推理或训练作业所需要的。当您更改硬件时,Space 将自行重启,所有环境变量都将丢失(就像 Google Colab 一样),几秒钟后您将在新硬件上获得新的干净环境。您存储和保存的文件(代码、数据等)当然也将在新硬件上可用。下图显示了撰写本文时(2024 年 6 月)的可用硬件,将来会进行更新。
在图像的左下方,您还可以看到 睡眠时间设置
,您可以在其中定义在不活动的情况下硬件要运行多长时间。这是优于 Google Colab 的主要优势。如果您想省钱,您可以使 Space 在不活动 15 分钟后进入睡眠状态,但如果您需要硬件在 48 小时的训练运行或更长时间内可用,您可以阻止 Space 进入睡眠状态,并让它运行任意时长。您也可以手动 暂停
Space,这样您将不再需要为 Space 硬件付费。

如果您向下滚动设置,您将看到其他选项,例如扩展存储、重置 Space 等。如果您在 Space 创建期间未设置密码,您也可以稍后在此处创建一个名为 JUPYTER_TOKEN
的密钥,这将替换默认的“huggingface”密码。
当您连续几天或几周积极使用 Space 时,文件可能会在存储缓存中累积。当您收到持久性存储已满的警告,并且您认为不应达到存储配额时,将 Space 恢复出厂设置以清空缓存可能会有所帮助。
自定义您的 JupyterLab Space
请记住,您的 JupyterLab Space 只是一个预配置的 Docker 容器,因此如果您熟悉 Docker,您也可以根据自己的需要对其进行自定义。例如,您可以转到 Space 的 文件
部分,并将新需求添加到 requirements.txt
文件,或者您可以在 Dockerfile
中将默认容器镜像更改为另一个镜像,例如,如果您需要预安装特定的 CUDA 和 PyTorch 版本。

开发模式:从本地 VS Code 在 HF Spaces 上开发
如果您不喜欢在浏览器中的 JupyterLab 中工作怎么办?进入 开发模式
。开发模式
使您可以从本地 IDE(如 VS Code)SSH 进入任何 Space 的硬件。HF Pro/企业版 订阅者可以在 Space 的设置中激活 开发模式
。
激活 开发模式
后,您将在 JupyterLab Space 窗口的左下方看到一个弹出窗口。要 SSH 进入本地 VS Code,您首先需要在本地安装 VS Code Remote - SSH 扩展,并将您的 SSH 密钥添加到您的 HF 个人资料。然后单击 使用 VS Code 连接
应该会打开您的本地 VS Code 窗口并建立与您的 Space 的远程连接。对于任何支持使用 SSH 进行远程开发的 IDE,都应该可以实现类似的过程。

通过 SSH 连接到您的 Space 时,您的默认目录将是一个空的 /app
目录。然后您需要更改为 /data
目录,其中存储了所有持久性文件(代码、数据、模型等)。/data
目录是唯一保证跨会话文件持久性的目录。如果您想修改底层 Docker 容器,可以在 HOME/user/app
目录中找到 Docker 容器的文件。
/data
目录中持久化的文件目前不会自动备份。因此,我们建议定期备份最重要的文件,以避免意外数据丢失。
现在开始编写代码!
就是这样,您现在可以在浏览器中运行 JupyterLab Space,动态地在一个或多个强大的 GPU 之间切换,并从本地 IDE 连接到硬件。
整个食谱都是在一个免费 CPU 的 JupyterLab Space 上编写的,我们邀请您在自己的 JupyterLab Space 中遵循企业 Hub 食谱的所有其他食谱。
< > 在 GitHub 上更新