英文

MultiBERTs,第二个种子的中间检查点-第2000k步

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

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

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

这是第2个模型,在第2000k步(最大值:2000k,即2M步)时捕获。

模型描述

该模型是在对 BERT-base uncased 的重现过程中捕获的,用于英语:它是一个在大规模英语数据语料库上进行预训练的Transformer模型,使用了遮盖语言模型(MLM)和下一句预测(NSP)目标。

完全训练模型的预期用途、限制、训练数据和训练过程与 BERT-base uncased 相似。与原始模型的两个主要区别:

  • 我们使用序列长度512对MultiBERTs模型进行了200万步的预训练(而不是使用序列长度128然后512进行100万步的预训练)。
  • 我们使用了替代版本的Wikipedia和Books Corpus,最初是为 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_2-step_2000k')
model = TFBertModel.from_pretrained("google/multiberts-seed_2-step_2000k")
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_2-step_2000k')
model = BertModel.from_pretrained("google/multiberts-seed_2-step_2000k")
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}
}