英文

MultiBERTs,中间检查点 - 种子 0,步骤 0k

MultiBERTs是一个检查点集合和一个统计库,用于支持关于BERT的稳健研究。我们提供了25个使用类似超参数作为 the original BERT model 但具有不同随机种子的BERT-base模型,这导致初始权重和训练实例顺序的变化。目的是区分适用于特定构件(即特定模型实例)的发现与适用于更一般过程的发现。

我们还提供了在预训练过程中捕获的140个中间检查点(前5次运行保存了28个检查点)。

这些模型最初是通过 http://goo.gle/multiberts 发布的。我们在我们的论文 The MultiBERTs: BERT Reproductions for Robustness Analysis 中对它们进行了描述。

这是模型#0,在步骤0k时捕获(最大为2000k,即2M步)。

模型描述

这个模型是在重现 BERT-base uncased 的情况下捕获的,用于英文:它是一个在大量英文数据上使用掩码语言模型(MLM)和下一句预测(NSP)目标进行预训练的Transformer模型。

预训练模型的预期用途、限制、训练数据和训练过程与 BERT-base uncased 类似。与原始模型相比,有两个主要差异:

  • 我们使用长度为512的序列在200万步进行了MultiBERTs模型的预训练(而不是使用长度为128然后512的序列在100万步进行预训练)。
  • 我们使用了从 Turc et al., 2019 开始最初收集的维基百科和图书语料库的另一个版本。

这是一个尽力而为的复现过程,所以很可能与原始模型存在未注意到的差异。在完全训练后,MultiBERTs在GLUE上的性能往往与原始BERT相当,但我们在SQuAD的开发集上发现了显著的差异(MultiBERTs优于原始BERT)。详细信息请参阅我们的 technical report

如何使用

使用来自 BERT-base uncased 的代码,以下是基于TensorFlow的示例:

from transformers import BertTokenizer, TFBertModel
tokenizer = BertTokenizer.from_pretrained('google/multiberts-seed_0-step_0k')
model = TFBertModel.from_pretrained("google/multiberts-seed_0-step_0k")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)

PyTorch版本:

from transformers import BertTokenizer, BertModel
tokenizer = BertTokenizer.from_pretrained('google/multiberts-seed_0-step_0k')
model = BertModel.from_pretrained("google/multiberts-seed_0-step_0k")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)

引用信息

@article{sellam2021multiberts,
  title={The MultiBERTs: BERT Reproductions for Robustness Analysis},
  author={Thibault Sellam and Steve Yadlowsky and Jason Wei and Naomi Saphra and Alexander D'Amour and Tal Linzen and Jasmijn Bastings and Iulia Turc and Jacob Eisenstein and Dipanjan Das and Ian Tenney and Ellie Pavlick},
  journal={arXiv preprint arXiv:2106.16163},
  year={2021}
}