训练后如何查看拥抱脸模型的变化?

Posted

技术标签:

【中文标题】训练后如何查看拥抱脸模型的变化?【英文标题】:How to view the changes in a huggingface model after training? 【发布时间】:2021-12-21 21:20:05 【问题描述】:

我训练了一个 BART 模型 (facebook-cnn) 进行摘要,并将摘要与预训练模型进行比较

model_before_tuning_1 = AutoModelForSeq2SeqLM.from_pretrained(model_name)

trainer = Seq2SeqTrainer(
model=model,
args=training_args,
data_collator=data_collator,
train_dataset=train_data,
eval_dataset=validation_data,
tokenizer=tokenizer,
compute_metrics=compute_metrics,
)
trainer.train()

model() 和 model_before_tuning_1() 的摘要不同,但是当我比较模型配置和/或 print(model) 时,两者的结果完全相同。

如何知道这次训练改变了哪些具体参数?

【问题讨论】:

【参考方案1】:

您可以比较模型的 state_dict。 IE。 model.state_dict() 和 model_before_tuning_1.state_dict()。

State_dict 包含在训练过程中发生变化的可学习参数。更多详情见:https://pytorch.org/tutorials/recipes/recipes/what_is_state_dict.html

否则,打印模型或模型配置会得到相同的结果,因为架构在训练期间不会改变。

【讨论】:

以上是关于训练后如何查看拥抱脸模型的变化?的主要内容,如果未能解决你的问题,请参考以下文章

我们是不是应该小写输入数据以(预)使用拥抱脸训练 BERT 无大小写模型?

如何使用拥抱脸变压器批量制作训练器垫输入?

如何冻结拥抱脸模型?

如何从拥抱脸下载模型?

训练使用 AutoConfig 定义的拥抱脸 AutoModel

如何运行拥抱脸赫尔辛基 NLP 模型