





"""simple docstring"""
from collections import OrderedDict
from typing import Any, Mapping, Optional

from ... import PreTrainedTokenizer
from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxConfigWithPast, OnnxSeqaSeqConfigWithPast
from ...onnx.utils import compute_effective_axis_dimension
from ...utils import TensorType, is_torch_available, logging


lowerCamelCase_								=		logging.get_logger(__name__)

lowerCamelCase_								=		{
    "Helsinki-NLP/opus-mt-en-de": "https://huggingface.co/Helsinki-NLP/opus-mt-en-de/resolve/main/config.json",
    # See all Marian models at https://huggingface.co/models?filter=marian
}






class 					_SCREAMING_SNAKE_CASE(   A  ):
       SCREAMING_SNAKE_CASE_   :      List[Any]							=  '''marian'''
       SCREAMING_SNAKE_CASE_   :      Optional[int]							=  ['''past_key_values''']
       SCREAMING_SNAKE_CASE_   :      List[str]							=  {'''num_attention_heads''': '''encoder_attention_heads''', '''hidden_size''': '''d_model'''}




       def __init__(						self		,SCREAMING_SNAKE_CASE__=5_81_01		,SCREAMING_SNAKE_CASE__=None		,SCREAMING_SNAKE_CASE__=10_24		,SCREAMING_SNAKE_CASE__=12		,SCREAMING_SNAKE_CASE__=40_96		,SCREAMING_SNAKE_CASE__=16		,SCREAMING_SNAKE_CASE__=12		,SCREAMING_SNAKE_CASE__=40_96		,SCREAMING_SNAKE_CASE__=16		,SCREAMING_SNAKE_CASE__=0.0		,SCREAMING_SNAKE_CASE__=0.0		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__="gelu"		,SCREAMING_SNAKE_CASE__=10_24		,SCREAMING_SNAKE_CASE__=0.1		,SCREAMING_SNAKE_CASE__=0.0		,SCREAMING_SNAKE_CASE__=0.0		,SCREAMING_SNAKE_CASE__=0.0_2		,SCREAMING_SNAKE_CASE__=5_81_00		,SCREAMING_SNAKE_CASE__=False		,SCREAMING_SNAKE_CASE__=5_81_00		,SCREAMING_SNAKE_CASE__=0		,SCREAMING_SNAKE_CASE__=0		,SCREAMING_SNAKE_CASE__=True		,**SCREAMING_SNAKE_CASE__		,)			->      List[str]:





             """simple docstring"""






             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  vocab_size
             __SCREAMING_SNAKE_CASE   :Tuple						=  decoder_vocab_size or vocab_size
             __SCREAMING_SNAKE_CASE   :Tuple						=  max_position_embeddings
             __SCREAMING_SNAKE_CASE   :List[str]						=  d_model
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  encoder_ffn_dim
             __SCREAMING_SNAKE_CASE   :List[Any]						=  encoder_layers
             __SCREAMING_SNAKE_CASE   :Union[str, Any]						=  encoder_attention_heads
             __SCREAMING_SNAKE_CASE   :List[Any]						=  decoder_ffn_dim
             __SCREAMING_SNAKE_CASE   :List[Any]						=  decoder_layers
             __SCREAMING_SNAKE_CASE   :Optional[int]						=  decoder_attention_heads
             __SCREAMING_SNAKE_CASE   :Dict						=  dropout
             __SCREAMING_SNAKE_CASE   :Dict						=  attention_dropout
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  activation_dropout
             __SCREAMING_SNAKE_CASE   :Any						=  activation_function
             __SCREAMING_SNAKE_CASE   :List[Any]						=  init_std
             __SCREAMING_SNAKE_CASE   :List[str]						=  encoder_layerdrop
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  decoder_layerdrop
             __SCREAMING_SNAKE_CASE   :Tuple						=  use_cache
             __SCREAMING_SNAKE_CASE   :Dict						=  encoder_layers
             __SCREAMING_SNAKE_CASE   :int						=  scale_embedding  # scale factor will be sqrt(d_model) if True
             __SCREAMING_SNAKE_CASE   :Dict						=  share_encoder_decoder_embeddings
             super().__init__(
                 pad_token_id=SCREAMING_SNAKE_CASE__		,eos_token_id=SCREAMING_SNAKE_CASE__		,is_encoder_decoder=SCREAMING_SNAKE_CASE__		,decoder_start_token_id=SCREAMING_SNAKE_CASE__		,forced_eos_token_id=SCREAMING_SNAKE_CASE__		,**SCREAMING_SNAKE_CASE__		,)






