'''simple docstring'''

from collections import OrderedDict
from typing import Any, List, Mapping, Optional

from ... import PreTrainedTokenizer, TensorType, is_torch_available
from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfigWithPast, PatchingSpec
from ...utils import logging


lowercase_     		= logging.get_logger(__name__)

lowercase_     		= {
    '''EleutherAI/gpt-j-6B''': '''https://huggingface.co/EleutherAI/gpt-j-6B/resolve/main/config.json''',
    # See all GPT-J models at https://huggingface.co/models?filter=gpt_j
}
class   SCREAMING_SNAKE_CASE			(						__lowercase):







		"""simple docstring"""
		lowercase   :      Union[str, Any]       =							'gptj'
		lowercase   :      Tuple       =							{
		    'max_position_embeddings': 'n_positions',
		    'hidden_size': 'n_embd',
		    'num_attention_heads': 'n_head',
		    'num_hidden_layers': 'n_layer',
		}






		def __init__(   self		,						__A=5_0400		,						__A=2048		,						__A=4096		,						__A=28		,						__A=16		,						__A=64		,						__A=None		,						__A="gelu_new"		,						__A=0.0		,						__A=0.0		,						__A=0.0		,						__A=1E-5		,						__A=0.02		,						__A=True		,						__A=5_0256		,						__A=5_0256		,						__A=False		,						**__A		,						) ->     Union[str, Any]:
								_lowerCAmelCase										=vocab_size
								_lowerCAmelCase										=n_positions
								_lowerCAmelCase										=n_embd
								_lowerCAmelCase										=n_layer
								_lowerCAmelCase										=n_head
								_lowerCAmelCase										=n_inner
								_lowerCAmelCase										=rotary_dim
								_lowerCAmelCase										=activation_function
								_lowerCAmelCase										=resid_pdrop
								_lowerCAmelCase										=embd_pdrop
								_lowerCAmelCase										=attn_pdrop
								_lowerCAmelCase										=layer_norm_epsilon
								_lowerCAmelCase										=initializer_range
								_lowerCAmelCase										=use_cache

								_lowerCAmelCase										=bos_token_id
								_lowerCAmelCase										=eos_token_id

								super().__init__(
								    bos_token_id=__A		,						eos_token_id=__A		,						tie_word_embeddings=__A		,						**__A				)

class   SCREAMING_SNAKE_CASE			(						__lowercase):







		"""simple docstring"""






		def __init__(   self		,						__A		,						__A = "default"		,						__A = None		,						__A = False		,						) ->     Dict:
								super().__init__(__A		,						task=__A		,						patching_specs=__A		,						use_past=__A				)
								if not getattr(self._config		,						'pad_token_id'		,						__A				):
														# TODO: how to do that better?
														_lowerCAmelCase										=0






		@property
		def 		UpperCamelCase__       (   self				) ->     Mapping[str, Mapping[int, str]]:
								_lowerCAmelCase										=OrderedDict({'input_ids': {0: 'batch', 1: 'sequence'}}				)
								if self.use_past:
														self.fill_with_past_key_values_(__A		,						direction='inputs'				)
														_lowerCAmelCase										={0: 'batch', 1: 'past_sequence + sequence'}
								else:
														_lowerCAmelCase										={0: 'batch', 1: 'sequence'}

								return common_inputs






		@property
		def 		UpperCamelCase__       (   self				) ->     int:
								return self._config.n_layer






		@property
		def 		UpperCamelCase__       (   self				) ->     int:
								return self._config.n_head






		def 		UpperCamelCase__       (   self		,						__A		,						__A = -1		,						__A = -1		,						__A = False		,						__A = None		,						) ->     Mapping[str, Any]:
								_lowerCAmelCase										=super(__A		,						self				).generate_dummy_inputs(
								    __A		,						batch_size=__A		,						seq_length=__A		,						is_pair=__A		,						framework=__A				)

								# We need to order the input in the way they appears in the forward()
								_lowerCAmelCase										=OrderedDict({'input_ids': common_inputs['input_ids']}				)

								# Need to add the past_keys
								if self.use_past:
														if not is_torch_available():
																				raise ValueError('Cannot generate dummy past_keys inputs without PyTorch installed.'				)
														else:
																				import torch

																				_lowerCAmelCase						,				_lowerCAmelCase										=common_inputs['input_ids'].shape
																				# Not using the same length for past_key_values
																				_lowerCAmelCase										=seqlen + 2
																				_lowerCAmelCase										=(
																				    batch,
																				    self.num_attention_heads,
																				    past_key_values_length,
																				    self._config.hidden_size // self.num_attention_heads,
																				)
																				_lowerCAmelCase										=[
																				    (torch.zeros(__A				), torch.zeros(__A				)) for _ in range(self.num_layers				)
																				]

								_lowerCAmelCase										=common_inputs['attention_mask']
								if self.use_past:
														_lowerCAmelCase										=ordered_inputs['attention_mask'].dtype
														_lowerCAmelCase										=torch.cat(
														    [ordered_inputs['attention_mask'], torch.ones(__A		,						__A		,						dtype=__A				)]		,						dim=1				)

								return ordered_inputs






		@property
		def 		UpperCamelCase__       (   self				) ->     int:
								return 13






