项目介绍:t5-base-finetuned-question-generation-ap
项目概述
t5-base-finetuned-question-generation-ap 是一个基于 Google 的 T5 模型,并经过 SQuAD 数据集微调的项目,旨在生成问题。该项目通过在上下文语境前添加“答案”,从而在自然语言处理中生成问题。这一技术能够帮助开发者更高效地自动构建问答系统。
T5 模型介绍
T5 模型,是由 Colin Raffel 等人提出的一种统一的文本转换框架。该方法是一种迁移学习的技术,即模型先在数据丰富的任务上预训练,然后再在下游任务上进行微调。迁移学习在自然语言处理领域表现出了极大的潜力。这篇文章探讨了如何把所有的语言问题转化为文本到文本的格式进行处理,目的是在多个语言理解任务上达到最佳效果。通过结合大规模数据集和先进的方法,T5 模型在许多基准测试中都取得了优异成绩。
下游任务:问答数据集
项目使用的是 SQuAD v1.1 数据集,这是一种用于训练问答系统的标准数据集。具体分割情况如下:
- 训练集:87,599 个样本
- 验证集:10,570 个样本
开发者可以通过使用 Huggingface 的 NLP 库来加载这些数据集。
模型微调
该项目的训练脚本基于 Suraj Patil 的优秀脚本进行了一些修改。Suraj Patil 对问题生成技术进行了深入的研究,其工作为本项目提供了非常有价值的支持。
模型使用示例
通过 Python 代码,开发者可以直接调用此模型来生成问题:
from transformers import AutoModelWithLMHead, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-question-generation-ap")
model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-base-finetuned-question-generation-ap")
def get_question(answer, context, max_length=64):
input_text = "answer: %s context: %s </s>" % (answer, context)
features = tokenizer([input_text], return_tensors='pt')
output = model.generate(input_ids=features['input_ids'],
attention_mask=features['attention_mask'],
max_length=max_length)
return tokenizer.decode(output[0])
context = "Manuel has created RuPERTa-base with the support of HF-Transformers and Google"
answer = "Manuel"
get_question(answer, context)
在上述示例中,给定答案“Manuel”和相应的上下文,模型能够自动生成问题:“Who created the RuPERTa-base?”
引用
如需引用本模型及其相关工作,可以使用以下 BibTeX 条目:
@misc{mromero2021t5-base-finetuned-question-generation-ap,
title={T5 (base) fine-tuned on SQUAD for QG via AP},
author={Romero, Manuel},
publisher={Hugging Face},
journal={Hugging Face Hub},
howpublished={\url{https://huggingface.co/mrm8488/t5-base-finetuned-question-generation-ap}},
year={2021}
}
本项目由 Manuel Romero 创建,并通过 Hugging Face 发布,致力于帮助开发者在自然语言处理领域取得更大成就。