






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


UpperCAmelCase_ :						List[Any]      =      logging.get_logger(__name__)

UpperCAmelCase_ :						List[str]      =      {
    '''tiiuae/falcon-40b''': '''https://huggingface.co/tiiuae/falcon-40b/resolve/main/config.json''',
    '''tiiuae/falcon-7b''': '''https://huggingface.co/tiiuae/falcon-7b/resolve/main/config.json''',
}

class     _SCREAMING_SNAKE_CASE       (			_a      ):
	snake_case__							:     int     	=  """falcon"""
	snake_case__							:     Dict     	=  ["""past_key_values"""]





	def __init__(		self				:					List[Any] ,  __lowerCamelCase				:					List[str]=65_024 ,  __lowerCamelCase				:					str=4_544 ,  __lowerCamelCase				:					int=32 ,  __lowerCamelCase				:					str=71 ,  __lowerCamelCase				:					Union[str, Any]=1E-5 ,  __lowerCamelCase				:					Tuple=0.02 ,  __lowerCamelCase				:					Dict=True ,  __lowerCamelCase				:					Optional[int]=0.0 ,  __lowerCamelCase				:					Optional[Any]=0.0 ,  __lowerCamelCase				:					List[str]=None ,  __lowerCamelCase				:					str=False ,  __lowerCamelCase				:					Any=False ,  __lowerCamelCase				:					Dict=True ,  __lowerCamelCase				:					Tuple=True ,  __lowerCamelCase				:					Tuple=False ,  __lowerCamelCase				:					int=11 ,  __lowerCamelCase				:					Tuple=11 ,  **__lowerCamelCase				:					Union[str, Any] ,  ):
		UpperCamelCase     :List[Any]          =	vocab_size
		# Backward compatibility with n_embed kwarg
		UpperCamelCase     :Any          =	kwargs.pop("""n_embed""" ,  snake_case_	)
		UpperCamelCase     :Optional[int]          =	hidden_size if n_embed is None else n_embed
		UpperCamelCase     :List[str]          =	num_hidden_layers
		UpperCamelCase     :Tuple          =	num_attention_heads
		UpperCamelCase     :Tuple          =	layer_norm_epsilon
		UpperCamelCase     :Optional[Any]          =	initializer_range
		UpperCamelCase     :List[str]          =	use_cache
		UpperCamelCase     :Optional[int]          =	hidden_dropout
		UpperCamelCase     :Tuple          =	attention_dropout

		UpperCamelCase     :Optional[int]          =	bos_token_id
		UpperCamelCase     :List[str]          =	eos_token_id
		UpperCamelCase     :Dict          =	num_attention_heads if num_kv_heads is None else num_kv_heads
		UpperCamelCase     :Optional[Any]          =	alibi
		UpperCamelCase     :List[Any]          =	new_decoder_architecture
		UpperCamelCase     :int          =	multi_query  # Ignored when new_decoder_architecture is True
		UpperCamelCase     :Optional[Any]          =	parallel_attn
		UpperCamelCase     :int          =	bias

		super().__init__(bos_token_id=snake_case_ ,  eos_token_id=snake_case_ ,  **snake_case_	)





	@property
	def 						_A (		self				:					Any	):
		return self.hidden_size // self.num_attention_heads





	@property
	def 						_A (		self				:					str	):
		return not self.alibi





'''simple docstring'''





from transformers import BertTokenizerFast

from .custom_tokenization import CustomTokenizer







class     UpperCAmelCase_       (       _a	):
    """simple docstring"""







    lowercase					=		CustomTokenizer
    pass
