He 等人如何使用 DeBERTa 模型。 (2022) 在 Spyder 上?

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 模型做同样的事情,但无法做到 运行ning。我成功加载了模型,但如何应用它?

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 用户?

谢谢 帕特

欢迎来到 ;) 当您调用 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)

最后,您必须知道应该使用哪种输出。