





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


_UpperCAmelCase        =				{
    'configuration_xlm': ['XLM_PRETRAINED_CONFIG_ARCHIVE_MAP', 'XLMConfig', 'XLMOnnxConfig'],
    'tokenization_xlm': ['XLMTokenizer'],
}

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _UpperCAmelCase        =				[
         'XLM_PRETRAINED_MODEL_ARCHIVE_LIST',
         'XLMForMultipleChoice',
         'XLMForQuestionAnswering',
         'XLMForQuestionAnsweringSimple',
         'XLMForSequenceClassification',
         'XLMForTokenClassification',
         'XLMModel',
         'XLMPreTrainedModel',
         'XLMWithLMHeadModel',
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     _UpperCAmelCase        =				[
         'TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST',
         'TFXLMForMultipleChoice',
         'TFXLMForQuestionAnsweringSimple',
         'TFXLMForSequenceClassification',
         'TFXLMForTokenClassification',
         'TFXLMMainLayer',
         'TFXLMModel',
         'TFXLMPreTrainedModel',
         'TFXLMWithLMHeadModel',
     ]


if TYPE_CHECKING:
     from .configuration_xlm import XLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XLMConfig, XLMOnnxConfig
     from .tokenization_xlm import XLMTokenizer

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_xlm import (
              XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
              XLMForMultipleChoice,
              XLMForQuestionAnswering,
              XLMForQuestionAnsweringSimple,
              XLMForSequenceClassification,
              XLMForTokenClassification,
              XLMModel,
              XLMPreTrainedModel,
              XLMWithLMHeadModel,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_xlm import (
              TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFXLMForMultipleChoice,
              TFXLMForQuestionAnsweringSimple,
              TFXLMForSequenceClassification,
              TFXLMForTokenClassification,
              TFXLMMainLayer,
              TFXLMModel,
              TFXLMPreTrainedModel,
              TFXLMWithLMHeadModel,
          )

else:
     import sys

     _UpperCAmelCase        =				_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)








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


_UpperCAmelCase        =				logging.get_logger(__name__)

_UpperCAmelCase        =				{'openai-gpt': 'https://huggingface.co/openai-gpt/resolve/main/config.json'}



class 							_UpperCamelCase					(	lowerCAmelCase_     ):
       _UpperCamelCase				:					List[str]         =   '''openai-gpt'''
       _UpperCamelCase				:					List[str]         =   {
           '''max_position_embeddings''': '''n_positions''',
           '''hidden_size''': '''n_embd''',
           '''num_attention_heads''': '''n_head''',
           '''num_hidden_layers''': '''n_layer''',
       }

       def __init__(		self: int					,   _SCREAMING_SNAKE_CASE: int=40478					,   _SCREAMING_SNAKE_CASE: Optional[Any]=512					,   _SCREAMING_SNAKE_CASE: List[Any]=768					,   _SCREAMING_SNAKE_CASE: str=12					,   _SCREAMING_SNAKE_CASE: Any=12					,   _SCREAMING_SNAKE_CASE: Optional[int]="gelu"					,   _SCREAMING_SNAKE_CASE: int=0.1					,   _SCREAMING_SNAKE_CASE: Optional[int]=0.1					,   _SCREAMING_SNAKE_CASE: Union[str, Any]=0.1					,   _SCREAMING_SNAKE_CASE: Any=1e-5					,   _SCREAMING_SNAKE_CASE: Tuple=0.02					,   _SCREAMING_SNAKE_CASE: str="cls_index"					,   _SCREAMING_SNAKE_CASE: Union[str, Any]=True					,   _SCREAMING_SNAKE_CASE: List[Any]=None					,   _SCREAMING_SNAKE_CASE: List[Any]=True					,   _SCREAMING_SNAKE_CASE: List[Any]=0.1					,   **_SCREAMING_SNAKE_CASE: List[Any]					,   )       -> int:




              """simple docstring"""


              UpperCamelCase_          =  vocab_size
              UpperCamelCase_          =  n_positions
              UpperCamelCase_          =  n_embd
              UpperCamelCase_          =  n_layer
              UpperCamelCase_          =  n_head
              UpperCamelCase_          =  afn
              UpperCamelCase_          =  resid_pdrop
              UpperCamelCase_          =  embd_pdrop
              UpperCamelCase_          =  attn_pdrop
              UpperCamelCase_          =  layer_norm_epsilon
              UpperCamelCase_          =  initializer_range
              UpperCamelCase_          =  summary_type
              UpperCamelCase_          =  summary_use_proj
              UpperCamelCase_          =  summary_activation
              UpperCamelCase_          =  summary_first_dropout
              UpperCamelCase_          =  summary_proj_to_labels
              super().__init__(**_SCREAMING_SNAKE_CASE		)

