英文

MultiBERTs,中期检查点 - 种子 3,步骤 20k

MultiBERTs 是一组检查点和统计库,用于支持对BERT进行强大研究。我们提供了25个BERT-base模型,使用与 the original BERT model 相似的超参数进行训练,但使用不同的随机种子,这会导致初始权重和训练实例的顺序不同。目的是区分适用于特定制品(即特定模型实例)的结果和适用于更一般过程的结果。

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

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

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

模型描述

该模型是在对英语的 BERT-base uncased 进行复现的过程中捕获的:它是一个在大规模英语语料库上进行预训练的Transformers模型,使用了掩码语言建模(MLM)和下一句预测(NSP)目标。

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

  • 我们使用序列长度为512进行了200万步的预训练(而不是使用序列长度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_3-step_20k')
model = TFBertModel.from_pretrained("google/multiberts-seed_3-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_3-step_20k')
model = BertModel.from_pretrained("google/multiberts-seed_3-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}
}