英文

MultiBERTs,中间检查点 - 种子2,步骤20k

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

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

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

这是第2个模型,在步骤20k处捕获(最大: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_2-step_20k')
model = TFBertModel.from_pretrained("google/multiberts-seed_2-step_20k")
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_20k')
model = BertModel.from_pretrained("google/multiberts-seed_2-step_20k")
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}
}