





"""simple docstring"""
import os

from bleurt import score  # From: git+https://github.com/google-research/bleurt.git

import datasets


lowerCamelCase_       =   datasets.logging.get_logger(__name__)


lowerCamelCase_       =   "\\n@inproceedings{bleurt,\n  title={BLEURT: Learning Robust Metrics for Text Generation},\n  author={Thibault Sellam and Dipanjan Das and Ankur P. Parikh},\n  booktitle={ACL},\n  year={2020},\n  url={https://arxiv.org/abs/2004.04696}\n}\n"

lowerCamelCase_       =   "\\nBLEURT a learnt evaluation metric for Natural Language Generation. It is built using multiple phases of transfer learning starting from a pretrained BERT model (Devlin et al. 2018)\nand then employing another pre-training phrase using synthetic data. Finally it is trained on WMT human annotations. You may run BLEURT out-of-the-box or fine-tune\nit for your specific application (the latter is expected to perform better).\n\nSee the project's README at https://github.com/google-research/bleurt#readme for more information.\n"

lowerCamelCase_       =   "\nBLEURT score.\n\nArgs:\n    `predictions` (list of str): prediction/candidate sentences\n    `references` (list of str): reference sentences\n    `checkpoint` BLEURT checkpoint. Will default to BLEURT-tiny if None.\n\nReturns:\n    'scores': List of scores.\nExamples:\n\n    >>> predictions = [\"hello there\", \"general kenobi\"]\n    >>> references = [\"hello there\", \"general kenobi\"]\n    >>> bleurt = datasets.load_metric(\"bleurt\")\n    >>> results = bleurt.compute(predictions=predictions, references=references)\n    >>> print([round(v, 2) for v in results[\"scores\"]])\n    [1.03, 1.04]\n"

lowerCamelCase_       =   {
    "bleurt-tiny-128": "https://storage.googleapis.com/bleurt-oss/bleurt-tiny-128.zip",
    "bleurt-tiny-512": "https://storage.googleapis.com/bleurt-oss/bleurt-tiny-512.zip",
    "bleurt-base-128": "https://storage.googleapis.com/bleurt-oss/bleurt-base-128.zip",
    "bleurt-base-512": "https://storage.googleapis.com/bleurt-oss/bleurt-base-512.zip",
    "bleurt-large-128": "https://storage.googleapis.com/bleurt-oss/bleurt-large-128.zip",
    "bleurt-large-512": "https://storage.googleapis.com/bleurt-oss/bleurt-large-512.zip",
    "BLEURT-20-D3": "https://storage.googleapis.com/bleurt-oss-21/BLEURT-20-D3.zip",
    "BLEURT-20-D6": "https://storage.googleapis.com/bleurt-oss-21/BLEURT-20-D6.zip",
    "BLEURT-20-D12": "https://storage.googleapis.com/bleurt-oss-21/BLEURT-20-D12.zip",
    "BLEURT-20": "https://storage.googleapis.com/bleurt-oss-21/BLEURT-20.zip",
}






@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION   ,     _KWARGS_DESCRIPTION  )
class  _SCREAMING_SNAKE_CASE(       datasets.Metric  ):




       def    _UpperCamelCase					(						self							)      ->				str:





             """simple docstring"""






             return datasets.MetricInfo(
                 description=_DESCRIPTION		,citation=_CITATION		,homepage='''https://github.com/google-research/bleurt'''		,inputs_description=_KWARGS_DESCRIPTION		,features=datasets.Features(
                     {
                         '''predictions''': datasets.Value('''string'''		,id='''sequence'''							),
                         '''references''': datasets.Value('''string'''		,id='''sequence'''							),
                     }							)		,codebase_urls=['''https://github.com/google-research/bleurt''']		,reference_urls=['''https://github.com/google-research/bleurt''', '''https://arxiv.org/abs/2004.04696''']		,)




       def    _UpperCamelCase					(						self		,SCREAMING_SNAKE_CASE__							)      ->				Dict:





             """simple docstring"""






             if self.config_name == "default":
                   logger.warning(
                       '''Using default BLEURT-Base checkpoint for sequence maximum length 128. '''
                       '''You can use a bigger model for better results with e.g.: datasets.load_metric(\'bleurt\', \'bleurt-large-512\').'''							)
                   __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  '''bleurt-base-128'''

             if self.config_name.lower() in CHECKPOINT_URLS:
                   __SCREAMING_SNAKE_CASE       :Tuple		    =  self.config_name.lower()

             elif self.config_name.upper() in CHECKPOINT_URLS:
                   __SCREAMING_SNAKE_CASE       :Optional[int]		    =  self.config_name.upper()

             else:
                   raise KeyError(
                       f'''{self.config_name} model not found. You should supply the name of a model checkpoint for bleurt in {CHECKPOINT_URLS.keys()}'''							)

             # download the model checkpoint specified by self.config_name and set up the scorer
             __SCREAMING_SNAKE_CASE       :Optional[int]		    =  dl_manager.download_and_extract(CHECKPOINT_URLS[checkpoint_name]							)
             __SCREAMING_SNAKE_CASE       :Any		    =  score.BleurtScorer(os.path.join(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)							)




       def    _UpperCamelCase					(						self		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)      ->				List[str]:





             """simple docstring"""






             __SCREAMING_SNAKE_CASE       :List[str]		    =  self.scorer.score(references=SCREAMING_SNAKE_CASE__		,candidates=SCREAMING_SNAKE_CASE__							)
             return {"scores": scores}






