






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


__a:     List[str]   					=					logging.get_logger(__name__)

__a:     Any   					=					{
    '''tanreinama/GPTSAN-2.8B-spout_is_uniform''': (
        '''https://huggingface.co/tanreinama/GPTSAN-2.8B-spout_is_uniform/resolve/main/config.json'''
    ),
}
class 		SCREAMING_SNAKE_CASE__	(  UpperCAmelCase     ):

  '''simple docstring'''







  _lowerCamelCase    =  '''gptsan-japanese'''
  _lowerCamelCase    =  [
      '''past_key_values''',
  ]
  _lowerCamelCase    =  {
      '''hidden_size''': '''d_model''',
      '''num_attention_heads''': '''num_heads''',
      '''num_hidden_layers''': '''num_layers''',
  }


  def __init__(      self		:			List[Any]       ,				lowerCamelCase		:			Union[str, Any]=3_6000       ,				lowerCamelCase		:			Optional[int]=1280       ,				lowerCamelCase		:			str=1024       ,				lowerCamelCase		:			Dict=8192       ,				lowerCamelCase		:			int=4096       ,				lowerCamelCase		:			Union[str, Any]=128       ,				lowerCamelCase		:			Optional[int]=10       ,				lowerCamelCase		:			Dict=0       ,				lowerCamelCase		:			int=16       ,				lowerCamelCase		:			List[str]=16       ,				lowerCamelCase		:			Tuple=128       ,				lowerCamelCase		:			Any=0.0       ,				lowerCamelCase		:			int=1E-5       ,				lowerCamelCase		:			Optional[int]=False       ,				lowerCamelCase		:			Optional[Any]=0.0       ,				lowerCamelCase		:			Tuple="float32"       ,				lowerCamelCase		:			Optional[Any]=False       ,				lowerCamelCase		:			Any=False       ,				lowerCamelCase		:			Dict=False       ,				lowerCamelCase		:			List[str]=0.002       ,				lowerCamelCase		:			Any=False       ,				lowerCamelCase		:			str=True       ,				lowerCamelCase		:			Dict=3_5998       ,				lowerCamelCase		:			Union[str, Any]=3_5995       ,				lowerCamelCase		:			Optional[Any]=3_5999       ,				**lowerCamelCase		:			Union[str, Any]       ,				)						->	Dict:


         """simple docstring"""
         _UpperCAmelCase							=    vocab_size
         _UpperCAmelCase							=    max_position_embeddings
         _UpperCAmelCase							=    d_model
         _UpperCAmelCase							=    d_ff
         _UpperCAmelCase							=    d_ext
         _UpperCAmelCase							=    d_spout
         _UpperCAmelCase							=    num_switch_layers
         _UpperCAmelCase							=    num_ext_layers
         _UpperCAmelCase							=    num_switch_layers + num_ext_layers
         _UpperCAmelCase							=    num_heads
         _UpperCAmelCase							=    num_experts
         _UpperCAmelCase							=    expert_capacity
         _UpperCAmelCase							=    dropout_rate
         _UpperCAmelCase							=    layer_norm_epsilon
         _UpperCAmelCase							=    router_bias
         _UpperCAmelCase							=    router_jitter_noise
         _UpperCAmelCase							=    router_dtype
         _UpperCAmelCase							=    router_ignore_padding_tokens
         _UpperCAmelCase							=    output_hidden_states
         _UpperCAmelCase							=    output_attentions
         _UpperCAmelCase							=    initializer_factor
         _UpperCAmelCase							=    output_router_logits
         _UpperCAmelCase							=    use_cache

         super().__init__(
             separator_token_id=lowerCamelCase       ,				pad_token_id=lowerCamelCase       ,				eos_token_id=lowerCamelCase       ,				**lowerCamelCase       ,				)







def       _SCREAMING_SNAKE_CASE (							__snake_case = 1_0_0_0 )				->						int:
       _UpperCAmelCase	,			_UpperCAmelCase							=    1, 1
       _UpperCAmelCase							=    []
       for i in range(1   ,      n + 1 ):
              _UpperCAmelCase							=    prev_numerator + 2 * prev_denominator
              _UpperCAmelCase							=    prev_numerator + prev_denominator
              if len(str(__snake_case ) ) > len(str(__snake_case ) ):
                     result.append(__snake_case )
              _UpperCAmelCase							=    numerator
              _UpperCAmelCase							=    denominator

       return len(__snake_case )


if __name__ == "__main__":
  print(F"{solution() = }")