【adapter-transformers】:Installation QuickStart(一、安装与快速启动)

news/2024/11/24 3:26:03/

【要求】:

adapter-transformers是Huggingface的transformers库的直接替代品。它目前支持Python 3.8+和PyTorch 1.12.1+。因此必须先安装PyTorch。

一、安装(使用pip)

pip install adapter-transformers

二、快速启动(使用训预练的适配器进行推理)

下面的例子展示了如何使用带有适配器的预训练的Transformer模型。我们的目标是预测给定句子的情感。

我们在这个例子中使用BERT,所以我们首先使用BertAdapterModel类从HuggingFace的模型中心加载一个预训练的BertTokenizer来编码输入句子和一个预训练的BERT -base uncase检查点:

import osimport torch
from transformers import BertTokenizer
from transformers.adapters import BertAdapterModel, AutoAdapterModel# Load pre-trained BERT tokenizer from HuggingFace
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')# An input sentence
sentence = "It's also, clearly, great fun."# Tokenize the input sentence and create a PyTorch input tensor
input_data = tokenizer(sentence, return_tensors="pt")# Load pre-trained BERT model from HuggingFace Hub
# The `BertAdapterModel` class is specifically designed for working with adapters
# It can be used with different prediction heads
model = BertAdapterModel.from_pretrained('bert-base-uncased')

加载模型后,我们现在添加一个预训练的任务适配器,它对AdapterHub中的任务很有用。

在这种情况下,对于情感分类,我们使用在SST-2数据集上训练的适配器。与适配器一起加载的任务预测头( task prediction head)为我们的句子提供了一个类标签:

# Load pre-trained task adapter from Adapter Hub
# This method call will also load a pre-trained classification head for the adapter task
adapter_name = model.load_adapter("sentiment/sst-2@ukp", config='pfeiffer')# Activate the adapter we just loaded, so that it is used in every forward pass
model.set_active_adapters(adapter_name)# Predict output tensor
outputs = model(**input_data)# Retrieve the predicted class label
predicted = torch.argmax(outputs[0]).item()
assert predicted == 1

为了保存我们预先训练的模型和适配器,我们可以像下面这样轻松地存储和重新加载它们:

# For the sake of this demonstration an example path for loading and storing is given below
example_path = os.path.join(os.getcwd(), "adapter-quickstart")# Save model
model.save_pretrained(example_path)
# Save adapter
model.save_adapter(example_path, adapter_name)# Load model, similar to HuggingFace's AutoModel class, 
# you can also use AutoAdapterModel instead of BertAdapterModel
model = AutoAdapterModel.from_pretrained(example_path)
model.load_adapter(example_path)

最后,如果我们已经完成了适配器的工作,我们可以通过停用和删除适配器来将基本Transformer恢复到其原始形式:

# Deactivate all adapters
model.set_active_adapters(None)
# Delete the added adapter
model.delete_adapter(adapter_name)

原文链接:Installation — adapter-transformers documentation (adapterhub.ml)


http://www.ppmy.cn/news/534437.html

相关文章

Vue - 最新网页 H5 分享到微信朋友圈 / 转发分享给朋友好友 / 分享到手机 QQ / 分享到 QQ 空间,Vue.js Nuxt.js 通用公众号页面解决方案(超级详细教程)

前言 如果您是 uniapp 项目(H5 网页),请访问 uniapp - 最新 H5 公众号网页分享到微信朋友圈 / 转发分享好友 这篇详细教程。 目前网上大部分教程都过时了(老版本、无效),并且存在 BUG与未进行代码封装乱的要死,移植到自己的项目非常困难。 本文将从 0-1 详细完成该功能,…

深入理解深度学习——BERT派生模型:跨语言模型XLM(Cross-lingual Language Model)

分类目录:《深入理解深度学习》总目录 BERT本应在语义理解上具有绝对优势,但其训练语料均为英语单语,受限于此,早期的BERT只在英语文本理解上有优势。随着全球化进程的加速,跨语言的预训练语言模型也具有非常重要的应用…

vue----计算属性和监听属性

1计算属性 # 1 计算属性是基于它们的依赖变量进行缓存的 # 2 计算属性只有在它的相关依赖变量发生改变时才会重新求值,否则不会变(函数只要页面变化,就会重新运算) # 3 计算属性就像Python中的property,可以把方法/函数…

油烟净化器两侧的金属网有什么用?

众所周知,目前餐饮用的油烟净化器多采用的是静电复合式油烟净化器,这种油烟净化器净化效率高,经济性也最好,是目前使用广泛的类型。 打开一台油烟净化器会发现,电场的两侧都会有一张金属网,这个金属网看起…

装修新家需要注意的问题

大家都知道装修是存在猫腻的,可问到如何预防就不知如何插手了,目前,不少装饰公司公司都设有质检部门,声称可以帮客户监管装修质量,但是这种“自我监督”的方式让很多人不屑。装修监工不能马虎,石家庄装饰网…

80后新手装修完全攻略(转载)

1. 如果家中会做饭频率很高的话,尽量放弃开放式厨房,会有油烟问题    2. 卫生间、厨房小水宝,热水来得快,使用时比较方便    3. 吸油烟机中式的比欧式的吸力更强,欧式的好看不中用。    4. 电源插座能多装尽量多装点&…

厨房空间如何安排,主要看你的厨房条件,应该尽可能因势利导

1,做饭有规定的流程,主要就是洗切炒盛,你的橱柜设计要按照这个流程来。最好将水池切菜空间与灶台设计在同一流程线上,呵呵,象流水线一样。 2,橱柜台面做多高谁来定? 不要轻信别人所说的所…

凤变冰入门 #2560

http://sanwen.net/a/xttwwpo.html 凤变冰入门 #2560 凤姐变冰冰,关键在凤姐,不在冰冰。 一)凤变冰 “凤姐变冰冰”这件事,关键是凤姐,不是冰冰。 凤姐占70%因素,冰冰占30% 因为买东西是甲方,卖…