模型:
mrm8488/spanbert-large-finetuned-squadv2
SpanBERT 由 Facebook Research 创建,并在 SQuAD 2.0 上进行了 Q&A 下游任务( by them )的精调。
SpanBERT: Improving Pre-training by Representing and Predicting Spans
SQuAD2.0 组合了 SQuAD1.1 中的 100,000 个问题,以及由众包工作者制作的 50,000 个无法回答的问题,这些问题与可回答的问题相似。为了在 SQuAD2.0 上表现良好,系统不仅需要在可能时回答问题,还需要确定段落中是否支持回答,并避免回答无法回答的问题。
Dataset | Split | # samples |
---|---|---|
SQuAD2.0 | train | 130k |
SQuAD2.0 | eval | 12.3k |
您可以获取精调脚本 here
python code/run_squad.py \ --do_train \ --do_eval \ --model spanbert-large-cased \ --train_file train-v2.0.json \ --dev_file dev-v2.0.json \ --train_batch_size 32 \ --eval_batch_size 32 \ --learning_rate 2e-5 \ --num_train_epochs 4 \ --max_seq_length 512 \ --doc_stride 128 \ --eval_metric best_f1 \ --output_dir squad2_output \ --version_2_with_negative \ --fp16
SQuAD 1.1 | SQuAD 2.0 | Coref | TACRED | |
---|---|---|---|---|
F1 | F1 | avg. F1 | F1 | |
BERT (base) | 88.5* | 76.5* | 73.1 | 67.7 |
SpanBERT (base) | 1239321 | 12310321 | 77.4 | 12311321 |
BERT (large) | 91.3 | 83.3 | 77.1 | 66.4 |
SpanBERT (large) | 12312321 | 88.7 (this) | 79.6 | 12313321 |
注意:标有 * 的数字是在开发集上评估的,因为这些模型没有提交到官方 SQuAD 排行榜。所有其他数字都是测试结果。
使用 pipelines 进行快速应用:
from transformers import pipeline qa_pipeline = pipeline( "question-answering", model="mrm8488/spanbert-large-finetuned-squadv2", tokenizer="SpanBERT/spanbert-large-cased" ) qa_pipeline({ 'context': "Manuel Romero has been working very hard in the repository hugginface/transformers lately", 'question': "How has been working Manuel Romero lately?" }) # Output: {'answer': 'very hard', 'end': 40, 'score': 0.9052708846768347, 'start': 31}
在西班牙制作 ❤