class 					_SCREAMING_SNAKE_CASE(   A  ):




       @property
       # Copied from transformers.models.bart.configuration_bart.BartOnnxConfig.inputs
       def     _UpperCamelCase     (						self							)			->      Mapping[str, Mapping[int, str]]:





             """simple docstring"""






             if self.task in ["default", "seq2seq-lm"]:
                   __SCREAMING_SNAKE_CASE   :Dict						=  OrderedDict(
                       [
                           ('''input_ids''', {0: '''batch''', 1: '''encoder_sequence'''}),
                           ('''attention_mask''', {0: '''batch''', 1: '''encoder_sequence'''}),
                       ]							)

                   if self.use_past:
                         __SCREAMING_SNAKE_CASE   :Optional[Any]						=  {0: '''batch'''}
                         __SCREAMING_SNAKE_CASE   :Optional[Any]						=  {0: '''batch''', 1: '''past_decoder_sequence + sequence'''}
                   else:
                         __SCREAMING_SNAKE_CASE   :List[str]						=  {0: '''batch''', 1: '''decoder_sequence'''}
                         __SCREAMING_SNAKE_CASE   :List[Any]						=  {0: '''batch''', 1: '''decoder_sequence'''}

                   if self.use_past:
                         self.fill_with_past_key_values_(SCREAMING_SNAKE_CASE__		,direction='''inputs'''							)
             elif self.task == "causal-lm":
                   # TODO: figure this case out.
                   __SCREAMING_SNAKE_CASE   :int						=  OrderedDict(
                       [
                           ('''input_ids''', {0: '''batch''', 1: '''encoder_sequence'''}),
                           ('''attention_mask''', {0: '''batch''', 1: '''encoder_sequence'''}),
                       ]							)
                   if self.use_past:
                         __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :str						=  self.num_layers
                         for i in range(SCREAMING_SNAKE_CASE__							):
                               __SCREAMING_SNAKE_CASE   :Tuple						=  {0: '''batch''', 2: '''past_sequence + sequence'''}
                               __SCREAMING_SNAKE_CASE   :Optional[int]						=  {0: '''batch''', 2: '''past_sequence + sequence'''}
             else:
                   __SCREAMING_SNAKE_CASE   :Union[str, Any]						=  OrderedDict(
                       [
                           ('''input_ids''', {0: '''batch''', 1: '''encoder_sequence'''}),
                           ('''attention_mask''', {0: '''batch''', 1: '''encoder_sequence'''}),
                           ('''decoder_input_ids''', {0: '''batch''', 1: '''decoder_sequence'''}),
                           ('''decoder_attention_mask''', {0: '''batch''', 1: '''decoder_sequence'''}),
                       ]							)

             return common_inputs




       @property
       # Copied from transformers.models.bart.configuration_bart.BartOnnxConfig.outputs
       def     _UpperCamelCase     (						self							)			->      Mapping[str, Mapping[int, str]]:





             """simple docstring"""






             if self.task in ["default", "seq2seq-lm"]:
                   __SCREAMING_SNAKE_CASE   :Tuple						=  super().outputs
             else:
                   __SCREAMING_SNAKE_CASE   :Optional[Any]						=  super(SCREAMING_SNAKE_CASE__		,self							).outputs
                   if self.use_past:
                         __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :Union[str, Any]						=  self.num_layers
                         for i in range(SCREAMING_SNAKE_CASE__							):
                               __SCREAMING_SNAKE_CASE   :Optional[int]						=  {0: '''batch''', 2: '''past_sequence + sequence'''}
                               __SCREAMING_SNAKE_CASE   :str						=  {0: '''batch''', 2: '''past_sequence + sequence'''}
             return common_outputs




       def     _UpperCamelCase     (						self		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = False		,SCREAMING_SNAKE_CASE__ = None		,)			->      Mapping[str, Any]:





             """simple docstring"""






             __SCREAMING_SNAKE_CASE   :List[Any]						=  self._generate_dummy_inputs_for_encoder_and_decoder(
                 SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)

             # Generate decoder inputs
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  seq_length if not self.use_past else 1
             __SCREAMING_SNAKE_CASE   :List[str]						=  self._generate_dummy_inputs_for_encoder_and_decoder(
                 SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)
             __SCREAMING_SNAKE_CASE   :Tuple						=  {f'''decoder_{name}''': tensor for name, tensor in decoder_inputs.items()}
             __SCREAMING_SNAKE_CASE   :int						=  dict(**SCREAMING_SNAKE_CASE__		,**SCREAMING_SNAKE_CASE__							)

             if self.use_past:
                   if not is_torch_available():
                         raise ValueError('''Cannot generate dummy past_keys inputs without PyTorch installed.'''							)
                   else:
                         import torch
                   __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :Dict						=  common_inputs['''input_ids'''].shape
                   __SCREAMING_SNAKE_CASE   :Union[str, Any]						=  common_inputs['''decoder_input_ids'''].shape[1]
                   __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :int						=  self.num_attention_heads
                   __SCREAMING_SNAKE_CASE   :int						=  (
                       batch,
                       num_encoder_attention_heads,
                       encoder_seq_length,
                       self._config.hidden_size // num_encoder_attention_heads,
                   )
                   __SCREAMING_SNAKE_CASE   :List[str]						=  decoder_seq_length + 3
                   __SCREAMING_SNAKE_CASE   :str						=  (
                       batch,
                       num_decoder_attention_heads,
                       decoder_past_length,
                       self._config.hidden_size // num_decoder_attention_heads,
                   )

                   __SCREAMING_SNAKE_CASE   :Optional[int]						=  torch.cat(
                       [common_inputs['''decoder_attention_mask'''], torch.ones(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)]		,dim=1							)

                   __SCREAMING_SNAKE_CASE   :Dict						=  []
                   # If the number of encoder and decoder layers are present in the model configuration, both are considered
                   __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :str						=  self.num_layers
                   __SCREAMING_SNAKE_CASE   :Optional[int]						=  min(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)
                   __SCREAMING_SNAKE_CASE   :Any						=  max(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							) - min_num_layers
                   __SCREAMING_SNAKE_CASE   :List[str]						=  '''encoder''' if num_encoder_layers > num_decoder_layers else '''decoder'''

                   for _ in range(SCREAMING_SNAKE_CASE__							):
                         common_inputs["past_key_values"].append(
                             (
                                 torch.zeros(SCREAMING_SNAKE_CASE__							),
                                 torch.zeros(SCREAMING_SNAKE_CASE__							),
                                 torch.zeros(SCREAMING_SNAKE_CASE__							),
                                 torch.zeros(SCREAMING_SNAKE_CASE__							),
                             )							)
                   # TODO: test this.
                   __SCREAMING_SNAKE_CASE   :List[str]						=  encoder_shape if remaining_side_name == '''encoder''' else decoder_shape
                   for _ in range(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							):
                         common_inputs["past_key_values"].append((torch.zeros(SCREAMING_SNAKE_CASE__							), torch.zeros(SCREAMING_SNAKE_CASE__							))							)
             return common_inputs




       def     _UpperCamelCase     (						self		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = False		,SCREAMING_SNAKE_CASE__ = None		,)			->      Mapping[str, Any]:





             """simple docstring"""






             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  self._generate_dummy_inputs_for_encoder_and_decoder(
                 SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)

             if self.use_past:
                   if not is_torch_available():
                         raise ValueError('''Cannot generate dummy past_keys inputs without PyTorch installed.'''							)
                   else:
                         import torch
                   __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :Dict						=  common_inputs['''input_ids'''].shape
                   # Not using the same length for past_key_values
                   __SCREAMING_SNAKE_CASE   :List[Any]						=  seqlen + 2
                   __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :Tuple						=  self.num_layers
                   __SCREAMING_SNAKE_CASE				,__SCREAMING_SNAKE_CASE   :List[str]						=  self.num_attention_heads
                   __SCREAMING_SNAKE_CASE   :str						=  (
                       batch,
                       num_encoder_attention_heads,
                       past_key_values_length,
                       self._config.hidden_size // num_encoder_attention_heads,
                   )

                   __SCREAMING_SNAKE_CASE   :Tuple						=  common_inputs['''attention_mask'''].dtype
                   __SCREAMING_SNAKE_CASE   :int						=  torch.cat(
                       [common_inputs['''attention_mask'''], torch.ones(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,dtype=SCREAMING_SNAKE_CASE__							)]		,dim=1							)
                   __SCREAMING_SNAKE_CASE   :Dict						=  [
                       (torch.zeros(SCREAMING_SNAKE_CASE__							), torch.zeros(SCREAMING_SNAKE_CASE__							)) for _ in range(SCREAMING_SNAKE_CASE__							)
                   ]
             return common_inputs




       def     _UpperCamelCase     (						self		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = False		,SCREAMING_SNAKE_CASE__ = None		,)			->      Mapping[str, Any]:





             """simple docstring"""






             __SCREAMING_SNAKE_CASE   :str						=  compute_effective_axis_dimension(
                 SCREAMING_SNAKE_CASE__		,fixed_dimension=OnnxConfig.default_fixed_batch		,num_token_to_add=0							)

             # If dynamic axis (-1) we forward with a fixed dimension of 8 tokens to avoid optimizations made by ONNX
             __SCREAMING_SNAKE_CASE   :Tuple						=  tokenizer.num_special_tokens_to_add(SCREAMING_SNAKE_CASE__							)
             __SCREAMING_SNAKE_CASE   :List[Any]						=  compute_effective_axis_dimension(
                 SCREAMING_SNAKE_CASE__		,fixed_dimension=OnnxConfig.default_fixed_sequence		,num_token_to_add=SCREAMING_SNAKE_CASE__							)

             # Generate dummy inputs according to compute batch and sequence
             __SCREAMING_SNAKE_CASE   :Dict						=  [''' '''.join([tokenizer.unk_token]							) * seq_length] * batch_size
             __SCREAMING_SNAKE_CASE   :Dict						=  dict(tokenizer(SCREAMING_SNAKE_CASE__		,return_tensors=SCREAMING_SNAKE_CASE__							)							)
             return common_inputs




       def     _UpperCamelCase     (						self		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = -1		,SCREAMING_SNAKE_CASE__ = False		,SCREAMING_SNAKE_CASE__ = None		,)			->      Mapping[str, Any]:





             """simple docstring"""






             if self.task in ["default", "seq2seq-lm"]:
                   __SCREAMING_SNAKE_CASE   :Tuple						=  self._generate_dummy_inputs_for_default_and_seqaseq_lm(
                       SCREAMING_SNAKE_CASE__		,batch_size=SCREAMING_SNAKE_CASE__		,seq_length=SCREAMING_SNAKE_CASE__		,is_pair=SCREAMING_SNAKE_CASE__		,framework=SCREAMING_SNAKE_CASE__							)

             else:
                   __SCREAMING_SNAKE_CASE   :Any						=  self._generate_dummy_inputs_for_causal_lm(
                       SCREAMING_SNAKE_CASE__		,batch_size=SCREAMING_SNAKE_CASE__		,seq_length=SCREAMING_SNAKE_CASE__		,is_pair=SCREAMING_SNAKE_CASE__		,framework=SCREAMING_SNAKE_CASE__							)

             return common_inputs




       def     _UpperCamelCase     (						self		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)			->      Any:





             """simple docstring"""






             if self.task in ["default", "seq2seq-lm"]:
                   __SCREAMING_SNAKE_CASE   :List[str]						=  super()._flatten_past_key_values_(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)
             else:
                   __SCREAMING_SNAKE_CASE   :Dict						=  super(SCREAMING_SNAKE_CASE__		,self							)._flatten_past_key_values_(
                       SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)




       @property
       def     _UpperCamelCase     (						self							)			->      float:





             """simple docstring"""






             return 1E-4






