






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


__UpperCamelCase      :      int     						=						logging.get_logger(__name__)

__UpperCamelCase      :      Union[str, Any]     						=						{
    """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        __UpperCamelCase    (     _UpperCamelCase   ):
	__snake_case	:Optional[Any]   =       'falcon'
	__snake_case	:Tuple   =       ['past_key_values']







	def __init__(  self      :							List[Any]       ,				_lowerCAmelCase      :							int=6_5024       ,				_lowerCAmelCase      :							int=4544       ,				_lowerCAmelCase      :							List[Any]=32       ,				_lowerCAmelCase      :							str=71       ,				_lowerCAmelCase      :							Optional[Any]=1e-5       ,				_lowerCAmelCase      :							List[Any]=0.02       ,				_lowerCAmelCase      :							Any=True       ,				_lowerCAmelCase      :							Optional[int]=0.0       ,				_lowerCAmelCase      :							str=0.0       ,				_lowerCAmelCase      :							Optional[int]=None       ,				_lowerCAmelCase      :							Optional[int]=False       ,				_lowerCAmelCase      :							int=False       ,				_lowerCAmelCase      :							Union[str, Any]=True       ,				_lowerCAmelCase      :							List[Any]=True       ,				_lowerCAmelCase      :							str=False       ,				_lowerCAmelCase      :							Union[str, Any]=11       ,				_lowerCAmelCase      :							Optional[Any]=11       ,				**_lowerCAmelCase      :							Union[str, Any]       ,				)		-> Tuple:
		"""simple docstring"""







		__lowercase             =  vocab_size
		# Backward compatibility with n_embed kwarg
		__lowercase             =  kwargs.pop("""n_embed"""       ,				_lowerCAmelCase			)
		__lowercase             =  hidden_size if n_embed is None else n_embed
		__lowercase             =  num_hidden_layers
		__lowercase             =  num_attention_heads
		__lowercase             =  layer_norm_epsilon
		__lowercase             =  initializer_range
		__lowercase             =  use_cache
		__lowercase             =  hidden_dropout
		__lowercase             =  attention_dropout

		__lowercase             =  bos_token_id
		__lowercase             =  eos_token_id
		__lowercase             =  num_attention_heads if num_kv_heads is None else num_kv_heads
		__lowercase             =  alibi
		__lowercase             =  new_decoder_architecture
		__lowercase             =  multi_query  # Ignored when new_decoder_architecture is True
		__lowercase             =  parallel_attn
		__lowercase             =  bias

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







	@property
	def  _a   (  self      :							Any			)		-> List[str]:
		"""simple docstring"""







		return self.hidden_size // self.num_attention_heads







	@property
	def  _a   (  self      :							Union[str, Any]			)		-> Optional[Any]:
		"""simple docstring"""







		return not self.alibi










from __future__ import annotations





def 				snake_case  (     lowerCamelCase					):




	'''simple docstring'''







	if not nums:
		return 0
	__lowercase             =  nums[0]
	__lowercase             =  0
	for num in nums[1:]:
		__lowercase       ,						__lowercase             =  (
		    max_excluding + num,
		    max(lowerCamelCase				,  lowerCamelCase					),
		)
	return max(lowerCamelCase				,  lowerCamelCase					)


if __name__ == "__main__":
						import doctest

						doctest.testmod()

