英文

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

MultiBERTs是一个检查点集合和统计库,用于支持对BERT的强大研究。我们提供了25个BERT-base模型,这些模型使用与 the original BERT model 相似的超参数进行训练,但具有不同的随机种子,从而导致初始权重和训练实例的顺序不同。目的是区分适用于特定实例(即模型的特定实例)的结果和适用于更一般过程的结果。

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

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

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

模型描述

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

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

  • 我们使用序列长度512进行了200万步的MultiBERTs模型预训练(而原始模型使用序列长度128,然后512进行了100万步)。
  • 我们使用的是维基百科和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_3-step_2000k')
model = TFBertModel.from_pretrained("google/multiberts-seed_3-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_3-step_2000k')
model = BertModel.from_pretrained("google/multiberts-seed_3-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}
}