英文

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

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

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

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

这是模型#0,捕获在步骤500k(最大: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_0-step_500k')
model = TFBertModel.from_pretrained("google/multiberts-seed_0-step_500k")
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_500k')
model = BertModel.from_pretrained("google/multiberts-seed_0-step_500k")
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}
}