"""simple docstring"""
from collections import OrderedDict
from typing import Mapping

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


lowerCamelCase_								=		logging.get_logger(__name__)

lowerCamelCase_								=		{
    "facebook/xmod-base": "https://huggingface.co/facebook/xmod-base/resolve/main/config.json",
    "facebook/xmod-large-prenorm": "https://huggingface.co/facebook/xmod-large-prenorm/resolve/main/config.json",
    "facebook/xmod-base-13-125k": "https://huggingface.co/facebook/xmod-base-13-125k/resolve/main/config.json",
    "facebook/xmod-base-30-125k": "https://huggingface.co/facebook/xmod-base-30-125k/resolve/main/config.json",
    "facebook/xmod-base-30-195k": "https://huggingface.co/facebook/xmod-base-30-195k/resolve/main/config.json",
    "facebook/xmod-base-60-125k": "https://huggingface.co/facebook/xmod-base-60-125k/resolve/main/config.json",
    "facebook/xmod-base-60-265k": "https://huggingface.co/facebook/xmod-base-60-265k/resolve/main/config.json",
    "facebook/xmod-base-75-125k": "https://huggingface.co/facebook/xmod-base-75-125k/resolve/main/config.json",
    "facebook/xmod-base-75-269k": "https://huggingface.co/facebook/xmod-base-75-269k/resolve/main/config.json",
}






