Hugging Face Hub

与 Hugging Face Hub 集成,用于分享和加载模型

为何分享到 Hugging Face Hub

Hub 是一个中心平台,任何人都可以分享和探索模型、数据集以及 ML 演示。它旨在构建最全面的开源模型、数据集和演示集合。

分享到 Hub 可以扩大 fastai Learner 的影响力,使其可供他人下载和探索。

任何人都可以在 Hub 中访问所有 fastai 模型,方法是在 huggingface.co/models 网页上按 fastai 库进行筛选,如下面图片所示。

hf_hub_fastai

Hub 内建了基于 git 的版本控制(git-lfs,用于大文件)、讨论、拉取请求 (pull requests)模型卡,以提高可发现性和可复现性。有关如何在 Hub 中导航的更多信息,请参阅此介绍

安装

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

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

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

pip install huggingface_hub["fastai"]

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

分享一个 Learner 到 Hub

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

  1. 在终端中输入 huggingface-cli login 并输入您的 token。

  2. 如果在 Python notebook 中,您可以使用 notebook_login

from huggingface_hub import notebook_login

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

输入 push_to_hub_fastai,并传入您想要上传的 Learner 以及 Hub 的仓库 id,格式为 “namespace/repo_name”。namespace 可以是个人账户,也可以是您拥有写权限的组织(例如,“fastai/stanza-de”)。更多详情,请参阅Hub 客户端文档

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 现已位于 Hub 中,仓库名为 espejelomar/identify-my-cat。自动创建了一个模型卡,其中包含一些链接和下一步操作。将 fastai Learner(或任何其他模型)上传到 Hub 时,最好编辑其模型卡(如下图所示),以便其他人更好地理解您的工作(请参阅Hugging Face 文档)。

hf_model_card

push_to_hub_fastai 还有其他一些您可能感兴趣的参数;请参阅Hub 客户端文档。该模型是一个Git 仓库,具备由此带来的一切优势:版本控制、提交 (commits)、分支 (branches)、讨论和拉取请求 (pull requests)

从 Hub 加载一个 Learner

从 Hub 加载我们刚刚分享的 Learner

from huggingface_hub import from_pretrained_fastai

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

learner = from_pretrained_fastai(repo_id)

Hub 客户端文档包含了关于 from_pretrained_fastai 的更多详情。