
"""simple docstring"""





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


_a	 =							logging.get_logger(__name__)

_a	 =							{
    'facebook/opt-125m': 'https://huggingface.co/facebook/opt-125m/blob/main/config.json',
    'facebook/opt-350m': 'https://huggingface.co/facebook/opt-350m/blob/main/config.json',
    'facebook/opt-1.3b': 'https://huggingface.co/facebook/opt-1.3b/blob/main/config.json',
    'facebook/opt-2.7b': 'https://huggingface.co/facebook/opt-2.7b/blob/main/config.json',
    'facebook/opt-6.7b': 'https://huggingface.co/facebook/opt-6.7b/blob/main/config.json',
    'facebook/opt-13b': 'https://huggingface.co/facebook/opt-13b/blob/main/config.json',
}


class A_			(lowercase__   ):




		'''simple docstring'''
		SCREAMING_SNAKE_CASE__    :		Optional[Any]						  =	"""opt"""
		SCREAMING_SNAKE_CASE__    :		Optional[int]						  =	["""past_key_values"""]







		def __init__(	self       ,     lowercase_=5_0272       ,     lowercase_=768       ,     lowercase_=12       ,     lowercase_=3072       ,     lowercase_=2048       ,     lowercase_=True       ,     lowercase_=False       ,     lowercase_=None       ,     lowercase_=0.1       ,     lowercase_=0.0       ,     lowercase_=12       ,     lowercase_="relu"       ,     lowercase_=0.0       ,     lowercase_=0.02       ,     lowercase_=True       ,     lowercase_=1       ,     lowercase_=2       ,     lowercase_=2       ,     lowercase_=True       ,     lowercase_=True       ,     **lowercase_       ,     ):

					"""simple docstring"""
					super().__init__(
					    pad_token_id=lowercase_       ,     bos_token_id=lowercase_       ,     eos_token_id=lowercase_       ,     **lowercase_       ,     )
					UpperCAmelCase_      :      int      =					vocab_size
					UpperCAmelCase_      :      Optional[int]      =					max_position_embeddings
					UpperCAmelCase_      :      Union[str, Any]      =					num_attention_heads
					UpperCAmelCase_      :      List[str]      =					word_embed_proj_dim if word_embed_proj_dim is not None else hidden_size
					UpperCAmelCase_      :      Tuple      =					ffn_dim
					UpperCAmelCase_      :      Optional[int]      =					hidden_size
					UpperCAmelCase_      :      int      =					num_hidden_layers
					UpperCAmelCase_      :      Optional[Any]      =					dropout
					UpperCAmelCase_      :      Union[str, Any]      =					attention_dropout
					UpperCAmelCase_      :      str      =					activation_function
					UpperCAmelCase_      :      Optional[int]      =					init_std
					UpperCAmelCase_      :      Optional[Any]      =					layerdrop
					UpperCAmelCase_      :      Union[str, Any]      =					use_cache
					UpperCAmelCase_      :      Any      =					do_layer_norm_before
					# We keep these variables at `True` for backward compatibility.
					UpperCAmelCase_      :      Optional[int]      =					enable_bias
					UpperCAmelCase_      :      Optional[Any]      =					layer_norm_elementwise_affine

					# Note that the only purpose of `_remove_final_layer_norm` is to keep backward compatibility
					# with checkpoints that have been fine-tuned before transformers v4.20.1
					# see https://github.com/facebookresearch/metaseq/pull/164
					UpperCAmelCase_      :      Any      =					_remove_final_layer_norm




"""simple docstring"""





from .hash_table import HashTable


class A_			(lowercase__   ):




  '''simple docstring'''







  def __init__(	self       ,     *lowercase_       ,     **lowercase_						):

     """simple docstring"""
     super().__init__(*lowercase_       ,     **lowercase_						)







  def  UpperCamelCase__      (	self       ,     lowercase_       ,     lowercase_=None						):

     """simple docstring"""
     UpperCAmelCase_      :      Tuple      =					1
     UpperCAmelCase_      :      List[str]      =					self.hash_function(key + i * i						)

     while self.values[new_key] is not None and self.values[new_key] != key:
        i += 1
        UpperCAmelCase_      :      List[Any]      =					(
            self.hash_function(key + i * i						)
            if not self.balanced_factor() >= self.lim_charge
            else None
        )

        if new_key is None:
           break

     return new_key


