2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 【Lifelong learning】LAMOL: LANGUAGE MODELING FOR LIFELONG LANGUAGE LEARNING

【Lifelong learning】LAMOL: LANGUAGE MODELING FOR LIFELONG LANGUAGE LEARNING

时间:2020-03-04 07:10:05

相关推荐

【Lifelong learning】LAMOL: LANGUAGE MODELING FOR LIFELONG LANGUAGE LEARNING

链接:/abs/1909.03329v2

简介

之前的终身学习(LLL)模型大多应用于CV和游戏领域,在nlp方面的应用比较少,本文因此提出了一个语言专用的终身学习模型:LAMOL。

LAMOL是一种语言模型,它可以同时学习解决任务和生成训练样本。当模型为一个新任务进行训练时,它生成训练前任务的伪样本,同时生成新任务的数据。因而LAMOL不需要额外的存储空间。

结果表明,LAMOL可以在没有任何不妥协迹象的情况下防止 catastrophic forgetting,并且可以用一个模型连续执行五种非常不同的语言任务。

总的来说,LAMOL比以前的方法有相当大的优势,只比多任务处理差2-3%,多任务处理通常被认为是LLL的上限。

主要贡献:

我们提出了一种简单而有效的LLL方法LAMOL。我们的方法的优点是不需要额外的内存或模型容量。我们也不需要预先知道要训练多少任务,并且可以在需要的时候训练额外的任务。实验结果表明,我们的方法大大优于基线和其他先进方法,并接近2-3%的多任务上限。此外,我们建议在伪样本生成过程中添加特定于任务的标记,将生成的样本均匀地分配到之前的所有任务中。这个扩展稳定的LLL,是特别有用的训练时,大量的任务。我们分析了不同数量的伪样本如何影响LAMOL的最终性能,考虑了有和没有任务特定标记的结果。我们对代码进行开源,以促进进一步的LLL研究。

LAMOL

一个预先训练的LM(语言模型)可以在给定的上下文条件下生成连贯的文本序列。因此,我们提出了LAMOL,一种训练单个LM的方法,它不仅学习在给定的上下文中回答问题,还学习生成上下文、问题和给定代标记的答案。也就是说,在LAMOL中,一个模型同时扮演LM和QA模型的角色。因此,回答问题和生成伪旧样本都可以通过一个单一的模型来完成。在LLL期间,这些伪旧样本与来自新任务的新样本一起训练,以帮助减轻catastrophic forgetting。

数据格式

我们使用的数据集样本被框定为一个类似于SQuAD的格式,该格式由上下文、问题和答案组成。虽然LM同时也是一个QA模型,但数据格式取决于训练目标。当训练成为一个QA模型时,LM学习在阅读上下文和问题后解码答案。另一方面,当作为LM进行训练时,LM学习解码给定token的所有三个部分。

除了上下文、问题和答案之外,我们还添加了三个特殊token:

ANS:插在问题和答案之间。在推理过程中,知道了上下文和问题,输入ANS后就开始解码。EOS:每个例子的最后一个标记。解码在遇到EOS时停止。GEN:伪样本生成期间的第一个标记。解码在输入GEN后开始。

QA和LM的训练格式如下图:

训练

假设一个任务流 {T1,T2,...}\{ T_1,T_2,... \}{T1​,T2​,...},其中任务数量可能未知。直接训练LM完成这些任务会导致catastrophic forgetting。

因此,在开始一个新任务Ti,i>1T_i,i>1Ti​,i>1的训练之前,模型首先通过top-k抽样生成伪样本Ti′T_i'Ti′​,该伪样本代表之前任务的数据分布T1,T2,...Ti−1T_1,T_2,...T_{i-1}T1​,T2​,...Ti−1​。然后,LM在TiT_iTi​和Ti′T_i'Ti′​的混合数据集上训练。

为了平衡∣Ti∣|T_i|∣Ti​∣和∣Ti′∣|T_i'|∣Ti′​∣之间的比例,LM生成γ∣Ti∣γ|T_i|γ∣Ti​∣伪样本,其中∣Ti∣|T_i|∣Ti​∣表示任务TiT_iTi​中的样本数量,γγγ是采样比。生成的样本有且只能有一个ANS,否则该样本将被丢弃。这种情况只发生在0.5%-1%的生成样本中。

在训练期间,每个样本都被格式化为QA格式和LM格式。然后,在同一优化步骤中,这两种格式都被输入LM,以最小化QA损失LQAL_{QA}LQA​和LM损失LLML_{LM}LLM​。总的来说,损耗为L=LQA+λLLML = L_{QA} + λ L_{LM}L=LQA​+λLLM​,λλλ为LM损失函数的权值。

任务特定的TOKENS

在训练多个任务时,对所有任务使用相同的GEN令牌是有问题的,因为理论上旧任务的部分呈指数下降。例如,如果γ = 0.01,那么在训练第二个任务时,第一个任务的部分约为1%,而在训练第三个任务时,只有大约0.01%。这个问题对LLL绝对是有害的。为了缓解这一问题,我们可以选择将每个任务的GEN令牌替换为一个特定于任务的令牌,以通知模型生成属于特定任务的伪样本。在此设置下,所有先前的任务都有相同的份额γ∣Ti∣γ|T_i|γ∣Ti​∣产生的伪样本。也就是说,当开始训练第iii个任务TiT_iTi​时,我们为之前的第iii个任务生成γi−1∣Ti∣\frac{γ}{i-1}|T_i|i−1γ​∣Ti​∣。

请注意,由于每个任务都使用特定的标记,词汇表大小和LM的嵌入权重会随着训练任务的增多而略微增加。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。