'''simple docstring'''

from . import __version__

# Backward compatibility imports, to make sure all those objects can be found in file_utils
from .utils import (
    CLOUDFRONT_DISTRIB_PREFIX,
    CONFIG_NAME,
    DISABLE_TELEMETRY,
    DUMMY_INPUTS,
    DUMMY_MASK,
    ENV_VARS_TRUE_AND_AUTO_VALUES,
    ENV_VARS_TRUE_VALUES,
    FEATURE_EXTRACTOR_NAME,
    FLAX_WEIGHTS_NAME,
    HF_MODULES_CACHE,
    HUGGINGFACE_CO_PREFIX,
    HUGGINGFACE_CO_RESOLVE_ENDPOINT,
    MODEL_CARD_NAME,
    MULTIPLE_CHOICE_DUMMY_INPUTS,
    PYTORCH_PRETRAINED_BERT_CACHE,
    PYTORCH_TRANSFORMERS_CACHE,
    S3_BUCKET_PREFIX,
    SENTENCEPIECE_UNDERLINE,
    SPIECE_UNDERLINE,
    TF2_WEIGHTS_NAME,
    TF_WEIGHTS_NAME,
    TORCH_FX_REQUIRED_VERSION,
    TRANSFORMERS_CACHE,
    TRANSFORMERS_DYNAMIC_MODULE_NAME,
    USE_JAX,
    USE_TF,
    USE_TORCH,
    WEIGHTS_INDEX_NAME,
    WEIGHTS_NAME,
    ContextManagers,
    DummyObject,
    EntryNotFoundError,
    ExplicitEnum,
    ModelOutput,
    PaddingStrategy,
    PushToHubMixin,
    RepositoryNotFoundError,
    RevisionNotFoundError,
    TensorType,
    _LazyModule,
    add_code_sample_docstrings,
    add_end_docstrings,
    add_start_docstrings,
    add_start_docstrings_to_model_forward,
    cached_property,
    copy_func,
    default_cache_path,
    define_sagemaker_information,
    get_cached_models,
    get_file_from_repo,
    get_full_repo_name,
    get_torch_version,
    has_file,
    http_user_agent,
    is_apex_available,
    is_bsa_available,
    is_coloredlogs_available,
    is_datasets_available,
    is_detectrona_available,
    is_faiss_available,
    is_flax_available,
    is_ftfy_available,
    is_in_notebook,
    is_ipex_available,
    is_librosa_available,
    is_offline_mode,
    is_onnx_available,
    is_pandas_available,
    is_phonemizer_available,
    is_protobuf_available,
    is_psutil_available,
    is_pyanvml_available,
    is_pyctcdecode_available,
    is_pytesseract_available,
    is_pytorch_quantization_available,
    is_rjieba_available,
    is_sagemaker_dp_enabled,
    is_sagemaker_mp_enabled,
    is_scipy_available,
    is_sentencepiece_available,
    is_seqio_available,
    is_sklearn_available,
    is_soundfile_availble,
    is_spacy_available,
    is_speech_available,
    is_tensor,
    is_tensorflow_probability_available,
    is_tfaonnx_available,
    is_tf_available,
    is_timm_available,
    is_tokenizers_available,
    is_torch_available,
    is_torch_bfaa_available,
    is_torch_cuda_available,
    is_torch_fx_available,
    is_torch_fx_proxy,
    is_torch_mps_available,
    is_torch_tfaa_available,
    is_torch_tpu_available,
    is_torchaudio_available,
    is_training_run_on_sagemaker,
    is_vision_available,
    replace_return_docstrings,
    requires_backends,
    to_numpy,
    to_py_obj,
    torch_only_method,
)





