英文

mT5-base用于泛捷克语+英语生成问答模型

这是一个带有LM头部的模型,用于生成抽取式答案,给定一个由2-5个示例(即primes)组成的小集合。

预备

请注意,这是一个预备模型,期望获得一组感兴趣任务的示例集,类似于GPT-3。与在传统问答上表现良好不同,它旨在学习将给定示例的模式外推到新的任务,例如从给定模式进行命名实体识别或关键词提取。

数据和训练

可以在我们的 Github 上获得可再现的训练脚本,供任何用途使用。

该模型是在 English SQuAD 1.1 Czech SQAD 3.0 问答数据集的组合上进行训练的。

为了使模型能够依赖于示例中给出的趋势,我们根据英语SQuAD中的疑问词和捷克语SQAD中的类别对样本进行了聚类,并使用相同聚类的示例作为训练中任务的示例。

选择这些示例的具体算法对模型推广到新任务的能力有很大影响,将在下一篇文章中分享;敬请关注!

对于捷克SQAD 3.0,原始上下文(即整个维基百科网站)的最大字符数限制为每个序列的一组prime示例的8000个字符。捷克SQAD的预处理脚本可在 here 上找到。

对于训练模型(因此也适用于推断),我们使用了2-7个示例的以下模式:

对于英语示例:

输入:

Question: {Q1} Context: {C1} Answer: {A1}, 
Question: {Q2} Context: {C2} Answer: {A2}, 
[...possibly more demonstrations...] 

Question: {Q} Context: {C} Answer:`

=> 目标:

{A}

对于捷克示例:

输入:

Otázka: {Q1} Kontext: {C1} Odpověď: {A1}, 
Otázka: {Q2} Kontext: {C2} Odpověď: {A2}, 
[...possibly more demonstrations...] 

Otázka: {Q} Kontext: {C} Odpověď:`

=> 目标:

{A}

最佳检查点是通过最大化模型在文本和标签的分布外的命名实体识别上的零-shot性能来选择的。

使用目的和限制

此模型适用于英语和捷克语文本提取任务的少量示例应用,其中提示可以用自然问句的形式陈述。例如,要使用该模型从文本中提取客户姓名的实体,可使用以下格式的示例进行提示:

请注意,尽管英语SQuAD的大小较大,但存在多种报告的偏见,这些偏见受到答案在上下文中的相对位置或类型的限制可能会影响模型对新数据的性能(参见,例如 L. Mikula (2022) ,第4.1章)。

用法

以下是如何使用PyTorch中的? Transformers来回答给定上下文中的问题:

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("gaussalgo/mt5-base-priming-QA_en-cs")
model = AutoModelForSeq2SeqLM.from_pretrained("gaussalgo/mt5-base-priming-QA_en-cs")

# For the expected format of input_text, see Intended use above
inputs = tokenizer(input_text, return_tensors="pt")

outputs = model.generate(**inputs)

print("Answer:")
print(tokenizer.decode(outputs))