英文

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

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

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

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

这是模型#4,捕捉于步骤0k(最大值:2000k,即2M步)。

模型描述

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

全部训练模型的预期用途、限制、训练数据和训练过程与 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_4-step_0k')
model = TFBertModel.from_pretrained("google/multiberts-seed_4-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_4-step_0k')
model = BertModel.from_pretrained("google/multiberts-seed_4-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}
}