HuggingfaceNLP笔记4.1Hugging Face Hub

Hugging Face Hub

Hugging Face Hub——我们的主要网站——是一个集中的平台,让任何人都可以发现、使用和贡献最先进的模型和数据集。它托管了各种各样的模型,其中有超过10,000个是公开可用的。本章我们将关注模型,第五章将介绍数据集。

Hub中的模型不仅限于🤗 Transformers或甚至NLP。有来自FlairAllenNLP的NLP模型,Asteroidpyannote的语音模型,以及timm的视觉模型等。

这些模型作为Git存储库托管,支持版本控制和可复现性。在Hub上分享模型意味着将其开放给社区,让任何想要轻松使用的人能够访问,从而消除他们自己训练模型的需求,简化分享和使用。

此外,将模型分享到Hub上会自动部署该模型的托管推理API。社区中的任何人都可以在模型页面上直接测试它,使用自定义输入和适当的控件。

最棒的是,使用Hub上的任何公开模型是完全免费的!如果您希望私密分享模型,也有付费计划可供选择。了解更多

下面的视频展示了如何浏览Hub。

要跟随这部分内容,需要拥有huggingface.co账户,因为我们将创建和管理Hub上的存储库:创建账户

Using pretrained models

模型库使得选择合适的模型变得简单,只需几行代码即可在任何下游库中使用它。让我们看看如何实际使用这些模型,并如何向社区贡献。

假设我们正在寻找一个基于法语的模型,可以进行词填空。
在这里插入图片描述

我们选择camembert-base检查点进行尝试。标识符camembert-base就足够开始使用了!如您在前几章中所见,我们可以使用pipeline()函数来实例化它:

from transformers import pipeline

camembert_fill_mask = pipeline("fill-mask", model="camembert-base")
results = camembert_fill_mask("Le camembert est <mask> :)")
[
  {'sequence': 'Le camembert est délicieux :)', 'score': 0.49091005325317383, 'token': 7200, 'token_str': 'délicieux'}, 
  {'sequence': 'Le camembert est excellent :)', 'score': 0.1055697426199913, 'token': 2183, 'token_str': 'excellent'}, 
  {'sequence': 'Le camembert est succulent :)', 'score': 0.03453313186764717, 'token': 26202, 'token_str': 'succulent'}, 
  {'sequence': 'Le camembert est meilleur :)', 'score': 0.0330314114689827, 'token': 528, 'token_str': 'meilleur'}, 
  {'sequence': 'Le camembert est parfait :)', 'score': 0.03007650189101696, 'token': 1654, 'token_str': 'parfait'}
]

如您所见,使用管道加载模型非常简单。需要注意的是,选择的检查点必须适合它将要执行的任务。例如,这里我们在fill-mask管道中加载camembert-base检查点,这是完全正确的。但如果我们在text-classification管道中加载这个检查点,结果可能没有意义,因为camembert-base的头并不适合这个任务!我们建议在Hugging Face Hub界面中使用任务选择器来选择合适的检查点:
在这里插入图片描述

您也可以直接使用模型架构实例化检查点:

from transformers import CamembertTokenizer, CamembertForMaskedLM

tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = CamembertForMaskedLM.from_pretrained("camembert-base")

然而,我们建议使用Auto*类,因为它们设计上是架构无关的。以下是使用Auto*类的示例,这样可以更方便地切换检查点:

from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("camembert-base")
model = AutoModelForMaskedLM.from_pretrained("camembert-base")

在使用预训练模型时,请务必检查其训练方式、使用的数据集、限制以及偏见。所有这些信息都应该在模型卡中提供。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NJU_AI_NB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值