GPT2Config

作用:

这是用于存储 transformers.GPT2Model 或 transformers.TFGPT2Model 的配置的配置类。它用于根据指定的参数实例化 GPT-2 模型,定义模型架构。使用默认值实例化配置将产生与 GPT-2 small 架构类似的配置。

参数:

vocab_size (:obj:`int`, `optional`, 默认为 50257):GPT-2 模型的词汇量。定义在调用 :class:`~transformers.GPT2Model` 或 :class:`~transformers.TFGPT2Model` 时传递的 :obj:`inputs_ids` 可以表示的不同标记的数量。

n_positions (:obj:`int`, `optional`, 默认为 1024):此模型可能使用的最大序列长度。通常将此设置为较大的值以防万一(例如,512 或 1024 或 2048)。

n_ctx (:obj:`int`, `optional`, 默认为 1024):因果掩码的维度(通常与 n_positions 相同)。

n_embd (:obj:`int`, `optional`, 默认为 768):嵌入和隐藏状态的维度。

n_layer (:obj:`int`, `optional`, 默认为 12):Transformer 编码器中的隐藏层数。

n_head (:obj:`int`, `optional`, 默认为 12):Transformer 编码器中每个注意力层的注意力头数。

n_inner (:obj:`int`, `optional`, 默认为 None):内部前馈层的维度。 :obj:`None` 会将其设置为 4 倍n_embd

activation_function:激活函数`[“relu”、“swish”、“gelu”、“tanh”、“gelu_new”]`。

resid_pdrop (:obj:`float`, `optional`, 默认为 0.1):embeddings、encoder 和 pooler 中所有全连接层的 dropout 概率。

embd_pdrop (:obj:`int`, `optional`, 默认为 0.1):embedding的丢失率。

attn_pdrop (:obj:`float`, `optional`, 默认为 0.1):attention 的 dropout 比率。

layer_norm_epsilon (:obj:`float`, `optional`, 默认为 1e-5): 在层标准化层中使用的 epsilon

initializer_range (:obj:`float`, `optional`, 默认为 0.02): 标准差用于初始化所有权重矩阵的 truncated_normal_initializer。

summary_type (:obj:`string`, `optional`, 默认为 :obj:`"cls_index"`):做序列汇总时使用的参数,用于模型:class:`~transformers.GPT2DoubleHeadsModel` 和:class:`~transformers.TFGPT2DoubleHeadsModel`。

必须是以下选项之一: - :obj:`"last"`:取最后一个令牌隐藏状态(如 XLNet)。 - :obj:`"first"`:取第一个令牌隐藏状态(如 BERT)。 - :obj:`"mean"`:取所有标记隐藏状态的平均值。 - :obj:`"cls_index"`:提供分类标记位置的张量(如 GPTGPT-2)。 - :obj:`"attn"`: 现在没有实现,使用多头注意力。

summary_use_proj (:obj:`bool`, `optional`, 默认为 :obj:`True`):做序列汇总时使用的参数,用于模型:class:`~transformers.GPT2DoubleHeadsModel` 和:class:`~transformers .TFGPT2DoubleHeadsModel`。矢量提取后是否添加投影。

summary_activation (:obj:`str`, `optional`):进行序列汇总时使用的参数。用于 :class:`~transformers.GPT2DoubleHeadsModel` 中的多项选择头。将 :obj:`"tanh"` 用于 tanh 激活到输出,任何其他值都将导致不激活。

summary_proj_to_labels (:obj:`bool`, `optional`, 默认为 :obj:`True`): 做序列汇总时使用的参数,用于模型:class:`~transformers.GPT2DoubleHeadsModel` 和:class:`~transformers .TFGPT2DoubleHeadsModel`。投影输出是否应该有 :obj:`config.num_labels` 或 :obj:`config.hidden_size` 类。

summary_first_dropout (:obj:`float`, `optional`, 默认为 0.1):做序列汇总时使用的参数,用于模型:class:`~transformers.GPT2DoubleHeadsModel` 和:class:`~transformers.TFGPT2DoubleHeadsModel`。投影和激活后要使用的辍学率。

gradient_checkpointing (:obj:`bool`, `optional`, 默认为 :obj:`False`): 是否使用梯度检查点来节省内存,代价是向后传递速度较慢。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GPT2LMHeadModel是指基于GPT-2预训练模型的语言模型,该模型可以用于生成自然语言文本。在Transformers库中,GPT2LMHeadModel是一个Python类,可以通过实例化该类来构建一个GPT-2模型。 与其他深度学习模型一样,GPT2LMHeadModel包含了一个前向传播计算图和一个反向传播计算图。在前向传播计算图中,输入数据首先被经过多层Transformer编码器的GPT-2模型处理,然后通过一个线性层,也就是LM Head,生成下一个词的概率分布;在反向传播计算图中,根据模型输出和真实标签计算损失,并通过反向传播算法更新模型参数。 在使用GPT2LMHeadModel时,可以通过以下方式加载预训练模型: ```python from transformers import GPT2LMHeadModel # 加载GPT-2模型 model = GPT2LMHeadModel.from_pretrained('gpt2') ``` 在以上代码中,我们使用`from_pretrained()`方法加载了一个预训练的GPT-2模型,该模型使用了默认的参数设置。此外,你还可以自定义参数来构建一个不同大小的GPT-2模型,例如: ```python from transformers import GPT2LMHeadModel, GPT2Config # 自定义参数 config = GPT2Config(n_embd=768, n_layer=12, n_head=12) # 构建自定义的GPT-2模型 model = GPT2LMHeadModel(config) ``` 在以上代码中,我们自定义了GPT-2模型的参数,包括嵌入层大小、Transformer层数、注意力头数等,然后使用这些参数实例化了一个自定义的GPT-2模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值