


import copy

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


_UpperCAmelCase			:  str     =logging.get_logger(__name__)







class 				snake_case__(							UpperCAmelCase__							):







						'''simple docstring'''




						SCREAMING_SNAKE_CASE__      :  Optional[int]					=							"""encoder-decoder"""
						SCREAMING_SNAKE_CASE__      :  str					=							True




						def __init__(				self   ,						**__lowercase							)					->    Union[str, Any]:
										super().__init__(**__lowercase							)
										assert (
										    "encoder" in kwargs and "decoder" in kwargs
										), "Config has to be initialized with encoder and decoder config"
										lowerCAmelCase_ :      str    				=				kwargs.pop('''encoder'''							)
										lowerCAmelCase_ :      int    				=				encoder_config.pop('''model_type'''							)
										lowerCAmelCase_ :      Optional[Any]    				=				kwargs.pop('''decoder'''							)
										lowerCAmelCase_ :      Optional[Any]    				=				decoder_config.pop('''model_type'''							)

										from ..auto.configuration_auto import AutoConfig

										lowerCAmelCase_ :      Union[str, Any]    				=				AutoConfig.for_model(__lowercase   ,						**__lowercase							)
										lowerCAmelCase_ :      List[str]    				=				AutoConfig.for_model(__lowercase   ,						**__lowercase							)
										lowerCAmelCase_ :      Any    				=				True




						@classmethod
						def 						lowercase_ (				cls   ,						__lowercase   ,						__lowercase   ,						**__lowercase							)					->    PretrainedConfig:
										logger.info('''Set `config.is_decoder=True` and `config.add_cross_attention=True` for decoder_config'''							)
										lowerCAmelCase_ :      int    				=				True
										lowerCAmelCase_ :      List[Any]    				=				True

										return cls(encoder=encoder_config.to_dict()   ,						decoder=decoder_config.to_dict()   ,						**__lowercase							)




						def 						lowercase_ (				self							)					->    Any:
										lowerCAmelCase_ :      Optional[Any]    				=				copy.deepcopy(self.__dict__							)
										lowerCAmelCase_ :      List[str]    				=				self.encoder.to_dict()
										lowerCAmelCase_ :      Dict    				=				self.decoder.to_dict()
										lowerCAmelCase_ :      Optional[Any]    				=				self.__class__.model_type
										return output



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


_UpperCAmelCase			:  Optional[int]     =logging.get_logger(__name__)

_UpperCAmelCase			:  Union[str, Any]     ={
    """abeja/gpt-neox-japanese-2.7b""": """https://huggingface.co/abeja/gpt-neox-japanese-2.7b/resolve/main/config.json""",
}







class 				snake_case__(							UpperCAmelCase__							):







						'''simple docstring'''




						SCREAMING_SNAKE_CASE__      :  str					=							"""gpt_neox_japanese"""




						def __init__(				self   ,						__lowercase=3_2_0_0_0   ,						__lowercase=2_5_6_0   ,						__lowercase=3_2   ,						__lowercase=3_2   ,						__lowercase=4   ,						__lowercase="gelu"   ,						__lowercase=1.00   ,						__lowercase=1_0_0_0_0   ,						__lowercase=2_0_4_8   ,						__lowercase=0.02   ,						__lowercase=1e-5   ,						__lowercase=True   ,						__lowercase=3_1_9_9_6   ,						__lowercase=3_1_9_9_9   ,						__lowercase=0.1   ,						__lowercase=0.0   ,						**__lowercase   ,						)					->    str:
										super().__init__(bos_token_id=__lowercase   ,						eos_token_id=__lowercase   ,						**__lowercase							)
										lowerCAmelCase_ :      Optional[Any]    				=				vocab_size
										lowerCAmelCase_ :      Tuple    				=				max_position_embeddings
										lowerCAmelCase_ :      Optional[Any]    				=				hidden_size
										lowerCAmelCase_ :      Optional[Any]    				=				num_hidden_layers
										lowerCAmelCase_ :      str    				=				num_attention_heads
										lowerCAmelCase_ :      str    				=				intermediate_multiple_size
										lowerCAmelCase_ :      str    				=				hidden_act
										lowerCAmelCase_ :      Dict    				=				rotary_pct
										lowerCAmelCase_ :      Union[str, Any]    				=				rotary_emb_base
										lowerCAmelCase_ :      int    				=				initializer_range
										lowerCAmelCase_ :      Any    				=				layer_norm_eps
										lowerCAmelCase_ :      Optional[Any]    				=				use_cache
										lowerCAmelCase_ :      Tuple    				=				attention_dropout
										lowerCAmelCase_ :      Dict    				=				hidden_dropout