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