"""simple docstring"""
import warnings
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_       =		{
    "facebook/bart-large": "https://huggingface.co/facebook/bart-large/resolve/main/config.json",
    # See all BART models at https://huggingface.co/models?filter=bart
}






class  _SCREAMING_SNAKE_CASE(       A  ):
       SCREAMING_SNAKE_CASE_       :				str     						=  '''bart'''
       SCREAMING_SNAKE_CASE_       :				str     						=  ['''past_key_values''']
       SCREAMING_SNAKE_CASE_       :				str     						=  {'''num_attention_heads''': '''encoder_attention_heads''', '''hidden_size''': '''d_model'''}




       def __init__(						self		,SCREAMING_SNAKE_CASE__=5_02_65		,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__="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__=0.0		,SCREAMING_SNAKE_CASE__=False		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__=3		,SCREAMING_SNAKE_CASE__=1		,SCREAMING_SNAKE_CASE__=0		,SCREAMING_SNAKE_CASE__=2		,SCREAMING_SNAKE_CASE__=True		,SCREAMING_SNAKE_CASE__=2		,SCREAMING_SNAKE_CASE__=2		,**SCREAMING_SNAKE_CASE__		,)      ->				int:





             """simple docstring"""






             __SCREAMING_SNAKE_CASE       :str		    =  vocab_size
             __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  max_position_embeddings
             __SCREAMING_SNAKE_CASE       :Any		    =  d_model
             __SCREAMING_SNAKE_CASE       :Optional[int]		    =  encoder_ffn_dim
             __SCREAMING_SNAKE_CASE       :List[str]		    =  encoder_layers
             __SCREAMING_SNAKE_CASE       :Tuple		    =  encoder_attention_heads
             __SCREAMING_SNAKE_CASE       :List[Any]		    =  decoder_ffn_dim
             __SCREAMING_SNAKE_CASE       :Any		    =  decoder_layers
             __SCREAMING_SNAKE_CASE       :Optional[int]		    =  decoder_attention_heads
             __SCREAMING_SNAKE_CASE       :Optional[Any]		    =  dropout
             __SCREAMING_SNAKE_CASE       :Optional[Any]		    =  attention_dropout
             __SCREAMING_SNAKE_CASE       :Dict		    =  activation_dropout
             __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  activation_function
             __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  init_std
             __SCREAMING_SNAKE_CASE       :int		    =  encoder_layerdrop
             __SCREAMING_SNAKE_CASE       :Any		    =  decoder_layerdrop
             __SCREAMING_SNAKE_CASE       :str		    =  classifier_dropout
             __SCREAMING_SNAKE_CASE       :List[str]		    =  use_cache
             __SCREAMING_SNAKE_CASE       :List[str]		    =  encoder_layers
             __SCREAMING_SNAKE_CASE       :Tuple		    =  scale_embedding  # scale factor will be sqrt(d_model) if True

             super().__init__(
                 num_labels=SCREAMING_SNAKE_CASE__		,pad_token_id=SCREAMING_SNAKE_CASE__		,bos_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__		,)

             # ensure backward compatibility for BART CNN models
             if self.forced_bos_token_id is None and kwargs.get('''force_bos_token_to_be_generated'''		,SCREAMING_SNAKE_CASE__							):
                   __SCREAMING_SNAKE_CASE       :str		    =  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.'''							)






class  _SCREAMING_SNAKE_CASE(       A  ):




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





             """simple docstring"""






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

                   if self.use_past:
                         __SCREAMING_SNAKE_CASE       :int		    =  {0: '''batch'''}
                         __SCREAMING_SNAKE_CASE       :int		    =  {0: '''batch''', 1: '''past_decoder_sequence + sequence'''}
                   else:
                         __SCREAMING_SNAKE_CASE       :Tuple		    =  {0: '''batch''', 1: '''decoder_sequence'''}
                         __SCREAMING_SNAKE_CASE       :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       :Optional[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       :List[Any]		    =  self.num_layers
                         for i in range(SCREAMING_SNAKE_CASE__							):
                               __SCREAMING_SNAKE_CASE       :List[str]		    =  {0: '''batch''', 2: '''past_sequence + sequence'''}
                               __SCREAMING_SNAKE_CASE       :List[Any]		    =  {0: '''batch''', 2: '''past_sequence + sequence'''}
             else:
                   __SCREAMING_SNAKE_CASE       :int		    =  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
       def    _UpperCamelCase					(						self							)      ->				Mapping[str, Mapping[int, str]]:





             """simple docstring"""






             if self.task in ["default", "seq2seq-lm"]:
                   __SCREAMING_SNAKE_CASE       :str		    =  super().outputs
             else:
                   __SCREAMING_SNAKE_CASE       :List[str]		    =  super(SCREAMING_SNAKE_CASE__		,self							).outputs
                   if self.use_past:
                         __SCREAMING_SNAKE_CASE    ,__SCREAMING_SNAKE_CASE       :Dict		    =  self.num_layers
                         for i in range(SCREAMING_SNAKE_CASE__							):
                               __SCREAMING_SNAKE_CASE       :str		    =  {0: '''batch''', 2: '''past_sequence + sequence'''}
                               __SCREAMING_SNAKE_CASE       :Any		    =  {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       :int		    =  self._generate_dummy_inputs_for_sequence_classification_and_question_answering(
                 SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)

             # Generate decoder inputs
             __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  seq_length if not self.use_past else 1
             __SCREAMING_SNAKE_CASE       :Dict		    =  self._generate_dummy_inputs_for_sequence_classification_and_question_answering(
                 SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)
             __SCREAMING_SNAKE_CASE       :List[str]		    =  {f'''decoder_{name}''': tensor for name, tensor in decoder_inputs.items()}
             __SCREAMING_SNAKE_CASE       :Any		    =  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       :Optional[Any]		    =  common_inputs['''decoder_input_ids'''].shape[1]
                   __SCREAMING_SNAKE_CASE    ,__SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  self.num_attention_heads
                   __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  (
                       batch,
                       num_encoder_attention_heads,
                       encoder_seq_length,
                       self._config.hidden_size // num_encoder_attention_heads,
                   )
                   __SCREAMING_SNAKE_CASE       :Optional[int]		    =  decoder_seq_length + 3
                   __SCREAMING_SNAKE_CASE       :Tuple		    =  (
                       batch,
                       num_decoder_attention_heads,
                       decoder_past_length,
                       self._config.hidden_size // num_decoder_attention_heads,
                   )

                   __SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  torch.cat(
                       [common_inputs['''decoder_attention_mask'''], torch.ones(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__							)]		,dim=1							)

                   __SCREAMING_SNAKE_CASE       :Optional[Any]		    =  []
                   # If the number of encoder and decoder layers are present in the model configuration, both are considered
                   __SCREAMING_SNAKE_CASE    ,__SCREAMING_SNAKE_CASE       :Dict		    =  self.num_layers
                   __SCREAMING_SNAKE_CASE       :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       :int		    =  '''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       :Optional[int]		    =  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       :Dict		    =  self._generate_dummy_inputs_for_sequence_classification_and_question_answering(
                 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       :str		    =  common_inputs['''input_ids'''].shape
                   # Not using the same length for past_key_values
                   __SCREAMING_SNAKE_CASE       :List[str]		    =  seqlen + 2
                   __SCREAMING_SNAKE_CASE    ,__SCREAMING_SNAKE_CASE       :Union[str, Any]		    =  self.num_layers
                   __SCREAMING_SNAKE_CASE    ,__SCREAMING_SNAKE_CASE       :int		    =  self.num_attention_heads
                   __SCREAMING_SNAKE_CASE       :Tuple		    =  (
                       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       :Union[str, Any]		    =  torch.cat(
                       [common_inputs['''attention_mask'''], torch.ones(SCREAMING_SNAKE_CASE__		,SCREAMING_SNAKE_CASE__		,dtype=SCREAMING_SNAKE_CASE__							)]		,dim=1							)
                   __SCREAMING_SNAKE_CASE       :str		    =  [
                       (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       :List[Any]		    =  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       :Optional[Any]		    =  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       :List[Any]		    =  [''' '''.join([tokenizer.unk_token]							) * seq_length] * batch_size
             __SCREAMING_SNAKE_CASE       :str		    =  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       :str		    =  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__							)

             elif self.task == "causal-lm":
                   __SCREAMING_SNAKE_CASE       :int		    =  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__							)
             else:
                   __SCREAMING_SNAKE_CASE       :int		    =  self._generate_dummy_inputs_for_sequence_classification_and_question_answering(
                       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__							)      ->				str:





             """simple docstring"""






             if self.task in ["default", "seq2seq-lm"]:
                   __SCREAMING_SNAKE_CASE       :Dict		    =  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__							)