Bert预训练新法则

994 阅读9分钟

论文简介:还应在遮蔽语言模型中使用 15% 的遮蔽概率吗?

论文标题:Should You Mask 15% in Masked Language Modeling?

论文链接:arxiv.org/pdf/2202.08…

论文作者:{Alexander Wettig∗ Tianyu Gao∗ Zexuan Zhong Danqi Chen}

论文简介

以往遮蔽预训练模型中,遮蔽语言模型通常使用 15% 的遮蔽率,作者团队认为更多的遮蔽将提供足够的上下文来学习良好的表示,而更少的遮蔽会使训练过于昂贵。令人惊讶的是,我们发现 40% 的遮蔽概率的输入序列可以优于 15% 的基线,通过对下游任务的微调来衡量可以发现,甚至遮蔽 80% 的字符也可以保留大部分性能。

  • 增加遮蔽有两个明显的效果,作者通过细致的消融实验研究发现:
  • 无需使用 80% [MASK]、10% 保持原始token和 10% 随机替换token。
  • 随着掩蔽率的提升,随机均匀掩码的效果(Uniform)的表现还会比Span Masking、相关区间原则性掩码(PMI-Masking)更好。

总体来说,该研究成果有助于更好地理解遮蔽语言模型,并指出有效预训练的新途径。接下来我们看看详细的实验结论。

预训练“15%遮蔽率” 惯例是可以被打破的

“15%遮蔽率”,指在一项预训练任务中,随机遮住15%的单词,并通过训练让AI学会预测遮住的单词。

在这项工作中,作者发现了在有效的预训练方案下,可以遮蔽 40-50% 的输入文本,模型获得比默认的 15% 更好的下游性能。 表格1显示了遮蔽 15%、40% 和 80% 的例子,以及它们的下游任务性能。我们可以发现使用 80% 掩蔽,即使大多数上下文被破坏,与 15% 的遮蔽 相比,模型仍能学习到良好的预训练表示并保留超过 95%的下游任务性能。 这个现象打破了以往遮蔽率选择15%的惯例,并提出了模型如何从高掩蔽率中受益的问题,这可能是未来遮蔽语言模型研究的一个热点。

预训练需要超过15%的遮蔽率

为了了解在 MLM 中可以遮蔽多少以字符及遮蔽 率如何影响预训练模型的性能,本文预训练了一系列具有不同掩蔽率的模型,范围从 15% 到80%。图 1 显示了相对于不同掩蔽率,下游任务性能的变化。

我们可以发现与默认的 15% 遮蔽模型相比,高达 50% 的遮蔽可以达到相当甚至更好的结果。 遮蔽40% 总体上实现了最佳的下游任务性能(尽管不同下游任务的最佳掩蔽率有所不同)。 结果表明语言模型预训练不必使用小于 15% 的掩码率,而使用高效预训练侧率的大型模型的最佳掩码率高达 40%。

为了进一步比较 15% 和 40% 的遮蔽率,在表 2 中展示了两者的 GLUE 测试结果: 并在图 2 中绘制了下游任务性能随不同训练步骤的变化:

表 2 进一步验证了掩蔽 40% 的性能明显优于 15% — SQuAD 提高了近 2%。 我们还看到在图 2 中的整个训练过程中,40% 的 masking 具有超过 15% 的一致性优势

“重新”理解Mask Rate

在本节中,作者从两个不同的角度分析掩蔽率如何影响 MLM 的预训练过程:任务难度和优化效果。在Mask机制下,作者还进一步讨论了遮蔽率、模型大小和不同损坏策略之间的关系,以及它们对下游任务性能的影响。

遮蔽率与破坏率和预测率之间的关系

具体来说,就是将掩蔽率拆分为破坏率 (corruption rate)和预测率 (prediction rate)2个指标。其中,破坏率是句子被破坏的比例,预测率是模型预测的比例。论文进一步针对破坏率(mcorr)和预测率(mpred)进行了研究,发现了一个新规律: 预测率高,模型效果更好;但破坏率更高,模型效果更差: 表3显示了使用解破坏率 mcorr和预测率 mpred的消融结果。我们可以看到,(1)将mcorr固定为40%,将mpred从40%降低到20%,导致下游任务持续下降,表明更多的预测导致更好的性能;(2)将mpred固定为40%,降低mcorr导致持续更好的性能,这表明较低的破坏率使预训练任务更容易学习。(3)高预测率带来的收益可以超过破坏率带来的缺陷,性能更好。

高遮蔽率更适合大模型

