aware-ai/bart-squadv2
BART-LARGE ajustado en el conjunto de datos SQuADv2 para la tarea de respuesta a preguntas. El modelo BART fue propuesto en el artículo BART: Preentrenamiento de Denormalización de Secuencia a Secuencia para Generación de Lenguaje Natural, Traducción y Comprensión. BART es un modelo seq2seq destinado tanto para tareas de NLG como de NLU. Para usar BART en tareas de respuesta a preguntas, alimentamos el documento completo al codificador y decodificador, y utilizamos el estado oculto superior del decodificador como una representación para cada palabra. Esta representación se usa para clasificar el token. Según el artículo, bart-large logra resultados comparables a ROBERTa en SQuAD. Otra característica notable de BART es que puede manejar secuencias de hasta 1024 tokens.
Como usar
from transformers import BartTokenizer, BartForQuestionAnswering
import torch
tokenizer = BartTokenizer.from_pretrained('a-ware/bart-squadv2')
model = BartForQuestionAnswering.from_pretrained('a-ware/bart-squadv2')
question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
encoding = tokenizer(question, text, return_tensors='pt')
input_ids = encoding['input_ids']
attention_mask = encoding['attention_mask']
start_scores, end_scores = model(input_ids, attention_mask=attention_mask, output_attentions=False)[:2]
all_tokens = tokenizer.convert_ids_to_tokens(input_ids[0])
answer = ' '.join(all_tokens[torch.argmax(start_scores) : torch.argmax(end_scores)+1])
answer = tokenizer.convert_tokens_to_ids(answer.split())
answer = tokenizer.decode(answer)
# answer => 'a nice puppet'
Funcionalidades
- 12 capas de codificador
- 12 capas de decodificador
- Tamaño oculto de 4096
- 16 cabezales de atención
- Tamaño en disco de 1.63GB
Casos de uso
- Responder preguntas a partir de un documento dado
- Clasificar tokens para tareas de procesamiento de lenguaje natural
- Manejo de secuencias largas de hasta 1024 tokens