从头开始 Fine-Tune/Train HuggingFace 模型的正确方法 (PyTorch)

Correct Way to Fine-Tune/Train HuggingFace's Model from scratch (PyTorch)

例如,我想从头开始训练一个 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()

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

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

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

你的解决方案和这个解决方案都假设你想以与原始 BERT 相同的方式对输入进行标记化,并使用相同的词汇表。如果你想使用不同的词汇表,你可以在实例化模型之前更改配置:

config.vocab_size = 123456

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