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


__SCREAMING_SNAKE_CASE						:   Optional[int]         =			logging.get_logger(__name__)

__SCREAMING_SNAKE_CASE						:   Union[str, Any]         =			{'ctrl': 'https://huggingface.co/ctrl/resolve/main/config.json'}



class        lowercase_   (					lowercase__		):
							_lowerCamelCase						=		"""ctrl"""
							_lowerCamelCase						=		["""past_key_values"""]
							_lowerCamelCase						=		{
							    """max_position_embeddings""": """n_positions""",
							    """hidden_size""": """n_embd""",
							    """num_attention_heads""": """n_head""",
							    """num_hidden_layers""": """n_layer""",
							}



							def __init__(						self				,    lowercase_=246_534				,    lowercase_=256				,    lowercase_=1_280				,    lowercase_=8_192				,    lowercase_=48				,    lowercase_=16				,    lowercase_=0.1				,    lowercase_=0.1				,    lowercase_=1e-6				,    lowercase_=0.02				,    lowercase_=True				,    **lowercase_				,    ):
													_snake_case						:					Tuple    =   vocab_size
													_snake_case						:					Union[str, Any]    =   n_positions
													_snake_case						:					List[str]    =   n_embd
													_snake_case						:					Dict    =   n_layer
													_snake_case						:					Optional[int]    =   n_head
													_snake_case						:					List[str]    =   dff
													_snake_case						:					Tuple    =   resid_pdrop
													_snake_case						:					Optional[Any]    =   embd_pdrop
													_snake_case						:					str    =   layer_norm_epsilon
													_snake_case						:					List[str]    =   initializer_range

													_snake_case						:					List[str]    =   use_cache

													super().__init__(**lowercase_    )
from typing import TYPE_CHECKING

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


__SCREAMING_SNAKE_CASE						:   Optional[int]         =			{
    'configuration_distilbert': [
        'DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'DistilBertConfig',
        'DistilBertOnnxConfig',
    ],
    'tokenization_distilbert': ['DistilBertTokenizer'],
}

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

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

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__SCREAMING_SNAKE_CASE						:   Any         =			[
				    '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:
				__SCREAMING_SNAKE_CASE						:   Optional[Any]         =			[
				    '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

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