






"""simple docstring"""




import copy

from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCamelCase__			=   logging.get_logger(__name__)

lowerCamelCase__			=   {}







class 					_UpperCamelCase		( __snake_case):
    __lowerCamelCase         =  "fsmt_decoder"






    def __init__(self						,      lowerCamelCase__=0						,      lowerCamelCase__=0   ):


      """simple docstring"""
      super().__init__()
      A__											=							vocab_size
      A__											=							bos_token_id







class 					_UpperCamelCase		( __snake_case):
    __lowerCamelCase         =  "fsmt"
    __lowerCamelCase         =  {"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}






    def __init__(self						,      lowerCamelCase__=["en", "de"]						,      lowerCamelCase__=4_2_0_2_4						,      lowerCamelCase__=4_2_0_2_4						,      lowerCamelCase__="relu"						,      lowerCamelCase__=1_0_2_4						,      lowerCamelCase__=2_0_0						,      lowerCamelCase__=1_0_2_4						,      lowerCamelCase__=4_0_9_6						,      lowerCamelCase__=1_2						,      lowerCamelCase__=1_6						,      lowerCamelCase__=0.0						,      lowerCamelCase__=4_0_9_6						,      lowerCamelCase__=1_2						,      lowerCamelCase__=1_6						,      lowerCamelCase__=0.0						,      lowerCamelCase__=0.0						,      lowerCamelCase__=0.1						,      lowerCamelCase__=0.0						,      lowerCamelCase__=0.0_2						,      lowerCamelCase__=2						,      lowerCamelCase__=True						,      lowerCamelCase__=True						,      lowerCamelCase__=False						,      lowerCamelCase__=5						,      lowerCamelCase__=1.0						,      lowerCamelCase__=False						,      lowerCamelCase__=True						,      lowerCamelCase__=1						,      lowerCamelCase__=0						,      lowerCamelCase__=2						,      lowerCamelCase__=2						,      **lowerCamelCase__						,      ):


      """simple docstring"""
      A__											=							langs
      A__											=							src_vocab_size
      A__											=							tgt_vocab_size
      A__											=							d_model  # encoder_embed_dim and decoder_embed_dim

      A__											=							encoder_ffn_dim
      A__											=							A__											=							encoder_layers
      A__											=							encoder_attention_heads
      A__											=							encoder_layerdrop
      A__											=							decoder_layerdrop
      A__											=							decoder_ffn_dim
      A__											=							decoder_layers
      A__											=							decoder_attention_heads
      A__											=							max_position_embeddings
      A__											=							init_std  # Normal(0, this parameter)
      A__											=							activation_function

      A__											=							DecoderConfig(vocab_size=lowerCamelCase__						,      bos_token_id=lowerCamelCase__   )
      if "decoder" in common_kwargs:
        del common_kwargs["decoder"]

      A__											=							scale_embedding  # scale factor will be sqrt(d_model) if True

      # 3 Types of Dropout
      A__											=							attention_dropout
      A__											=							activation_dropout
      A__											=							dropout

      A__											=							use_cache
      super().__init__(
          pad_token_id=lowerCamelCase__						,      bos_token_id=lowerCamelCase__						,      eos_token_id=lowerCamelCase__						,      decoder_start_token_id=lowerCamelCase__						,      is_encoder_decoder=lowerCamelCase__						,      tie_word_embeddings=lowerCamelCase__						,      forced_eos_token_id=lowerCamelCase__						,      max_length=lowerCamelCase__						,      num_beams=lowerCamelCase__						,      length_penalty=lowerCamelCase__						,      early_stopping=lowerCamelCase__						,      **lowerCamelCase__						,      )






    def  A    (self   ):


      """simple docstring"""
      A__											=							copy.deepcopy(self.__dict__   )
      A__											=							self.decoder.to_dict()
      A__											=							self.__class__.model_type
      return output








"""simple docstring"""




from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


lowerCamelCase__			=   logging.get_logger(__name__)

lowerCamelCase__			=   {
    "google/electra-small-generator": "https://huggingface.co/google/electra-small-generator/resolve/main/config.json",
    "google/electra-base-generator": "https://huggingface.co/google/electra-base-generator/resolve/main/config.json",
    "google/electra-large-generator": "https://huggingface.co/google/electra-large-generator/resolve/main/config.json",
    "google/electra-small-discriminator": (
        "https://huggingface.co/google/electra-small-discriminator/resolve/main/config.json"
    ),
    "google/electra-base-discriminator": (
        "https://huggingface.co/google/electra-base-discriminator/resolve/main/config.json"
    ),
    "google/electra-large-discriminator": (
        "https://huggingface.co/google/electra-large-discriminator/resolve/main/config.json"
    ),
}







class 					_UpperCamelCase		( __snake_case):
    __lowerCamelCase         =  "electra"






    def __init__(self						,      lowerCamelCase__=3_0_5_2_2						,      lowerCamelCase__=1_2_8						,      lowerCamelCase__=2_5_6						,      lowerCamelCase__=1_2						,      lowerCamelCase__=4						,      lowerCamelCase__=1_0_2_4						,      lowerCamelCase__="gelu"						,      lowerCamelCase__=0.1						,      lowerCamelCase__=0.1						,      lowerCamelCase__=5_1_2						,      lowerCamelCase__=2						,      lowerCamelCase__=0.0_2						,      lowerCamelCase__=1E-12						,      lowerCamelCase__="first"						,      lowerCamelCase__=True						,      lowerCamelCase__="gelu"						,      lowerCamelCase__=0.1						,      lowerCamelCase__=0						,      lowerCamelCase__="absolute"						,      lowerCamelCase__=True						,      lowerCamelCase__=None						,      **lowerCamelCase__						,      ):


      """simple docstring"""
      super().__init__(pad_token_id=lowerCamelCase__						,      **lowerCamelCase__   )

      A__											=							vocab_size
      A__											=							embedding_size
      A__											=							hidden_size
      A__											=							num_hidden_layers
      A__											=							num_attention_heads
      A__											=							intermediate_size
      A__											=							hidden_act
      A__											=							hidden_dropout_prob
      A__											=							attention_probs_dropout_prob
      A__											=							max_position_embeddings
      A__											=							type_vocab_size
      A__											=							initializer_range
      A__											=							layer_norm_eps

      A__											=							summary_type
      A__											=							summary_use_proj
      A__											=							summary_activation
      A__											=							summary_last_dropout
      A__											=							position_embedding_type
      A__											=							use_cache
      A__											=							classifier_dropout







class 					_UpperCamelCase		( __snake_case):






    @property
    def  A    (self   ):


      """simple docstring"""
      if self.task == "multiple-choice":
        A__											=							{0: """batch""", 1: """choice""", 2: """sequence"""}
      else:
        A__											=							{0: """batch""", 1: """sequence"""}
      return OrderedDict(
          [
              ("""input_ids""", dynamic_axis),
              ("""attention_mask""", dynamic_axis),
              ("""token_type_ids""", dynamic_axis),
          ]   )




