
from typing import List

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


lowercase    :   Tuple		       =				logging.get_logger(__name__)

lowercase    :   Union[str, Any]		       =				{
    'snap-research/efficientformer-l1-300': (
        'https://huggingface.co/snap-research/efficientformer-l1-300/resolve/main/config.json'
    ),
}

class __snake_case						( lowerCAmelCase	):
    _a						:		Optional[Any]=							"efficientformer"
    def __init__(    self						,snake_case = [3, 2, 6, 4]						,snake_case = [48, 96, 224, 448]						,snake_case = [True, True, True, True]						,snake_case = 448						,snake_case = 32						,snake_case = 4						,snake_case = 7						,snake_case = 5						,snake_case = 8						,snake_case = 4						,snake_case = 0.0						,snake_case = 16						,snake_case = 3						,snake_case = 3						,snake_case = 3						,snake_case = 2						,snake_case = 1						,snake_case = 0.0						,snake_case = 1						,snake_case = True						,snake_case = True						,snake_case = 1e-5						,snake_case = "gelu"						,snake_case = 0.02						,snake_case = 1e-12						,snake_case = 224						,snake_case = 1e-05						,**snake_case						,):



           '''simple docstring'''







           super().__init__(**_A )

           lowercase				:	Dict			      = hidden_act
           lowercase				:	List[str]			      = hidden_dropout_prob
           lowercase				:	List[str]			      = hidden_sizes
           lowercase				:	int			      = num_hidden_layers
           lowercase				:	List[str]			      = num_attention_heads
           lowercase				:	Dict			      = initializer_range
           lowercase				:	Dict			      = layer_norm_eps
           lowercase				:	Optional[int]			      = patch_size
           lowercase				:	Any			      = num_channels
           lowercase				:	Any			      = depths
           lowercase				:	Optional[int]			      = mlp_expansion_ratio
           lowercase				:	Union[str, Any]			      = downsamples
           lowercase				:	Any			      = dim
           lowercase				:	Optional[int]			      = key_dim
           lowercase				:	int			      = attention_ratio
           lowercase				:	Union[str, Any]			      = resolution
           lowercase				:	Union[str, Any]			      = pool_size
           lowercase				:	Dict			      = downsample_patch_size
           lowercase				:	int			      = downsample_stride
           lowercase				:	Optional[Any]			      = downsample_pad
           lowercase				:	Union[str, Any]			      = drop_path_rate
           lowercase				:	Optional[Any]			      = num_metaad_blocks
           lowercase				:	Optional[int]			      = distillation
           lowercase				:	Union[str, Any]			      = use_layer_scale
           lowercase				:	Optional[int]			      = layer_scale_init_value
           lowercase				:	str			      = image_size
           lowercase				:	str			      = batch_norm_eps








'''simple docstring'''





import warnings

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


_UpperCamelCase						:						Optional[Any]  =					logging.get_logger(__name__)

_UpperCamelCase						:						Dict  =					{
    'RUCAIBox/mvp': 'https://huggingface.co/RUCAIBox/mvp/resolve/main/config.json',
}


class  snake_case__      (					UpperCamelCase):
					a_        =					"mvp"
					a_        =					["past_key_values"]
					a_        =					{"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}




					def __init__(  self  :		Any				, _A  :		List[str]=5_02_67				, _A  :		Dict=10_24				, _A  :		List[str]=12				, _A  :		Dict=40_96				, _A  :		Optional[int]=16				, _A  :		Optional[Any]=12				, _A  :		int=40_96				, _A  :		Dict=16				, _A  :		Union[str, Any]=0.0				, _A  :		Optional[Any]=0.0				, _A  :		int="gelu"				, _A  :		Union[str, Any]=10_24				, _A  :		int=0.1				, _A  :		Optional[Any]=0.0				, _A  :		Optional[Any]=0.0				, _A  :		Optional[Any]=0.02				, _A  :		Optional[Any]=0.0				, _A  :		str=False				, _A  :		List[Any]=True				, _A  :		Optional[int]=1				, _A  :		Tuple=0				, _A  :		Dict=2				, _A  :		Dict=True				, _A  :		int=2				, _A  :		Tuple=2				, _A  :		List[str]=False				, _A  :		Any=1_00				, _A  :		Union[str, Any]=8_00				, **_A  :		List[str]				, )    ->							int:
								UpperCAmelCase_      :       Union[str, Any]          =       vocab_size
								UpperCAmelCase_      :       int          =       max_position_embeddings
								UpperCAmelCase_      :       Dict          =       d_model
								UpperCAmelCase_      :       Dict          =       encoder_ffn_dim
								UpperCAmelCase_      :       Optional[Any]          =       encoder_layers
								UpperCAmelCase_      :       Tuple          =       encoder_attention_heads
								UpperCAmelCase_      :       List[Any]          =       decoder_ffn_dim
								UpperCAmelCase_      :       List[Any]          =       decoder_layers
								UpperCAmelCase_      :       Dict          =       decoder_attention_heads
								UpperCAmelCase_      :       str          =       dropout
								UpperCAmelCase_      :       Optional[Any]          =       attention_dropout
								UpperCAmelCase_      :       Optional[Any]          =       activation_dropout
								UpperCAmelCase_      :       Union[str, Any]          =       activation_function
								UpperCAmelCase_      :       Union[str, Any]          =       init_std
								UpperCAmelCase_      :       Optional[int]          =       encoder_layerdrop
								UpperCAmelCase_      :       Optional[int]          =       decoder_layerdrop
								UpperCAmelCase_      :       Dict          =       classifier_dropout
								UpperCAmelCase_      :       List[Any]          =       use_cache
								UpperCAmelCase_      :       Dict          =       encoder_layers
								UpperCAmelCase_      :       Tuple          =       scale_embedding  # scale factor will be sqrt(d_model) if True
								UpperCAmelCase_      :       int          =       use_prompt
								UpperCAmelCase_      :       Tuple          =       prompt_length
								UpperCAmelCase_      :       str          =       prompt_mid_dim

								super().__init__(
								    pad_token_id=_A				, bos_token_id=_A				, eos_token_id=_A				, is_encoder_decoder=_A				, decoder_start_token_id=_A				, forced_eos_token_id=_A				, **_A				, )

								if self.forced_bos_token_id is None and kwargs.get('''force_bos_token_to_be_generated'''				, _A      ):
											UpperCAmelCase_      :       Optional[Any]          =       self.bos_token_id
											warnings.warn(
											    F"Please make sure the config includes `forced_bos_token_id={self.bos_token_id}` in future versions. "
											    '''The config can simply be saved and uploaded again to be fixed.'''      )


