Bert pytorch 版本解读 之 Bert pretraining 中mask的实现

BERT Mask 方法

从Bert 论文中,我们可以知道BERT在pretrain的时候 会对训练集进行MASK 操作, 其中mask的方法是:

  1. 15%的原始数据被mask, 85% 没有被mask.
  2. 对于被mask的15% 分3种处理方式: 1) 其中80%是赋值为MASK. 2) 10%进行random 赋值,3)剩下10%保留原来值.
伯努利函数

在 hunggingface transformer 中, Bert 的mask的方法实现主要是靠torch.bernoulli()函数来完成.
首先, 介绍一下torch.bernoulli() 函数:

  • torch.bernoulli 函数 是从伯努利分布中根据input的概率抽取二元随机数(0或者1),输出与input相同大小的张量, 输出的张量的值只有0和1.
    torch.bernoulli(input, out=None):
        input(Tensor) - 输入为伯努利分布的概率值
        out(Tensor, optional)
    
    • input 输入中所有值必须在[0, 1]区间(即概率值),输出张量的第i个元素值,将以输入张量的第i个概率值等于1.
    • 返回值将会是与输入相同大小的张量,每个值为0或1
Mask 代码注释

在run_lm_finetuning.py中, 有函数 mask_tokens()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值