class 					_SCREAMING_SNAKE_CASE(   A  ):
       SCREAMING_SNAKE_CASE_   :      Any							=  '''xmod'''




       def __init__(						self		,SCREAMING_SNAKE_CASE__=3_05_22		,SCREAMING_SNAKE_CASE__=7_68		,SCREAMING_SNAKE_CASE__=12		,SCREAMING_SNAKE_CASE__=12		,SCREAMING_SNAKE_CASE__=30_72		,SCREAMING_SNAKE_CASE__="gelu"		,SCREAMING_SNAKE_CASE__=0.1		,SCREAMING_SNAKE_CASE__=0.1		,SCREAMING_SNAKE_CASE__=5_12		,SCREAMING_SNAKE_CASE__=2		,SCREAMING_SNAKE_CASE__=0.0_2		,SCREAMING_SNAKE_CASE__=1E-12		,SCREAMING_SNAKE_CASE__=1		,SCREAMING_SNAKE_CASE__=0		,SCREAMING_SNAKE_CASE__=2		,SCREAMING_SNAKE_CASE__="absolute"		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__=None		,SCREAMING_SNAKE_CASE__=False		,SCREAMING_SNAKE_CASE__=2		,SCREAMING_SNAKE_CASE__=False		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__=("en_XX",)		,SCREAMING_SNAKE_CASE__=None		,**SCREAMING_SNAKE_CASE__		,)			->      Optional[Any]:





             """simple docstring"""






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

             __SCREAMING_SNAKE_CASE   :Optional[int]						=  vocab_size
             __SCREAMING_SNAKE_CASE   :List[Any]						=  hidden_size
             __SCREAMING_SNAKE_CASE   :List[str]						=  num_hidden_layers
             __SCREAMING_SNAKE_CASE   :List[str]						=  num_attention_heads
             __SCREAMING_SNAKE_CASE   :Optional[int]						=  hidden_act
             __SCREAMING_SNAKE_CASE   :Tuple						=  intermediate_size
             __SCREAMING_SNAKE_CASE   :Dict						=  hidden_dropout_prob
             __SCREAMING_SNAKE_CASE   :str						=  attention_probs_dropout_prob
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  max_position_embeddings
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  type_vocab_size
             __SCREAMING_SNAKE_CASE   :str						=  initializer_range
             __SCREAMING_SNAKE_CASE   :List[Any]						=  layer_norm_eps
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  position_embedding_type
             __SCREAMING_SNAKE_CASE   :Any						=  use_cache
             __SCREAMING_SNAKE_CASE   :List[str]						=  classifier_dropout
             __SCREAMING_SNAKE_CASE   :Any						=  pre_norm
             __SCREAMING_SNAKE_CASE   :Dict						=  adapter_reduction_factor
             __SCREAMING_SNAKE_CASE   :Dict						=  adapter_layer_norm
             __SCREAMING_SNAKE_CASE   :Dict						=  adapter_reuse_layer_norm
             __SCREAMING_SNAKE_CASE   :Tuple						=  ln_before_adapter
             __SCREAMING_SNAKE_CASE   :Any						=  list(SCREAMING_SNAKE_CASE__							)
             __SCREAMING_SNAKE_CASE   :Optional[Any]						=  default_language






class 					_SCREAMING_SNAKE_CASE(   A  ):




       @property
       def     _UpperCamelCase     (						self							)			->      Mapping[str, Mapping[int, str]]:





             """simple docstring"""






             if self.task == "multiple-choice":
                   __SCREAMING_SNAKE_CASE   :Tuple						=  {0: '''batch''', 1: '''choice''', 2: '''sequence'''}
             else:
                   __SCREAMING_SNAKE_CASE   :Union[str, Any]						=  {0: '''batch''', 1: '''sequence'''}
             return OrderedDict(
                 [
                     ('''input_ids''', dynamic_axis),
                     ('''attention_mask''', dynamic_axis),
                 ]							)