GOOGLE ADS

martes, 26 de abril de 2022

Cómo utilizar el modelo DeBERTa de He et al. (2022) en Spyder?

Recientemente analicé con éxito datos basados ​​en texto usando transformadores de oraciones basados ​​en el modelo BERT. Inspirado en el libro de Kulkarni et al. (2022), mi código se veía así:

# 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)

Me gustaría hacer lo mismo usando el modelo DeBERTa pero no puedo hacerlo funcionar. Logré cargar el modelo, pero ¿cómo aplicarlo?

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)

La última línea no se ejecuta, el mensaje de error es:

AttributeError: el objeto 'str' no tiene atributo 'tamaño'

¿Algún usuario experimentado de DeBERTa por ahí?

gracias pat


Solución del problema

Bienvenido a SO;) Cuando llamas encode()al método, sería tokenizela entrada, luego la codificaría en los tensores que espera un modelo de transformador y luego la pasaría a través de la arquitectura del modelo. Cuando lo estés usando transformersdebes hacer los pasos manualmente.

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)

Por último, debe saber con qué tipo de salida se supone que debe trabajar.

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...