详情请点击:使用MindStudio进行xlnet模型训练 - 知乎
BERT 本身很有效,但它本身也存在一些问题,比如不能用于生成、以及训练数据和测试数据的不一致(Discrepancy)。在本文中,我们重点介绍比 BERT 更强大的预训练模型
-XLNet,它为了达到真正的双向学习,采用了 Permutation 语言模型、以及使用了双流自注意力机制,并结合了 Transformer-XL 的相对位置编码。
作者发现,只要在 AR 中再加入一个步骤,就能够完美地将 AR 与 AE 的优点统一起来, 那就是提出 Permutation Language Model(PLM)。具体实现方式是,通过随机取一句话的一种排列,然后将末尾一定量的词给“遮掩”(和 BERT 里的直接替换 “[MASK]” 有些不同)掉,最后用 AR 的方式来按照这种排列依次预测被“遮掩”掉的词。我们可以发现通过随机取排列(Permutation)中的一种,就能非常巧妙地通过 AR 的单向方式来习得双向信息了。
论文中 Permutation 具体的实现方式是通过直接对 Transformer 的 Attention Mask 进行操作。比如说序号依次为 1234 的句子,先随机取一种排列 3241。于是根据这个排列我们就做出类似上图的 Attention Mask。先看第 1 行,因为在新的排列方式中 1 在最后一个,根据从左到右 AR 方式,1 就能看到 234 全部,于是第一行的 234 位置是红色的(没有遮盖掉,会用到),以此类推。第 2 行,因为 2 在新排列是第二个,只能看到 3,于是 3
位置是红色。第 3 行,因为 3 在第一个,看不到其他位置,所以全部遮盖掉...