Unilm

UniLM论文全名为Unified Language Model Pre-training for Natural Language Understanding and Generation,译为自然语言理解与生成的统一预训练语言模型,来自于微软研究院。

论文https://arxiv.org/abs/1905.03197

源码https://github.com/microsoft/unilm

模型简介

UniLM,既可以应用于自然语言理解(NLU)任务,又可以应用于自然语言生成(NLG)任务。UniLM模型的框架与BERT一致,是由一个多层Transformer网络构成,但训练方式不同,它是通过联合训练三种不同目标函数的无监督语言得到。
在这里插入图片描述

预训练任务

作者设计了三种类型的完型填空任务,共同优化同一个transformer框架。在完型填空任务中,我们在文本中随机选择一些token,使用特殊标记【Mask】进行替换;将文本输入到 Transformer网络,计算出对应的输出向量,再通过softmax分类器预测【Mask】到底属于字典中的哪一个token。

UniLM模型参数通过最小化预测token和标准token的交叉熵来优化。三种类型的完型填空任务可以完成不同的语言模型运用相同的程序程序训练。

单向语言模型

有从右到左和从左到右两者,以从左到右为例进行介绍。每个特殊标记【Mask】的预测,仅采用它自身和其左侧的token进行编码。例如,我们预测序列 中的【Mask】,我们仅可以利用 、 和它自身进行编码。具体操作,如图1所示,使用一个上三角矩阵来作为掩码矩阵。阴影部分为 ,空白部分为0。

双向语言模型

跟Bert模型一致,每个特殊标记【Mask】的预测,可以使用所有的token进行编码。例如,我们预测 序列 中的【Mask】,我们仅可以利用 、 、 和它自身进行编码。具体操作,如图1所示,使用全0矩阵来作为掩码矩阵。

序列到序列语言模型

如果预测的特殊标记【Mask】出现在第一段文本中时,仅可以使用第一段文本中所有的token进行预测;如果:如果预测的特殊标记【Mask】出现在第二段文本中时,可以采用第一段文本中所有的token,和第二段文本中该预测标记的左侧所有tokne以及它本身。例如,我们预测序列【SOS】x1x2【mask1】x4【EOS】x5x6【mask2】x8【EOS】中的【mask1】时,除去【SOS】和【EOS】,我们仅可以利用 x1、x2 、 x4 和它自身进行编码;预测【mask2】时除去【SOS】和【EOS】,我们仅可以利用 x1、x2 、【mask1】 、 x4 、x5 、x6 和它自身进行编码。由于在训练时,将源文本和目标文本结合进入模型,使模型可以含蓄地学习到两个文本之间关系,可以做到seq-to-seq的效果。

NSP任务

对于双向语言模型,与bert模型一样,也进行下一个句子预测。如果是第一段文本的下一段文本,则预测1;否则预测0。

以上就是模型核心部分,用一句来总结一下,就是对于不同的语言模型,我们可以仅改变self-attention mask,就可以完成联合训练。

预训练步骤

在模型预训练过程中,在一个训练batch中,使用1/3的数据进行双向语言模型优化,1/3的数据进行序列到序列语言模型优化,1/6的数据进行从左向右的单向语言模型优化,1/6的数据进行从右向左的单向语言模型优化(如何实现呢?个人理解可以使用pipline方式进行训练,loss进行累加)。模型结构与BERT-large模型一致,由一个24层1024隐藏节点和16个头的Transformer编码器组成,约有340M大小参数,并由训练好的BERT-large模型初始化参数。token掩码的概率为15%,在被掩掉的token中,有80%使用【MASK】替换,10%使用字典中随机词进行替换,10%保持越来token不变,与BERT模型一致。此外,在80%的情况下,每次随机掩掉一个token,在剩余的20%情况下,掩掉一个二元token组或三元token组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值