基于SQuAD v2微调的BERT-Medium模型
谷歌研究院开发的BERT-Medium模型,在SQuAD 2.0数据集上进行了问答任务的微调。
模型大小(训练后):157.46 MB
关于BERT-Small及其"家族"的详细信息(来自官方文档)
2020年3月11日发布
该模型是24个小型BERT模型(仅限英语,无大小写区分,采用WordPiece掩码训练)系列的一部分,相关论文参见《阅读广泛的学生学得更好:论预训练紧凑模型的重要性》。
这些小型BERT模型专为计算资源受限的环境设计。它们可以采用与原始BERT模型相同的方式进行微调。然而,在知识蒸馏的背景下效果最佳,即由更大更准确的教师模型生成微调标签。
下游任务(问答)详情 - 数据集
SQuAD2.0将SQuAD1.1中的10万个问题与超过5万个由众包人员编写的不可回答问题相结合,这些问题被设计成与可回答问题相似。要在SQuAD2.0上表现良好,系统不仅需要在可能时回答问题,还要判断段落是否不支持任何答案并拒绝回答。
数据集 |
分割 |
样本数 |
SQuAD2.0 |
训练集 |
130k |
SQuAD2.0 |
评估集 |
12.3k |
模型训练
该模型在Tesla P100 GPU和25GB内存环境下训练。微调脚本可在此处找到。
结果:
训练脚本中包含的基准测试原始指标:
{
"exact": 65.95637159942727,
"f1": 70.11632254245896,
"total": 11873,
"HasAns_exact": 67.79689608636977,
"HasAns_f1": 76.12872765631123,
"HasAns_total": 5928,
"NoAns_exact": 64.12111017661901,
"NoAns_f1": 64.12111017661901,
"NoAns_total": 5945,
"best_exact": 65.96479407058031,
"best_exact_thresh": 0.0,
"best_f1": 70.12474501361196,
"best_f1_thresh": 0.0
}
模型对比:
模型实战
使用pipelines快速调用:
from transformers import pipeline
qa_pipeline = pipeline(
"question-answering",
model="mrm8488/bert-small-finetuned-squadv2",
tokenizer="mrm8488/bert-small-finetuned-squadv2"
)
qa_pipeline({
'context': "Manuel Romero最近一直在hugginface/transformers代码库中努力工作",
'question': "最近谁在hugginface/transformers项目中辛勤工作?"
})
{
"answer": "Manuel Romero",
"end": 13,
"score": 0.9939319924374637,
"start": 0
}
没错!就是这么简单 🎉 再试一个例子
qa_pipeline({
'context': "Manuel Romero最近一直在远程为hugginface/transformers代码库工作",
'question': "Manuel Romero是如何工作的?"
})
{ "answer": "远程", "end": 39, "score": 0.3612058272768017, "start": 31 }
运行成功!! 🎉 🎉 🎉
由Manuel Romero/@mrm8488创建 | LinkedIn
西班牙制造 ❤️