使用MindStudio进行xlnet模型训练

详情请点击:使用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 在第一个,看不到其他位置,所以全部遮盖掉...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XLNet模型训练和参数的迭代更新主要包括以下步骤: 1. 数据预处理:首先,将原始文本数据转换为模型可接受的输入格式。这可能包括分词、编码和构建输入序列等操作。 2. 模型构建:根据XLNet的架构,在训练之前需要构建XLNet模型。这涉及定义模型的层级结构、注意力机制、相对位置编码等。 3. 损失函数定义:选择适合任务的损失函数,如交叉熵损失函数等。损失函数用于衡量模型训练数据上的预测结果与真实标签之间的差异。 4. 参数初始化:对XLNet模型的参数进行初始化。通常可以使用随机初始化方法,如正态分布或均匀分布。 5. 批量训练:将训练数据划分为小批量(minibatches),每个批量都会被输入到XLNet模型进行前向传播,得到预测结果。 6. 计算损失:将模型的预测结果与真实标签进行比较,计算损失函数的值。 7. 反向传播:通过反向传播算法计算损失函数对模型参数的梯度。梯度表示了损失函数对每个参数的变化率。 8. 参数更新:使用优化算法(如随机梯度下降)根据梯度更新模型的参数。这个过程会迭代多次,每次迭代都会根据一定的学习率更新参数。 9. 重复训练:重复步骤5-8,直到达到预定义的训练轮数或达到停止训练的条件。 10. 模型评估:使用验证数据集对训练过程中的模型进行评估,计算指标如准确率、精确率、召回率等。 11. 模型保存:保存训练后的模型参数,以备后续使用。 通过以上步骤,XLNet模型可以进行训练,并在训练过程中通过参数的迭代更新来提高模型的性能和泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值