

import json
import sys


def   __SCREAMING_SNAKE_CASE					(SCREAMING_SNAKE_CASE__  ,		SCREAMING_SNAKE_CASE__       ):
						with open(SCREAMING_SNAKE_CASE__  ,		encoding='''utf-8'''       ) as f:
												snake_case_   =	json.load(SCREAMING_SNAKE_CASE__       )

						snake_case_   =	['''<details>''', '''<summary>Show updated benchmarks!</summary>''', ''' ''']

						for benchmark_name in sorted(SCREAMING_SNAKE_CASE__       ):
												snake_case_   =	results[benchmark_name]

												snake_case_   =	benchmark_name.split('''/'''       )[-1]
												output_md.append(F'''### Benchmark: {benchmark_file_name}'''       )

												snake_case_   =	'''| metric |'''
												snake_case_   =	'''|--------|'''
												snake_case_   =	'''| new / old (diff) |'''
												for metric_name in sorted(SCREAMING_SNAKE_CASE__       ):
																		snake_case_   =	benchmark_res[metric_name]
																		snake_case_   =	metric_vals['''new''']
																		snake_case_   =	metric_vals.get('''old'''  ,		SCREAMING_SNAKE_CASE__       )
																		snake_case_   =	metric_vals.get('''diff'''  ,		SCREAMING_SNAKE_CASE__       )

																		snake_case_   =	F''' {new_val:f}''' if isinstance(SCREAMING_SNAKE_CASE__  ,		(int, float)       ) else '''None'''

																		if old_val is not None:
																								val_str += F''' / {old_val:f}''' if isinstance(SCREAMING_SNAKE_CASE__  ,		(int, float)       ) else "None"
																		if dif_val is not None:
																								val_str += F''' ({dif_val:f})''' if isinstance(SCREAMING_SNAKE_CASE__  ,		(int, float)       ) else "None"

																		title += " " + metric_name + " |"
																		lines += "---|"
																		value += val_str + " |"

												output_md += [title, lines, value, " "]

						output_md.append('''</details>'''       )

						with open(SCREAMING_SNAKE_CASE__  ,		'''w'''  ,		encoding='''utf-8'''       ) as f:
												f.writelines('''\n'''.join(SCREAMING_SNAKE_CASE__       )       )


if __name__ == "__main__":
					lowerCAmelCase_       	=	sys.argv[1]
					lowerCAmelCase_       	=	sys.argv[2]

					format_json_to_md(input_json_file, output_md_file)





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


snake_case_ : Any    		=       logging.get_logger(__name__)

snake_case_ : Optional[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 __snake_case			(			a		):
   UpperCAmelCase__  :    Optional[Any]          =  '''falcon'''
   UpperCAmelCase__  :    List[Any]          =  ['''past_key_values''']







   def __init__(      self		:						Union[str, Any]					,						_snake_case		:						List[str]=65024					,						_snake_case		:						int=4544					,						_snake_case		:						int=32					,						_snake_case		:						Any=71					,						_snake_case		:						int=1e-5					,						_snake_case		:						Dict=0.0_2					,						_snake_case		:						int=True					,						_snake_case		:						List[Any]=0.0					,						_snake_case		:						Tuple=0.0					,						_snake_case		:						int=None					,						_snake_case		:						Tuple=False					,						_snake_case		:						Any=False					,						_snake_case		:						str=True					,						_snake_case		:						Any=True					,						_snake_case		:						List[str]=False					,						_snake_case		:						Tuple=11					,						_snake_case		:						Dict=11					,						**_snake_case		:						Optional[int]					,						):

        """simple docstring"""


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

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

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







   @property
   def lowerCamelCase						(      self		:						List[Any]):

        """simple docstring"""


        return self.hidden_size // self.num_attention_heads







   @property
   def lowerCamelCase						(      self		:						Union[str, Any]):

        """simple docstring"""


        return not self.alibi






