【发布时间】:2021-10-15 20:32:02
【问题描述】:
我想在问答中微调一个预先训练的变形金刚模型。该模型已在大型工程和科学相关语料库上进行了预训练。
我收到了一个包含模型权重的“checkpoint.pt”文件。他们还为我提供了一个“bert_config.json”文件,但我不确定这是否是正确的配置文件。
from transformers import AutoModel, AutoTokenizer, AutoConfig
MODEL_PATH = "./checkpoint.pt"
config = AutoConfig.from_pretrained("./bert_config.json")
model = AutoModel.from_pretrained(MODEL_PATH, config=config)
我认为 bert_config.json 与“./checkpoint.pt”文件不匹配的原因是,当我使用上面的代码加载模型时,我收到如下错误。
初始化 BertModel 时未使用 ./aerobert/phase2_ckpt_4302592.pt 的模型检查点的某些权重:['files', 'optimizer', 'model', 'master params']
- 如果您是从针对其他任务或使用其他架构训练的模型的检查点初始化 BertModel(例如,从 BertForPreTraining 模型初始化 BertForSequenceClassification 模型),则这是预期的。
- 如果您从希望完全相同的模型的检查点初始化 BertModel(从 BertForSequenceClassification 模型初始化 BertForSequenceClassification 模型),则不会出现这种情况。 BertModel 的一些权重没有从 ./aerobert/phase2_ckpt_4302592.pt 的模型检查点初始化,而是新初始化:['encoder.layer.2.attention.output.LayerNorm.weight', 'encoder.layer.6.output. LayerNorm.bias','encoder.layer.7.intermediate.dense.bias','encoder.layer.2.output.LayerNorm.bias','encoder.layer.21.attention.self.value.bias',' encoder.layer.11.attention.self.value.bias',…………
如果我正确地假设“bert_config.json”不是正确的,有没有办法在没有 config.json 文件的情况下正确加载这个模型?
有没有办法从保存的 checkpoint.pt 文件的权重中查看模型架构?
【问题讨论】:
标签: python pytorch huggingface-transformers