这是用于存储 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`): 是否使用梯度检查点来节省内存,代价是向后传递速度较慢。