/ Модель

Характеристики

Контекст
1 024 токена
Параметры
253 млн
Архитектура
bart · dense
Опубликована
2 мар 2022

bart-squadv2

Ответы на вопросыТекст → текст

BART-Large, дообученная на SQuAD v2 модель для извлечения ответов на вопросы из предоставленного текста.

111скачиваний за 30 дней1лайквеса обновлены21 мар 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

aware-ai/bart-squadv2 — модель BART-Large, дообученная A-ware UG на датасете SQuAD v2 для ответов на вопросы по предоставленному тексту. Она принимает вопрос и документ, кодирует контекст и предсказывает начальный и конечный токены ответа; архитектура состоит из энкодера и декодера BART с 12 слоями в каждом. В метаданных указано 252,8 млн параметров, а заявленная длина контекста — до 1024 токенов.

Модель подходит для извлечения ответа из текста, когда нужная информация содержится в переданном контексте; обучение проводилось два эпохи с использованием Simple Transformers. Репозиторий содержит веса PyTorch и Safetensors. В README не указана лицензия. Модель обучена на SQuAD v2; качество для других языков, предметных областей и форматов вопросов не описано.

Сценарии применения

  • поиск ответа на вопрос в статье или документе
  • извлечение фактов из переданного контекста
  • ответы на вопросы по тексту без генерации свободного ответа

Ограничения

Обучение описано для SQuAD v2, поэтому качество на других языках и предметных областях не подтверждено. Контекст ограничен 1024 токенами; лицензия в карточке не указана.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

BART-LARGE finetuned on SQuADv2

This is bart-large model finetuned on SQuADv2 dataset for question answering task

Model details

BART was propsed in the paper BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension. BART is a seq2seq model intended for both NLG and NLU tasks.

To use BART for question answering tasks, we feed the complete document into the encoder and decoder, and use the top hidden state of the decoder as a representation for each word. This representation is used to classify the token. As given in the paper bart-large achives comparable to ROBERTa on SQuAD. Another notable thing about BART is that it can handle sequences with upto 1024 tokens.

Param#Value
encoder layers12
decoder layers12
hidden size4096
num attetion heads16
on disk size1.63GB

Model training

This model was trained with following parameters using simpletransformers wrapper:

train_args = {
    'learning_rate': 1e-5,
    'max_seq_length': 512,
    'doc_stride': 512,
    'overwrite_output_dir': True,
    'reprocess_input_data': False,
    'train_batch_size': 8,
    'num_train_epochs': 2,
    'gradient_accumulation_steps': 2,
    'no_cache': True,
    'use_cached_eval_features': False,
    'save_model_every_epoch': False,
    'output_dir': "bart-squadv2",
    'eval_batch_size': 32,
    'fp16_opt_level': 'O2',
    }

You can even train your own model using this colab notebook

Results

{"correct": 6832, "similar": 4409, "incorrect": 632, "eval_loss": -14.950117511952177}

Model in Action 🚀

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' 

Created with ❤️ by A-ware UG Github icon

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · question-answering

Можно запустить

Подбираем GPU…

Класс архитектуры
BartForQuestionAnswering
Ревизия весов
859c80a

0 моделей