【问题标题】:Why some weights of GPT2Model are not initialized?为什么 GPT2Model 的某些权重没有初始化?
【发布时间】:2021-07-26 11:47:06
【问题描述】:

我将 GPT2 预训练模型用于研究项目,当我使用以下代码加载预训练模型时,

from transformers.models.gpt2.modeling_gpt2 import GPT2Model
gpt2 = GPT2Model.from_pretrained('gpt2')

我收到以下警告消息:

GPT2Model 的一些权重没有从 gpt2 的模型检查点初始化,而是重新初始化:['h.0.attn.masked_bias', 'h.1.attn.masked_bias', 'h.2.attn.masked_bias '、'h.3.attn.masked_bias'、'h.4.attn.masked_bias'、'h.5.attn.masked_bias'、'h.6.attn.masked_bias'、'h.7.attn.masked_bias '、'h.8.attn.masked_bias'、'h.9.attn.masked_bias'、'h.10.attn.masked_bias'、'h.11.attn.masked_bias'] 您可能应该在下游任务上训练此模型,以便能够将其用于预测和推理。

据我了解,上面的层的权重不是从预训练模型初始化的。但是我们都知道注意力层('attn')在 GPT2 中非常重要,如果我们不能从预训练模型中获得它们的实际权重,那么使用预训练模型有什么意义呢?

如果有人能向我解释这个问题并告诉我如何解决这个问题,我真的很感激。

【问题讨论】:

标签: pytorch huggingface-transformers gpt-2


【解决方案1】:

添加了 masked_bias,但与原始实现相比,huggingface 社区的速度有所提高。由于原始权重已正确加载,因此不应对性能产生负面影响。查看此PR 了解更多信息。

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多