从上图我们可以看到,在有效的预训练设置下,大型模型可以平均取40%作为最优遮蔽率;基础模型和中等模型大约取20%作为最优遮蔽率。这清楚地表明具有更大参数量的模型从更高的遮蔽率中获益更多。

###揭开“80-10-10”规则的神秘面纱 2019年以来,大多数认为用将原始token10%替换(保持单词不变),用随机token替换10%是有益的。从那时起,在过往预训练模型研究中,80-10-10规则在几乎所有的MLM预训练工作中被广泛采用。其动机是遮蔽标记在训练前和下游微调之间造成不匹配,使用原始或随机的标记作为[MASK]的替代方法可以缓解这种差距。基于这一推理,理应认为屏蔽更多的上下文应该会进一步增加差异,但作者在下游任务中观察到更强的性能。这就引出了是否完全需要80-10-10法则的疑虑。首先,作者重新讨论了80-10-10规则,并将其与破坏率和预测率两种指标联系起来,作者思考如下:

相同字符预测:预测相同的字符是一项非常简单的任务——模型可以简单地将输入复制到输出中。来自相同的字符预测的损失非常小,这个目标应该被视为一个辅助的正则化,它确保了文本信息从嵌入传播到最后一层。因此,同样的token预测既不应该计入破坏率,也不应该计入预测率——它们不会破坏输入,而且对学习的贡献很小。

随机字符破坏:用随机token替换会提升破坏率和预测率,因为输入已经被损坏,预测任务并不重要。事实上,作者发现与[MASK]相比,随机token的损失略高,原因有两点:(1)模型需要决定所有token的信息输入是否来自随机字符和(2)预测需要对输入嵌入中的巨大变化需要保持一致。 为了验证结论,作者采用m=40%模型仅使用[MASK]替换作为基线,在此基础上我们添加了三个模型:

1.“+5%相同”:遮蔽40%的字符,预测45%的字符。

2.“w/5%随机”:遮蔽35%的字符,并随机替换了另外5%的字符,预测率为40%。

3.“80-10-10”:在BERT配置中,在所有的遮蔽文本中,80%被[MASK]取代,10%被原始token取代,10%被随机token取代。 结果如表4所示。我们观察到,相同的字符预测和随机字符损坏会降低大多数下游任务的性能。“80-10-10”规则比简单地使用[MASK]的所有任务效果更差。这表明,在微调范式中,[MASK]模型可以快速适应完整的、未损坏的句子,而不需要随机替换。鉴于实验结果,作者建议只使用[MASK]来做预训练。

在高遮蔽率下,Uniform Masking 效果更好

为了理解掩蔽率和掩蔽策略之间的相互作用,我们在不同掩蔽率下使用多种掩蔽策略进行实验,发现随机均匀掩码(Uniform)在最佳遮蔽率下比更复杂的遮蔽策略表现更好。

图5显示了在掩蔽率从15%到40%下,均匀遮蔽、t5 的span maskin和PMI遮蔽的结果。我们发现,(1)对于所有的遮蔽策略,最优遮蔽率都高于15%;(2)跨度遮蔽和PMI遮蔽的最优遮蔽率低于均匀遮蔽;(3)当所有策略都采用最优遮蔽率时,Uniform 遮蔽可以获得比高级策略相当甚至更好的结果。

为了理解更高的遮蔽率和高级遮蔽策略之间的关系,如下图显示,更均匀的遮蔽基本上增加了遮蔽高相关字符的几率,从而减少了琐碎的字符令牌,并迫使模型更稳健地学习。我们注意到,即使是Uniform 掩蔽,更高的遮蔽率也会增加“意外”覆盖整个PMI字符跨度的机会。通过对语料库上的掩码采样,我们计算图6中的这个概率,发现当遮蔽率从15%提高到40%时,概率增加了8倍。同样,更高的遮蔽率使遮蔽字符形成更长的跨度,说明增加的遮蔽率可以产生类似于高级遮蔽蔽策略效果,但是会产生学习更好的表征。

论文结论

在本文中,作者对掩蔽语言模型的掩蔽率进行了全面的研究,发现40%的遮蔽率在下游任务上的性能始终优于传统的15%遮蔽率。通过揭破坏率和预测率的关系,可以更好地理解遮蔽率,并表明更大的模型可以从更高的遮蔽率中获益更多。另外还证明了80-10-10规则在很大程度上是不需要的,简单的均匀遮蔽在更高的掩蔽率下与复杂遮蔽方案的效果是相当的。

参考资料

  • 陈丹琦带着清华特奖学弟发布新成果:打破谷歌BERT提出的训练规律!这个庆祝方式太学神了吧 www.qbitai.com/2022/02/327…