language: zh
Electra基础模型 ⚡ + SQuAD v1 问答数据集 ❓
基于Electra-base-discriminator模型,在SQuAD v1.1数据集上微调,用于问答下游任务。
下游任务(问答)详情 - 模型 🧠
ELECTRA是一种新型的自监督语言表示学习方法。它可以用较少的计算资源预训练Transformer网络。ELECTRA模型通过区分"真实"输入标记与另一个神经网络生成的"虚假"输入标记进行训练,类似于GAN的判别器。在小规模情况下,ELECTRA即使仅用单GPU训练也能取得优异效果;在大规模场景下,该模型在SQuAD 2.0数据集上达到了最先进水平。
下游任务(问答)详情 - 数据集 📚
斯坦福问答数据集(SQuAD)是一个阅读理解数据集,包含众包工作者基于维基百科文章提出的问题,每个问题的答案是对应阅读段落中的文本片段(或不可回答)。SQuAD v1.1包含500+篇文章中的**10万+**问答对。
模型训练 🏋️
使用Tesla P100 GPU和25GB内存进行训练,命令如下:
python transformers/examples/question-answering/run_squad.py \
--model_type electra \
--model_name_or_path 'google/electra-base-discriminator' \
--do_eval \
--do_train \
--do_lower_case \
--train_file '/content/dataset/train-v1.1.json' \
--predict_file '/content/dataset/dev-v1.1.json' \
--per_gpu_train_batch_size 16 \
--learning_rate 3e-5 \
--num_train_epochs 10 \
--max_seq_length 384 \
--doc_stride 128 \
--output_dir '/content/output' \
--overwrite_output_dir \
--save_steps 1000
测试集结果 🧾
指标 |
值 |
EM |
83.03 |
F1 |
90.77 |
模型大小 |
+400MB |
对于如此"小巧"的模型,这些指标非常出色!
{
'exact': 83.03689687795648,
'f1': 90.77486052446231,
'total': 10570,
'HasAns_exact': 83.03689687795648,
'HasAns_f1': 90.77486052446231,
'HasAns_total': 10570,
'best_exact': 83.03689687795648,
'best_exact_thresh': 0.0,
'best_f1': 90.77486052446231,
'best_f1_thresh': 0.0
}
模型实战演示 🚀
使用pipelines快速调用:
from transformers import pipeline
QnA_pipeline = pipeline('question-answering', model='mrm8488/electra-base-finetuned-squadv1')
QnA_pipeline({
'context': '中国科学家发现了一种可能引发全球大流行的新型流感病毒株',
'question': '中国科学家发现了什么?'
})
{'answer': '新型流感病毒株', 'end': 19, 'score': 0.9995211430099182, 'start': 0}
由Manuel Romero/@mrm8488创建 | 领英主页
西班牙制作 ❤