language: zh
license: apache-2.0
Electra小型⚡ + SQuAD v2❓
基于Electra-small-discriminator模型,在SQuAD v2.0数据集上微调,用于问答下游任务。
下游任务细节(问答)- 模型🧠
ELECTRA是一种自监督语言表示学习的新方法。它可以用相对较少的计算资源预训练Transformer网络。ELECTRA模型通过区分"真实"输入标记与另一神经网络生成的"虚假"输入标记进行训练,类似于GAN的判别器。在小规模场景下,即使仅用单GPU训练,ELECTRA也能取得强劲效果;大规模场景下,它在SQuAD 2.0数据集上达到了最先进水平。
下游任务细节(问答)- 数据集📚
SQuAD2.0将SQuAD1.1中的10万个问题与超过5万个由众包人员对抗性编写的不可回答问题相结合,这些问题与可回答的问题相似。要在SQuAD2.0上表现良好,系统不仅需要在可能时回答问题,还需判断段落是否支持答案,并在无答案时保持克制。
模型训练🏋️
该模型在Tesla P100 GPU和25GB内存环境下通过以下命令训练:
python transformers/examples/question-answering/run_squad.py \
--model_type electra \
--model_name_or_path 'google/electra-small-discriminator' \
--do_eval \
--do_train \
--do_lower_case \
--train_file '/content/dataset/train-v2.0.json' \
--predict_file '/content/dataset/dev-v2.0.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 \
--version_2_with_negative
测试集结果🧾
指标 |
值 |
EM |
69.71 |
F1 |
73.44 |
大小 |
50 MB |
{
'exact': 69.71279373368147,
'f1': 73.4439546123672,
'total': 11873,
'HasAns_exact': 69.92240215924427,
'HasAns_f1': 77.39542393937836,
'HasAns_total': 5928,
'NoAns_exact': 69.50378469301934,
'NoAns_f1': 69.50378469301934,
'NoAns_total': 5945,
'best_exact': 69.71279373368147,
'best_exact_thresh': 0.0,
'best_f1': 73.44395461236732,
'best_f1_thresh': 0.0
}
模型应用🚀
使用pipelines快速调用:
from transformers import pipeline
QnA_pipeline = pipeline('question-answering', model='mrm8488/electra-base-finetuned-squadv2')
QnA_pipeline({
'context': '科学家在中国发现了一种可能引发大流行的新型流感病毒株。',
'question': '中国科学家发现了什么?'
})
{'answer': '新型流感病毒株', 'end': 19, 'score': 0.8650811568752914, 'start': 0}
由Manuel Romero/@mrm8488创建 | 领英
西班牙制造 ❤