模型:
mrm8488/t5-base-finetuned-squadv2
在 Q&A 下游任务中,将 Google's T5 进行了 SQuAD v2 的微调。
T5 模型是由 Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、Peter J. Liu 在 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer 中提出的。摘要如下:
迁移学习是自然语言处理(NLP)中一种强大的技术,它首先在数据丰富的任务上进行预训练,然后在下游任务上进行微调。迁移学习的有效性产生了各种各样的方法、方法论和实践。在本文中,我们通过引入一个统一的框架将每个语言问题转化为文本到文本格式,来探索NLP的迁移学习技术的发展。我们的系统研究比较了预训练目标、架构、无标签数据集、迁移方法和其他因素在几十个语言理解任务上的表现。通过结合我们的探索结果、规模化和我们的新的“巨大清洁爬取语料库”的优势,我们在许多覆盖摘要、问答、文本分类等方面的基准测试中取得了最先进的结果。为了便于未来在NLP的迁移学习方面的工作,我们发布了我们的数据集、预训练模型和代码。
数据集 ID:squad_v2,来自 Huggingface/NLP
Dataset | Split | # samples |
---|---|---|
squad_v2 | train | 130319 |
squad_v2 | valid | 11873 |
如何从 nlp 加载它
train_dataset = nlp.load_dataset('squad_v2', split=nlp.Split.TRAIN) valid_dataset = nlp.load_dataset('squad_v2', split=nlp.Split.VALIDATION)
在 NLP Viewer 中了解更多关于此数据集和其他数据集的信息
训练脚本是 this one 的稍微修改版本
Metric | # Value |
---|---|
EM | 77.64 |
F1 | 81.32 |
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-squadv2") model = AutoModelForSeq2SeqLM.from_pretrained("mrm8488/t5-base-finetuned-squadv2") def get_answer(question, context): input_text = "question: %s context: %s" % (question, context) features = tokenizer([input_text], return_tensors='pt') output = model.generate(input_ids=features['input_ids'], attention_mask=features['attention_mask']) return tokenizer.decode(output[0]) context = "Manuel have created RuPERTa-base with the support of HF-Transformers and Google" question = "Who has supported Manuel?" get_answer(question, context) # output: 'HF-Transformers and Google'
由 Manuel Romero/@mrm8488 | LinkedIn 创建
西班牙制造,用 ♥ 制作