
'''simple docstring'''





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


A           =   logging.get_logger(__name__)

A           =   {
    '''openbmb/cpm-ant-10b''': '''https://huggingface.co/openbmb/cpm-ant-10b/blob/main/config.json'''
    # See all CPMAnt models at https://huggingface.co/models?filter=cpmant
}



class  lowerCAmelCase__   (       UpperCamelCase       ):



  '''simple docstring'''






  _UpperCamelCase						= "cpmant"

  def __init__(self  : int	, lowerCAmelCase_  : int = 3_07_20	, lowerCAmelCase_  : int = 40_96	, lowerCAmelCase_  : int = 32	, lowerCAmelCase_  : int = 1_28	, lowerCAmelCase_  : int = 1_02_40	, lowerCAmelCase_  : int = 48	, lowerCAmelCase_  : int = 0.0	, lowerCAmelCase_  : int = 5_12	, lowerCAmelCase_  : int = 20_48	, lowerCAmelCase_  : int = 1E-6	, lowerCAmelCase_  : float = 1.0	, lowerCAmelCase_  : int = 32	, lowerCAmelCase_  : int = 32	, lowerCAmelCase_  : int = 32	, lowerCAmelCase_  : bool = True	, **lowerCAmelCase_  : Dict	, )   ->       Optional[int]:
        super().__init__(**UpperCAmelCase_    )
        snake_case_						       =							prompt_types
        snake_case_						       =							prompt_length
        snake_case_						       =							segment_types
        snake_case_						       =							hidden_size
        snake_case_						       =							num_attention_heads
        snake_case_						       =							dim_head
        snake_case_						       =							dim_ff
        snake_case_						       =							num_hidden_layers
        snake_case_						       =							position_bias_num_buckets
        snake_case_						       =							position_bias_max_distance
        snake_case_						       =							dropout_p
        snake_case_						       =							eps
        snake_case_						       =							use_cache
        snake_case_						       =							vocab_size
        snake_case_						       =							init_std



'''simple docstring'''





def   snake_case_       (							_a     :							List[str] ,					_a     :							List[str]			):
      snake_case_						       =							1
      while b > 0:
            if b & 1:
                  res *= a

            a *= a
            b >>= 1

      return res
def   snake_case_       (							_a     :							Union[str, Any] ,					_a     :							Tuple ,					_a     :							Optional[Any]			):
      snake_case_						       =							1
      while b > 0:
            if b & 1:
                  snake_case_						       =							((res % c) * (a % c)) % c

            a *= a
            b >>= 1

      return res

