英文

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

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

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

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

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

模型说明

此模型是在对 BERT-base uncased 进行的复现期间捕获的,用于英语:它是一个在大型英文数据语料库上进行预训练的 Transformers 模型,使用了掩码语言建模(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_1-step_0k')
model = TFBertModel.from_pretrained("google/multiberts-seed_1-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_1-step_0k')
model = BertModel.from_pretrained("google/multiberts-seed_1-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}
}