
    9i                     X    S r SSKJr  SSKJr  \R                  " 5       r " S S\5      rg)zVPLUG mental model configuration, mainly copied from :class:`~transformers.BertConfig`     )PretrainedConfig)loggerc                   \   ^  \ rS rSrSrSrSSSSSSS	S	S
SSSSSSSSSS/4U 4S jjrSrU =r$ )PlugMentalConfig   a  
This is the configuration class to store the configuration
of a :class:`~modelscope.models.nlp.plug_mental.PLugMentalModel`.
It is used to instantiate a PlugMental model according to the specified arguments.

Configuration objects inherit from :class:`~transformers.PretrainedConfig` and can be used to control the model
outputs. Read the documentation from :class:`~transformers.PretrainedConfig` for more information.


Args:
    vocab_size (:obj:`int`, `optional`, defaults to 30522):
        Vocabulary size of the BERT model. Defines the number of different tokens that can be represented by the
        :obj:`inputs_ids` passed when calling :class:`~transformers.BertModel` or
        :class:`~transformers.TFBertModel`.
    hidden_size (:obj:`int`, `optional`, defaults to 768):
        Dimensionality of the encoder layers and the pooler layer.
    num_hidden_layers (:obj:`int`, `optional`, defaults to 12):
        Number of hidden layers in the Transformer encoder.
    num_attention_heads (:obj:`int`, `optional`, defaults to 12):
        Number of attention heads for each attention layer in the Transformer encoder.
    intermediate_size (:obj:`int`, `optional`, defaults to 3072):
        Dimensionality of the "intermediate" (often named feed-forward) layer in the Transformer encoder.
    hidden_act (:obj:`str` or :obj:`Callable`, `optional`, defaults to :obj:`"gelu"`):
        The non-linear activation function (function or string) in the encoder and pooler. If string,
        :obj:`"gelu"`, :obj:`"relu"`, :obj:`"silu"` and :obj:`"gelu_new"` are supported.
    hidden_dropout_prob (:obj:`float`, `optional`, defaults to 0.1):
        The dropout probability for all fully connected layers in the embeddings, encoder, and pooler.
    attention_probs_dropout_prob (:obj:`float`, `optional`, defaults to 0.1):
        The dropout ratio for the attention probabilities.
    max_position_embeddings (:obj:`int`, `optional`, defaults to 512):
        The maximum sequence length that this model might ever be used with. Typically set this to something large
        just in case (e.g., 512 or 1024 or 2048).
    type_vocab_size (:obj:`int`, `optional`, defaults to 2):
        The vocabulary size of the :obj:`token_type_ids` passed when calling :class:`~transformers.BertModel` or
        :class:`~transformers.TFBertModel`.
    initializer_range (:obj:`float`, `optional`, defaults to 0.02):
        The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
    layer_norm_eps (:obj:`float`, `optional`, defaults to 1e-12):
        The epsilon used by the layer normalization layers.
    position_embedding_type (:obj:`str`, `optional`, defaults to :obj:`"absolute"`):
        Type of position embedding. Choose one of :obj:`"absolute"`, :obj:`"relative_key"`,
        :obj:`"relative_key_query"`. For positional embeddings use :obj:`"absolute"`. For more information on
        :obj:`"relative_key"`, please refer to `Self-Attention with Relative Position Representations (Shaw et al.)
        <https://arxiv.org/abs/1803.02155>`__. For more information on :obj:`"relative_key_query"`, please refer to
        `Method 4` in `Improve Transformer Models with Better Relative Position Embeddings (Huang et al.)
        <https://arxiv.org/abs/2009.13658>`__.
    use_cache (:obj:`bool`, `optional`, defaults to :obj:`True`):
        Whether or not the model should return the last key/values attentions (not used by all models). Only
        relevant if ``config.is_decoder=True``.
    classifier_dropout (:obj:`float`, `optional`):
        The dropout ratio for the classification head.
    adv_grad_factor (:obj:`float`, `optional`): This factor will be multiplied by the KL loss grad and then
        the result will be added to the original embedding.
        More details please check:https://arxiv.org/abs/1908.04577
        The range of this value should between 1e-3~1e-7
    adv_bound (:obj:`float`, `optional`): adv_bound is used to cut the top and the bottom bound of
        the produced embedding.
        If not provided, 2 * sigma will be used as the adv_bound factor
    sigma (:obj:`float`, `optional`): The std factor used to produce a 0 mean normal distribution.
        If adv_bound not provided, 2 * sigma will be used as the adv_bound factor
zplug-mentali:w  i      i   gelug?i      g{Gz?g-q=r   absoluteTN      c                   > [         TU ]  " SSU0UD6  Xl        X l        X0l        X@l        X`l        XPl        Xpl        Xl	        Xl
        Xl        Xl        Xl        Xl        Xl        UU l        SU l        S U l        SU;  a  SOUS   U l        SU;  a  SU R&                  -  OUS   U l        UU l        UU l        UU l        g )Npad_token_idTsigmagh㈵>	adv_boundr
    )super__init__
vocab_sizehidden_sizenum_hidden_layersnum_attention_heads
hidden_actintermediate_sizehidden_dropout_probattention_probs_dropout_probmax_position_embeddingstype_vocab_sizeinitializer_rangelayer_norm_epsposition_embedding_type	use_cacheclassifier_dropoutoutput_hidden_statesadv_grad_factorr   r   adapter_sizeadapter_transformer_layersadapter_list)selfr   r   r   r   r   r   r   r   r   r   r   r    r   r!   r"   r#   r&   r'   r(   kwargs	__class__s                        o/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/nlp/plug_mental/configuration.pyr   PlugMentalConfig.__init__Z   s    * 	=l=f=$&!2#6 $!2#6 ,H)'>$.!2,'>$""4$(!  $$F2Tw
+6f+DTZZ&K )*D'(    )r(   r&   r'   r   r%   r   r#   r   r   r   r   r   r    r   r   r   r$   r!   r   r   r"   r   )	__name__
__module____qualname____firstlineno____doc__
model_typer   __static_attributes____classcell__)r+   s   @r,   r   r      sW    <| J " #%%'#'"%(.1),!"#' %)3$(!,-!d'4) 4)r.   r   N)r3   transformersr   modelscope.utilsr   logging
get_loggerr   r   r.   r,   <module>r;      s.   " ^ ) .				u)' u)r.   