从头开始微调/训练HuggingFace模型的正确方法(PyTorch)

时间:2020-08-19 01:57:17

标签: python pytorch bert-language-model huggingface-transformers

例如,我想从头开始训练BERT模型,但要使用现有配置。以下代码是这样做的正确方法吗?

model = BertModel.from_pretrained('bert-base-cased')
model.init_weights()

因为我认为init_weights方法将重新初始化所有权重。

第二个问题,是否要更改配置,例如隐藏层数。

model = BertModel.from_pretrained('bert-base-cased', num_hidden_layers=10)
model.init_weights()

我想知道上面是否是正确的方法。因为当我运行上面的代码时它们似乎没有错误。

1 个答案:

答案 0 :(得分:2)

这样,您将不必要地下载和加载预训练的模型权重。您可以通过下载BERT配置来避免这种情况

config = transformers.AutoConfig.from_pretrained("bert-base-cased")
model = transformers.AutoModel.from_config(config)

您和本解决方案都假定您要使用与原始BERT相同的方式对输入进行标记,并使用相同的词汇表。如果要使用其他词汇表,可以在实例化模型之前在配置中进行更改:

config.vocab_size = 123456

类似地,您可以更改任何想要与原始BERT不同的超参数。