


"""simple docstring"""
from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


__SCREAMING_SNAKE_CASE				:     Union[str, Any]		=     {
    "configuration_big_bird": ["BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP", "BigBirdConfig", "BigBirdOnnxConfig"],
}

try:
				if not is_sentencepiece_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE				:     Tuple		=     ["BigBirdTokenizer"]

try:
				if not is_tokenizers_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE				:     Tuple		=     ["BigBirdTokenizerFast"]

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE				:     str		=     [
				    "BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "BigBirdForCausalLM",
				    "BigBirdForMaskedLM",
				    "BigBirdForMultipleChoice",
				    "BigBirdForPreTraining",
				    "BigBirdForQuestionAnswering",
				    "BigBirdForSequenceClassification",
				    "BigBirdForTokenClassification",
				    "BigBirdLayer",
				    "BigBirdModel",
				    "BigBirdPreTrainedModel",
				    "load_tf_weights_in_big_bird",
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE				:     Any		=     [
				    "FlaxBigBirdForCausalLM",
				    "FlaxBigBirdForMaskedLM",
				    "FlaxBigBirdForMultipleChoice",
				    "FlaxBigBirdForPreTraining",
				    "FlaxBigBirdForQuestionAnswering",
				    "FlaxBigBirdForSequenceClassification",
				    "FlaxBigBirdForTokenClassification",
				    "FlaxBigBirdModel",
				    "FlaxBigBirdPreTrainedModel",
				]

if TYPE_CHECKING:
				from .configuration_big_bird import BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP, BigBirdConfig, BigBirdOnnxConfig

				try:
								if not is_sentencepiece_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_big_bird import BigBirdTokenizer

				try:
								if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .tokenization_big_bird_fast import BigBirdTokenizerFast

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_big_bird import (
								    BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST,
								    BigBirdForCausalLM,
								    BigBirdForMaskedLM,
								    BigBirdForMultipleChoice,
								    BigBirdForPreTraining,
								    BigBirdForQuestionAnswering,
								    BigBirdForSequenceClassification,
								    BigBirdForTokenClassification,
								    BigBirdLayer,
								    BigBirdModel,
								    BigBirdPreTrainedModel,
								    load_tf_weights_in_big_bird,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flax_big_bird import (
								    FlaxBigBirdForCausalLM,
								    FlaxBigBirdForMaskedLM,
								    FlaxBigBirdForMultipleChoice,
								    FlaxBigBirdForPreTraining,
								    FlaxBigBirdForQuestionAnswering,
								    FlaxBigBirdForSequenceClassification,
								    FlaxBigBirdForTokenClassification,
								    FlaxBigBirdModel,
								    FlaxBigBirdPreTrainedModel,
								)

else:
				import sys

				__SCREAMING_SNAKE_CASE				:     Union[str, Any]		=     _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)










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


__UpperCAmelCase			:  List[str]										=				logging.get_logger(__name__)

__UpperCAmelCase			:  int										=				{
    # pcqm4mv1 now deprecated
    "graphormer-base": "https://huggingface.co/clefourrier/graphormer-base-pcqm4mv2/resolve/main/config.json",
    # See all Graphormer models at https://huggingface.co/models?filter=graphormer
}







class        __snake_case			(				__lowerCamelCase     ):





       '''simple docstring'''







       lowerCAmelCase__ 						=	"""graphormer"""
       lowerCAmelCase__ 						=	["""past_key_values"""]




       def __init__(    self					:       List[Any]				,							A					:       int = 1				,							A					:       int = 512 * 9				,							A					:       int = 512 * 3				,							A					:       int = 512				,							A					:       int = 512				,							A					:       int = 512				,							A					:       int = 128				,							A					:       int = 5				,							A					:       int = 1_024				,							A					:       str = "multi_hop"				,							A					:       int = 512				,							A					:       bool = False				,							A					:       int = 12				,							A					:       int = 768				,							A					:       int = 768				,							A					:       int = 32				,							A					:       float = 0.1				,							A					:       float = 0.1				,							A					:       float = 0.0				,							A					:       bool = False				,							A					:       bool = False				,							A					:       bool = False				,							A					:       str = "gelu"				,							A					:       float = None				,							A					:       bool = False				,							A					:       int = 0				,							A					:       bool = False				,							A					:       float = 0.0				,							A					:       int = 8				,							A					:       int = None				,							A					:       int = None				,							A					:       bool = True				,							A					:       bool = True				,							A					:       Any=0				,							A					:       Optional[int]=1				,							A					:       Any=2				,							**A					:       Optional[Any]				,							):
         __snake_case:		List[str]					    =		num_classes
         __snake_case:		int					    =		num_atoms
         __snake_case:		List[str]					    =		num_in_degree
         __snake_case:		str					    =		num_out_degree
         __snake_case:		Tuple					    =		num_edges
         __snake_case:		Optional[int]					    =		num_spatial
         __snake_case:		int					    =		num_edge_dis
         __snake_case:		Tuple					    =		edge_type
         __snake_case:		str					    =		multi_hop_max_dist
         __snake_case:		List[str]					    =		spatial_pos_max
         __snake_case:		Optional[Any]					    =		max_nodes
         __snake_case:		Optional[int]					    =		num_hidden_layers
         __snake_case:		Union[str, Any]					    =		embedding_dim
         __snake_case:		Union[str, Any]					    =		embedding_dim
         __snake_case:		Optional[int]					    =		ffn_embedding_dim
         __snake_case:		List[str]					    =		num_attention_heads
         __snake_case:		Any					    =		dropout
         __snake_case:		Dict					    =		attention_dropout
         __snake_case:		Any					    =		layerdrop
         __snake_case:		Dict					    =		encoder_normalize_before
         __snake_case:		Any					    =		pre_layernorm
         __snake_case:		Optional[int]					    =		apply_graphormer_init
         __snake_case:		List[str]					    =		activation_fn
         __snake_case:		Optional[int]					    =		embed_scale
         __snake_case:		Dict					    =		freeze_embeddings
         __snake_case:		Any					    =		num_trans_layers_to_freeze
         __snake_case:		int					    =		share_input_output_embed
         __snake_case:		Dict					    =		traceable
         __snake_case:		str					    =		q_noise
         __snake_case:		Union[str, Any]					    =		qn_block_size

         # These parameters are here for future extensions
         # atm, the model only supports self attention
         __snake_case:		str					    =		kdim
         __snake_case:		Dict					    =		vdim
         __snake_case:		List[Any]					    =		self_attention
         __snake_case:		Tuple					    =		bias

         super().__init__(
             pad_token_id=A				,							bos_token_id=A				,							eos_token_id=A				,							**A				,							)






