mrm8488/longformer-base-4096-finetuned-squadv2
mrm8488
Pregunta y respuesta
Longformer-base-4096 es un modelo basado en transformadores para documentos largos. El modelo longformer-base-4096 se inicia desde el punto de control de RoBERTa y se entrena previamente para el enmascaramiento de lenguaje en documentos largos. Este modelo soporta secuencias de hasta 4096 tokens de longitud. Longformer utiliza una combinación de atención de ventana deslizante (local) y atención global. La atención global se configura por el usuario en función de la tarea para permitir que el modelo aprenda representaciones específicas de la tarea. En este caso, el modelo se ha ajustado para la tarea de Preguntas y Respuestas utilizando el conjunto de datos SQuAD v2.
Como usar
import torch
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
ckpt = "mrm8488/longformer-base-4096-finetuned-squadv2"
tokenizer = AutoTokenizer.from_pretrained(ckpt)
model = AutoModelForQuestionAnswering.from_pretrained(ckpt)
text = "Huggingface ha democratizado el PLN. Muchas gracias a Huggingface por esto."
question = "¿Qué ha hecho Huggingface?"
encoding = tokenizer(question, text, return_tensors="pt")
input_ids = encoding["input_ids"]
# La atención predeterminada es local en todas partes
# El método forward establecerá automáticamente la atención global en los tokens de la pregunta
attention_mask = encoding["attention_mask"]
start_scores, end_scores = model(input_ids, attention_mask=attention_mask)
all_tokens = tokenizer.convert_ids_to_tokens(input_ids[0].tolist())
answer_tokens = all_tokens[torch.argmax(start_scores):torch.argmax(end_scores)+1]
answer = tokenizer.decode(tokenizer.convert_tokens_to_ids(answer_tokens))
# Salida => "democratizado el PLN"
from transformers import AutoTokenizer, AutoModelForQuestionAnswering, pipeline
ckpt = "mrm8488/longformer-base-4096-finetuned-squadv2"
tokenizer = AutoTokenizer.from_pretrained(ckpt)
model = AutoModelForQuestionAnswering.from_pretrained(ckpt)
qa = pipeline("question-answering", model=model, tokenizer=tokenizer)
text = "Huggingface ha democratizado el PLN. Muchas gracias a Huggingface por esto."
question = "¿Qué ha hecho Huggingface?"
qa({"question": question, "context": text})
Para cargar el conjunto de datos desde datasets:
!pip install datasets
from datasets import load_dataset
dataset = load_dataset('squad_v2')
Funcionalidades
- Modelo basado en transformadores para textos largos
- Combinación de atención de ventana deslizante (local) y atención global
- Soporte para secuencias de longitud hasta 4096 tokens
- Entrenado previamente en el enmascaramiento de lenguaje para documentos largos
- Ajustado para la tarea de Preguntas y Respuestas utilizando el conjunto de datos SQuAD v2
Casos de uso
- Generación de respuestas precisas a preguntas hechas en lenguaje natural
- Procesamiento de documentos largos en aplicaciones de Preguntas y Respuestas
- Análisis de textos extensos con necesidad de atención global y local