Hugging Face Hub

! [ -e /content ] && pip install -Uqq fastai  # 在Colab上升级fastai

与Hugging Face Hub的集成,以分享和加载模型

为什么要分享至 Hugging Face Hub

Hub是一个中央平台,任何人都可以在这里分享和探索模型、数据集和机器学习演示。它旨在建立最广泛的开源模型、数据集和演示的集合。

将内容分享至Hub可以提高fastai Learner的影响力,使其可供其他人下载和探索。

任何人都可以通过在huggingface.co/models网页上筛选fastai库,访问Hub中的所有fastai模型,如下图所示。

hf_hub_fastai

Hub内置了基于gits的版本控制(用于大型文件的git-lfs)、讨论、拉取请求模型卡片,以便于发现和重现。有关如何导航Hub的更多信息,请参见本介绍

安装

安装 huggingface_hub。此外,集成功能需要以下软件包:

  • toml,
  • fastai>=2.4,
  • fastcore>=1.3.27

您可以手动安装这些软件包,或在安装 huggingface_hub 时指定 ["fastai"],您的环境将准备就绪:

pip install huggingface_hub["fastai"]

要在 Hub 中共享模型,您需要拥有一个用户。请在 Hugging Face 网站 上创建它。

Learner 分享到中心

首先,登录到 Hugging Face Hub。你需要在你的 账户设置中创建一个 write 令牌。然后有三种登录选项:

  1. 在终端中输入 huggingface-cli login 并输入你的令牌。

  2. 如果在 Python 笔记本中,你可以使用 notebook_login

from huggingface_hub import notebook_login

notebook_login()
  1. 使用 push_to_hub_fastai 函数的 token 参数。

使用您想要上传的 Learner 和 Hubb 的存储库 ID(格式为 “namespace/repo_name”),调用 push_to_hub_fastai。命名空间可以是您有写入权限的个人帐户或组织(例如,‘fastai/stanza-de’)。有关更多详细信息,请参阅 Hub Client 文档

from huggingface_hub import push_to_hub_fastai

# repo_id = "YOUR_USERNAME/YOUR_LEARNER_NAME"
repo_id = "espejelomar/identify-my-cat"

push_to_hub_fastai(learner=learn, repo_id=repo_id)

Learner 现在已在名为 espejelomar/identify-my-cat 的 Hub 中。自动生成的模型卡已创建,其中包含一些链接和后续步骤。当将 fastai Learner(或任何其他模型)上传到 Hub 时,编辑其模型卡(如下图所示)以便他人更好地理解您的工作是很有帮助的(请参阅 Hugging Face 文档)。

hf_model_card

push_to_hub_fastai 还有其他可能感兴趣的参数;请参考 Hub Client 文档。该模型是一个 Git 存储库,具有所有相关优势:版本控制、提交、分支、讨论和拉取请求

从 Hub 加载学习者

加载我们刚刚在 Hub 中分享的 Learner

from huggingface_hub import from_pretrained_fastai

# repo_id = "你的用户名/你的学习者名称"
repo_id = "espejelomar/identify-my-cat"

learner = from_pretrained_fastai(repo_id)

Hub 客户端文档 包含有关 from_pretrained_fastai 的更多详细信息。