建设网站的公司swot,网站后台 设计,加盟代理好项目哪家好,常见的网站推广方法文 | python编 | 小轶God does not play dice with the universe ......But BERT Does !包括BERT在内的预训练模型已经是现今NLP工作的标配。但你有没有考虑过#xff0c;这些工作的实验结论可能都是虚假的#xff1f;在 Bertology 中#xff0c;大家从 huggingface 上下载 … 文 | python编 | 小轶God does not play dice with the universe ......But BERT Does !包括BERT在内的预训练模型已经是现今NLP工作的标配。但你有没有考虑过这些工作的实验结论可能都是虚假的在 Bertology 中大家从 huggingface 上下载 Google 训好的模型在精调中结合改进并应用于下游任务。所有的工作都是基于一组特定的初始化参数而这个参数严重依赖于预训练时选用的随机数种子用于参数初始化与预训练数据排序。这种条件下你如何知道你取得的提升是源于模型方法的改进还是因为你的方法完美配合了训练BERT时的随机数种子会不会更换了预训练BERT时的随机数种子基线方法反而能取得更优秀的表现为了帮助研究者更好地探究这一问题Google开源了 MultiBERTs 一组25个不同随机数种子下BERT预训练的结果。外加部分中间结果一共有165个储存点checkpoints。同时Google提出了Multi-Bootstrap方法利用不同种子下的BERT预训练结果检测实验结论是否源于预训练阶段的模型随机性。简便起见后文将“最初Google开源的BERT版本”称为“Google原版BERT”以显示特指。论文题目: The MultiBERTs: BERT Reproductions for Robustness Analysis论文链接https://arxiv.org/abs/2106.16163项目地址http://goo.gle/multibertsMultiBERTs多种子BERT预训练结果MultiBERTs的本意是提供不同随机数种子下BERT预训练的结果以供研究者对结论的健壮性与稳定性开展研究。因此本文作者尽量按照原始BERT训练的参数进行复现然而作者却无法完美复现BERT论文中的结果只能尽量去接近。Google自己都无法复现BERT的结果你精调时加的魔改真的靠得住么具体而言相对于原版BERT本文的主要改动为训练的步数为2M步而非原始BERT中的1M步。保持序列长度为512 节点掩码预测的内容为80个节点。而非原始BERT中90%的步数输入128的节点长度10%的步数输入512的节点长度。每次训练均采用不同的随机数种子用以初始化及对训练数据排序。其它未改动的地方结构12层transformers768隐层节点、预训练任务MLMNSP、预训练语料由于BooksCorpus不可获取本文用的[1]中的版本、batch size256、优化器Adamlr1e-410K 热身step、初始化分布truncated Normal distribution具体的在GLUE及SQuAD下游任务上的表现如下图所示。每张图为25个格子分别表示25个不同随机数种子下预训练的模型在对应任务验证集上的表现。对每个预训练的随机数种子和每个下游任务的组合均采用五次实验计算均值的方式汇报。虚线表示原始BERT汇报的结果。作者表示只优化1M步的话GLUE上的表现比不上BERT然而2M步的话GLUE上表现没问题了但SQuAD上表现又比BERT高了。所以就定成这样了。小编按与原始BERT相比作者采用全长512节点的预训练输入序列训练了更多步数。经验表明SQuAD在预训练序列更长时表现更好因为SQuAD的输入文本相对较长。所以作者相当于完全复现不出原始BERT的效果转而用更多的步数及更多的全长预训练来弥补表现上的差距。作者表明在预训练阶段采用不同的随机数种子对模型表现稳定性有较为明显的影响。如下表所示。这里统计的是下游任务中样例级别instance-level的一致率。Same表示采用相同的预训练种子Diff.表示采用不同的预训练种子。从表中可以看出预训练时使用相同的随机数种子模型在下游任务中保持有较高的一致率90%以上而如果预训练时采用不同的随机数种子下游任务的预测一致率会有1%~2%的下降。这一下降在HANS[2] 一个MNLI相关的对抗样本数据集上表现得更为明显可以达到 4%~7% 。特别地25个预训练随机数种子下BERT模型在HANS(neg)[2]上的表现如下图所示。可以看到随着预训练中随机数种子的变化模型在下游任务上的准确率可以有超过20%的波动。远大于同预训练种子的10%以内的准确率波动。因此你的论文的实验结论可能仅在一个BERT的随机种子下成立。更换预训练种子之后结论可能不再成立。我们也可以由此看到利用不同随机数种子下BERT预训练的结果对探究实验结论的鲁棒性十分必要。Multi-Bootstrap基于多种子结果的自举评估方法有了不同的种子下训练的BERT结果MultiBERTs作者进一步提出了 Multi-Bootstrap 方法以自举Bootstrap策略对模型的鲁棒性与结论的随机性做非参数估计。自举Bootstrap听上去很玄幻。据小编的理解这种方法就是一个对数据进行采样均值的过程。具体而言我们先从预训练随机数种子中有放回地采样个种子。然后同样有放回地从测试数据中采样个测试点记为种子下的模型映射为打分函数于是模型表现的估计量为通过多次采样我们可以得到的期望及标准差的估计(estimation)并用这个估计对实验结论的鲁棒性进行评估。如果评估还涉及到下游任务的随机数种子在上面的采样均值过程中再加一层对下游任务的随机数种子采样均值即可。具体的应用形式可以分成以下4种对比基线将基于MultiBERTs的结果同固定基线进行对比。这里的固定基线可以是随机结果、人类表现、或原版BERT没有对随机数种子做采样的结果等。成对采样对比同一组预训练结果之下的结果比如均是基于MultiBERTs探究添加的某个魔改结构是否有帮助。在这种采样中对待对比的两个模型的随机数种子部分采用同样的采样策略。不成对采样一般用于不可成对采样的场景。如对比MultiBERTs及某个类似的“MultiRoBERTas”之间的性能差异。因为两种模型并不共享预训练结果的检查点checkpoints采样时分别对两边的种子进行采样。假设检验P-Values可以去计算有多大比例的采样结果得到的表现估计量超过基线水平。实战示例作者在实现MultiBERTs时观察到两个现象更多的预训练步数普遍带来更好的表现MultiBERTs 的表现在SQuAD上比原始BERT要好。作者将Multi-Bootstrap应用在对这两个问题的探究上以体现该方法的有效性。更多的预训练步数可以取得更好的效果吗(成对采样)一般人们认为预训练模型迭代步数越多模型的表现就越好。作者在训练MultiBERTs时也发现了类似的现象。那这一结论是否具有统计学意义作者这里采用成对采样策略的Multi-Bootstrap方法对比迭代2M步和1M步预训练的BERT模型在下游GLUE任务上的表现。对比如下图可以看到对于MNLI任务而言更多的迭代步数会显著带来性能提升p-value0.001。而对于MRPC、RTE等任务而言更多的预训练步数对下游任务的提升就值得怀疑了p-value分别只有0.564和0.141。利用成对采样的策略可以进一步看出虽然MNLI任务上1M和2M迭代步数的预训练模型性能分布有较为明显的重叠。但两者具有较为明显的相关性即在同一随机种子下2M迭代的模型表现有很大概率高于1M迭代的模型。这导致了极高的显著性。MultiBERTs 的表现在SQuAD上比原始BERT要好(对比基线)类似地作者也对比了MultiBERTs和原版BERT在SQuAD2.0任务上的性能差异。结果表明MultiBERTs性能超过原版BERT的p-value0.001具有极高的显著性。因为原版BERT没有提供随机种子所以作者建议在这种模型下同时汇报性能差异的95%置信区间。MultiBERTs比原版BERT在SQuAD2.0任务上的性能提升量的95%置信区间为提升1.9%~2.9%。开放问题论文作者指出有了MultiBERTs研究者还可以在替换预训练过程中的随机数种子的前提下进一步探索下面这些结论是否仅有Google原版BERT能编码句法信息、世界知识是否仅有Google原版BERT包含了社会偏见(social stereotypes)RoBERTa等模型是否只超过了Google原版的BERT引入NLI等中间训练任务是否可以对下游任务带来稳定提升减少attention头的数量是否稳定影响下游任务表现BERT中引入语义角色信息是否可以稳定提升下游任务效果坑挖好了工具也有了问题也提出了小伙伴们还等什么还不赶紧把代码跑上灌上一波(ง •̀_•́)ง后台回复关键词【入群】加入卖萌屋NLP/IR/Rec与求职讨论群后台回复关键词【顶会】获取ACL、CIKM等各大顶会论文集 [1] Iulia Turc, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. Well-read students learn better: On the importance of pre-training compact models. arXiv preprint arXiv:1908.08962.[2] Tom McCoy, Ellie Pavlick, and Tal Linzen. 2019. Right for the wrong reasons: Diagnosing syntactic heuristics in natural language inference. In Proceed- ings of the 57th Annual Meeting of the Association for Computational Linguistics, pages 3428–3448, Florence, Italy. Association for Computational Lin- guistics.