【问题标题】:Correct Way to Fine-Tune/Train HuggingFace's Model from scratch (PyTorch)从头开始微调/训练 HuggingFace 模型的正确方法 (PyTorch)
【发布时间】:2020-12-08 05:57:18
【问题描述】:

例如,我想使用现有配置从头开始训练 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()

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

【问题讨论】:

  • 对于初始化权重,代码看起来不错。要验证模型是否有 10 层,您可以简单地使用 print(model) 进行验证

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


【解决方案1】:

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

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

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

config.vocab_size = 123456

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

【讨论】:

  • 这很有帮助。非常感谢。
  • 只有一条评论。代码应该是AutoConfig.from_pretrained("bert-base-cased")吧?
猜你喜欢
  • 2021-11-18
  • 2019-12-08
  • 2017-08-11
  • 2021-05-05
  • 2021-07-08
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 2021-09-14
相关资源
最近更新 更多