

# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


a		={"""configuration_mra""": ["""MRA_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MraConfig"""]}

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					a		=[
					    """MRA_PRETRAINED_MODEL_ARCHIVE_LIST""",
					    """MraForMaskedLM""",
					    """MraForMultipleChoice""",
					    """MraForQuestionAnswering""",
					    """MraForSequenceClassification""",
					    """MraForTokenClassification""",
					    """MraLayer""",
					    """MraModel""",
					    """MraPreTrainedModel""",
					]


if TYPE_CHECKING:
					from .configuration_mra import MRA_PRETRAINED_CONFIG_ARCHIVE_MAP, MraConfig

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_mra import (
										    MRA_PRETRAINED_MODEL_ARCHIVE_LIST,
										    MraForMaskedLM,
										    MraForMultipleChoice,
										    MraForQuestionAnswering,
										    MraForSequenceClassification,
										    MraForTokenClassification,
										    MraLayer,
										    MraModel,
										    MraPreTrainedModel,
										)
else:
					import sys

					a		=_LazyModule(__name__, globals()["""__file__"""], _import_structure)








import warnings

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


_A		       =						logging.get_logger(__name__)

_A		       =						{
    'RUCAIBox/mvp': 'https://huggingface.co/RUCAIBox/mvp/resolve/main/config.json',
}






class     UpperCAmelCase__       (					A_		):



    """simple docstring"""






    UpperCAmelCase__						:		Optional[int]      =  "mvp"
    UpperCAmelCase__						:		Tuple      =  ["past_key_values"]
    UpperCAmelCase__						:		Union[str, Any]      =  {"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}






    def __init__(			self					,   A_=50267					,   A_=1024					,   A_=12					,   A_=4096					,   A_=16					,   A_=12					,   A_=4096					,   A_=16					,   A_=0.0					,   A_=0.0					,   A_="gelu"					,   A_=1024					,   A_=0.1					,   A_=0.0					,   A_=0.0					,   A_=0.02					,   A_=0.0					,   A_=False					,   A_=True					,   A_=1					,   A_=0					,   A_=2					,   A_=True					,   A_=2					,   A_=2					,   A_=False					,   A_=100					,   A_=800					,   **A_					,   )  ->       Union[str, Any]:
         __UpperCamelCase    							=vocab_size
         __UpperCamelCase    							=max_position_embeddings
         __UpperCamelCase    							=d_model
         __UpperCamelCase    							=encoder_ffn_dim
         __UpperCamelCase    							=encoder_layers
         __UpperCamelCase    							=encoder_attention_heads
         __UpperCamelCase    							=decoder_ffn_dim
         __UpperCamelCase    							=decoder_layers
         __UpperCamelCase    							=decoder_attention_heads
         __UpperCamelCase    							=dropout
         __UpperCamelCase    							=attention_dropout
         __UpperCamelCase    							=activation_dropout
         __UpperCamelCase    							=activation_function
         __UpperCamelCase    							=init_std
         __UpperCamelCase    							=encoder_layerdrop
         __UpperCamelCase    							=decoder_layerdrop
         __UpperCamelCase    							=classifier_dropout
         __UpperCamelCase    							=use_cache
         __UpperCamelCase    							=encoder_layers
         __UpperCamelCase    							=scale_embedding  # scale factor will be sqrt(d_model) if True
         __UpperCamelCase    							=use_prompt
         __UpperCamelCase    							=prompt_length
         __UpperCamelCase    							=prompt_mid_dim

         super().__init__(
             pad_token_id=A_					,   bos_token_id=A_					,   eos_token_id=A_					,   is_encoder_decoder=A_					,   decoder_start_token_id=A_					,   forced_eos_token_id=A_					,   **A_					,   )

         if self.forced_bos_token_id is None and kwargs.get('force_bos_token_to_be_generated'					,   A_    ):
              __UpperCamelCase    							=self.bos_token_id
              warnings.warn(
                  f'Please make sure the config includes `forced_bos_token_id={self.bos_token_id}` in future versions. '
                  'The config can simply be saved and uploaded again to be fixed.'    )





