🚀 BART-LARGE在SQuADv1上微調的模型
這是一個在SQuADv1數據集上針對問答任務微調的bart-large模型,可有效用於問答場景,為自然語言處理中的問答需求提供解決方案。
🚀 快速開始
from transformers import BartTokenizer, BartForQuestionAnswering
import torch
tokenizer = BartTokenizer.from_pretrained('valhalla/bart-large-finetuned-squadv1')
model = BartForQuestionAnswering.from_pretrained('valhalla/bart-large-finetuned-squadv1')
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'
✨ 主要特性
- BART是一個適用於自然語言生成(NLG)和自然語言理解(NLU)任務的序列到序列(seq2seq)模型。
- 可處理長達1024個標記的序列。
- 在問答任務中,將完整文檔輸入編碼器和解碼器,並使用解碼器的頂層隱藏狀態作為每個單詞的表示來進行標記分類。
📚 詳細文檔
模型詳情
BART在論文BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension中被提出。為了將BART用於問答任務,我們將完整文檔輸入編碼器和解碼器,並使用解碼器的頂層隱藏狀態作為每個單詞的表示,該表示用於對標記進行分類。如論文所述,bart-large在SQuAD上的表現與ROBERTa相當。
屬性 |
詳情 |
編碼器層數 |
12 |
解碼器層數 |
12 |
隱藏層大小 |
4096 |
注意力頭數量 |
16 |
磁盤佔用大小 |
1.63GB |
模型訓練
該模型在Google Colab的v100 GPU上進行訓練。你可以通過以下鏈接找到微調的Colab筆記本:

結果
實際結果比論文中給出的略差。論文中作者提到bart-large達到了88.8的精確匹配率(EM)和94.6的F1分數。
指標 |
值 |
精確匹配率(EM) |
86.8022 |
F1分數 |
92.7342 |
由Suraj Patil用心創建
