英文

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

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

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

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

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

模型描述

此模型是在对 BERT-base uncased 进行复现时捕获的,用于英语:它是一个在大量英语数据的基础上进行预训练的Transformer模型,使用了掩码语言建模(MLM)和下一句预测(NSP)目标。

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

  • 我们使用512个步骤的序列长度(而不是128个步骤的序列长度然后是512个步骤)来预训练MultiBERTs模型。
  • 我们使用了维基百科和书籍语料库的替代版本,最初是为 Turc et al., 2019 收集的。

这是尽力进行的复现,因此可能忽略了与原始模型的差异。MultiBERTs在GLUE上的性能在完全训练后通常与原始BERT相当,但我们在SQuAD的dev数据集上发现了显著差异(MultiBERTs优于原始BERT)。有关更多详细信息,请参阅我们的 technical report

如何使用

使用来自 BERT-base uncased 的代码,下面是一个基于Tensorflow的示例:

from transformers import BertTokenizer, TFBertModel
tokenizer = BertTokenizer.from_pretrained('google/multiberts-seed_0-step_2000k')
model = TFBertModel.from_pretrained("google/multiberts-seed_0-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_0-step_2000k')
model = BertModel.from_pretrained("google/multiberts-seed_0-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}
}