He et al. 如何使用 DeBERTa 模型。 (2022 年)关于 Spyder?
nlp 538
原文标题 :How to use the DeBERTa model by He et al. (2022) on Spyder?
我最近使用基于 BERT 模型的句子转换器成功地分析了基于文本的数据。受 Kulkarni 等人的书的启发。 (2022),我的代码如下所示:
# Import SentenceTransformer
from sentence_transformers import SentenceTransformer
# use paraphrase-MiniLM-L12-v2 pre trained model
sbert_model = SentenceTransformer('paraphrase-MiniLM-L12-v2')
# My text
x='The cat cought the mouse'
# get embeddings for each question
sentence_embeddings_BERT= sbert_model.encode(x)
我想使用 DeBERTa 模型做同样的事情,但无法让它运行。我设法加载模型,但如何应用它?
import transformers
from transformers import DebertaTokenizer, AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("microsoft/deberta-v3-base")
model = AutoModel.from_pretrained("microsoft/deberta-v3-base")
sentence_embeddings_deBERTa= model(x)
最后一行没有运行,错误信息是:
AttributeError:“str”对象没有属性“size”
有经验丰富的 DeBERTa 用户吗?
谢谢帕特
回复
我来回复-
meti 评论
该回答已被采纳!
欢迎来到 SO ;)当您调用
encode()
方法时,它会tokenize
输入然后将其编码为转换器模型期望的张量,然后将其传递给模型架构。当您使用transformers
您必须手动执行这些步骤。from transformers import DebertaTokenizer, DebertaModel import torch # downloading the models tokenizer = DebertaTokenizer.from_pretrained("microsoft/deberta-base") model = DebertaModel.from_pretrained("microsoft/deberta-base") # tokenizing the input text and converting it into pytorch tensors inputs = tokenizer(["The cat cought the mouse", "This is the second sentence"], return_tensors="pt", padding=True) # pass through the model outputs = model(**inputs) print(outputs.last_hidden_state.shape)
最后,你必须知道你应该使用什么样的输出。
2年前