英文

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

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

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

这些模型最初通过[链接]发布。我们在我们的论文[链接]中对它们进行了描述。

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

模型描述

这个模型是在对英语的复现[链接]期间捕获的:它是一个在大量英语数据上进行预训练的Transformers模型,使用了遮蔽语言模型(MLM)和下一个句子预测(NSP)目标。

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

  • 我们使用512的序列长度对MultiBERTs模型进行了200万步的预训练(而不是使用128然后512的序列长度进行100万步的预训练)。
  • 我们使用的是一个替代版本的维基百科和图书语料库,最初收集于 Turc et al., 2019

这是一次尽力的复现,因此可能存在与原始模型不同的地方未被发现。在完全训练后,MultiBERTs在GLUE上的性能往往可与原始BERT相媲美,但我们在SQuAD的开发集上发现了显著差异(MultiBERTs胜过原始BERT)。更多细节请参阅我们的[链接]。

如何使用

使用[链接]中的代码,以下是基于Tensorflow的示例:

from transformers import BertTokenizer, TFBertModel
tokenizer = BertTokenizer.from_pretrained('google/multiberts-seed_1-step_20k')
model = TFBertModel.from_pretrained("google/multiberts-seed_1-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_1-step_20k')
model = BertModel.from_pretrained("google/multiberts-seed_1-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}
}