




from typing import TYPE_CHECKING

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


UpperCamelCase								=	{
    'configuration_distilbert': [
        'DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'DistilBertConfig',
        'DistilBertOnnxConfig',
    ],
    'tokenization_distilbert': ['DistilBertTokenizer'],
}

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCamelCase								=	['DistilBertTokenizerFast']

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCamelCase								=	[
         'DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
         'DistilBertForMaskedLM',
         'DistilBertForMultipleChoice',
         'DistilBertForQuestionAnswering',
         'DistilBertForSequenceClassification',
         'DistilBertForTokenClassification',
         'DistilBertModel',
         'DistilBertPreTrainedModel',
     ]

try:
     if not is_tf_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCamelCase								=	[
         'TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
         'TFDistilBertForMaskedLM',
         'TFDistilBertForMultipleChoice',
         'TFDistilBertForQuestionAnswering',
         'TFDistilBertForSequenceClassification',
         'TFDistilBertForTokenClassification',
         'TFDistilBertMainLayer',
         'TFDistilBertModel',
         'TFDistilBertPreTrainedModel',
     ]

try:
     if not is_flax_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     UpperCamelCase								=	[
         'FlaxDistilBertForMaskedLM',
         'FlaxDistilBertForMultipleChoice',
         'FlaxDistilBertForQuestionAnswering',
         'FlaxDistilBertForSequenceClassification',
         'FlaxDistilBertForTokenClassification',
         'FlaxDistilBertModel',
         'FlaxDistilBertPreTrainedModel',
     ]


if TYPE_CHECKING:
     from .configuration_distilbert import (
         DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
         DistilBertConfig,
         DistilBertOnnxConfig,
     )
     from .tokenization_distilbert import DistilBertTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_distilbert_fast import DistilBertTokenizerFast

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_distilbert import (
              DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
              DistilBertForMaskedLM,
              DistilBertForMultipleChoice,
              DistilBertForQuestionAnswering,
              DistilBertForSequenceClassification,
              DistilBertForTokenClassification,
              DistilBertModel,
              DistilBertPreTrainedModel,
          )

     try:
          if not is_tf_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_tf_distilbert import (
              TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
              TFDistilBertForMaskedLM,
              TFDistilBertForMultipleChoice,
              TFDistilBertForQuestionAnswering,
              TFDistilBertForSequenceClassification,
              TFDistilBertForTokenClassification,
              TFDistilBertMainLayer,
              TFDistilBertModel,
              TFDistilBertPreTrainedModel,
          )

     try:
          if not is_flax_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_flax_distilbert import (
              FlaxDistilBertForMaskedLM,
              FlaxDistilBertForMultipleChoice,
              FlaxDistilBertForQuestionAnswering,
              FlaxDistilBertForSequenceClassification,
              FlaxDistilBertForTokenClassification,
              FlaxDistilBertModel,
              FlaxDistilBertPreTrainedModel,
          )

else:
     import sys

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


from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_A  =	logging.get_logger(__name__)

_A  =	{
    "kssteven/ibert-roberta-base": "https://huggingface.co/kssteven/ibert-roberta-base/resolve/main/config.json",
    "kssteven/ibert-roberta-large": "https://huggingface.co/kssteven/ibert-roberta-large/resolve/main/config.json",
    "kssteven/ibert-roberta-large-mnli": (
        "https://huggingface.co/kssteven/ibert-roberta-large-mnli/resolve/main/config.json"
    ),
}





class       _lowerCAmelCase   (      __a			):
				_lowercase     						='''ibert'''




				def __init__(   self							,							_UpperCamelCase=30_522							,							_UpperCamelCase=768							,							_UpperCamelCase=12							,							_UpperCamelCase=12							,							_UpperCamelCase=3_072							,							_UpperCamelCase="gelu"							,							_UpperCamelCase=0.1							,							_UpperCamelCase=0.1							,							_UpperCamelCase=512							,							_UpperCamelCase=2							,							_UpperCamelCase=0.02							,							_UpperCamelCase=1e-1_2							,							_UpperCamelCase=1							,							_UpperCamelCase=0							,							_UpperCamelCase=2							,							_UpperCamelCase="absolute"							,							_UpperCamelCase=False							,							_UpperCamelCase="none"							,							**_UpperCamelCase							,							)							-> List[str]:
							super().__init__(pad_token_id=_UpperCamelCase							,							bos_token_id=_UpperCamelCase							,							eos_token_id=_UpperCamelCase							,							**_UpperCamelCase	)

							lowerCAmelCase_         =      vocab_size
							lowerCAmelCase_         =      hidden_size
							lowerCAmelCase_         =      num_hidden_layers
							lowerCAmelCase_         =      num_attention_heads
							lowerCAmelCase_         =      hidden_act
							lowerCAmelCase_         =      intermediate_size
							lowerCAmelCase_         =      hidden_dropout_prob
							lowerCAmelCase_         =      attention_probs_dropout_prob
							lowerCAmelCase_         =      max_position_embeddings
							lowerCAmelCase_         =      type_vocab_size
							lowerCAmelCase_         =      initializer_range
							lowerCAmelCase_         =      layer_norm_eps
							lowerCAmelCase_         =      position_embedding_type
							lowerCAmelCase_         =      quant_mode
							lowerCAmelCase_         =      force_dequant





class       _lowerCAmelCase   (      __a			):




				@property
				def 	__a		(   self	)							-> Mapping[str, Mapping[int, str]]:
							if self.task == "multiple-choice":
										lowerCAmelCase_         =      {0: "batch", 1: "choice", 2: "sequence"}
							else:
										lowerCAmelCase_         =      {0: "batch", 1: "sequence"}
							return OrderedDict(
							    [
							        ("input_ids", dynamic_axis),
							        ("attention_mask", dynamic_axis),
							    ]	)



