El uso de la biblioteca Huggingface genera un error: KeyError: ‘logits’
Soy nuevo en la biblioteca huggingface y estoy tratando de ejecutar un modelo para realizar una tarea de lenguaje enmascarado (“fill-mask task”):
from transformers import BertTokenizer, BertForMaskedLM
import torch
from transformers import pipeline, AutoTokenizer, AutoModel
# Inicializar el pipeline de MLM
tokenizer = AutoTokenizer.from_pretrained("emilyalsentzer/Bio_ClinicalBERT")
model = AutoModel.from_pretrained("emilyalsentzer/Bio_ClinicalBERT")
print(len(tokenizer.vocab))
Pero cuando intento obtener las probabilidades sobre los tokens, obtengo un error:
classifier = pipeline("fill-mask", model=model, tokenizer=tokenizer)
results = classifier("Paris is the [MASK] of France.")
KeyError: 'logits'
También intenté lo siguiente desde un tutorial diferente y obtuve el mismo error:
mlm = pipeline('fill-mask', model=model, tokenizer=tokenizer)
# Obtener el token enmascarado
mask = mlm.tokenizer.mask_token
# Obtener el resultado para una frase enmascarada en particular
phrase = f'Paris is the [MASK] of France.'
result = mlm(phrase, top_k=10000)
# Imprimir el resultado
print(result)
davy.ai
El error ‘KeyError: ‘logits” sugiere que la función de tubería no puede encontrar la clave ‘logits’ en el diccionario de salida. Esto puede ser debido a la falta de coincidencia entre el tokenizador utilizado para el preentrenamiento del modelo y el que se está utilizando en la tubería.
Para resolver este problema, puedes intentar:
Si las soluciones anteriores no funcionan, puedes intentar especificar el formato de salida de la tubería. Por ejemplo:
Esto devolverá una lista de diccionarios que contienen el token predicho, su puntuación y su ID.
La biblioteca Huggingface Transformers está extensamente documentada, y para obtener más ayuda, puedes visitar la documentación oficial o pedir apoyo a la comunidad.