class_docstr: This lobe enables the integration of HuggingFace and SpeechBrain
  pretrained mBART models.
  
  Source paper mBART: https://arxiv.org/abs/2001.08210
  Transformer from HuggingFace needs to be installed:
  https://huggingface.co/transformers/installation.html
  
  The model is normally used as a text decoder of seq2seq models. It
  will download automatically the model from HuggingFace or use a local path.
  
  Arguments
  ---------
  source : str
      HuggingFace hub name: e.g "facebook/mbart-large-50-many-to-many-mmt"
  save_path : str
      Path (dir) of the downloaded model.
  freeze : bool (default: True)
      If True, the model is frozen. If False, the model will be trained
      alongside with the rest of the pipeline.
  target_lang: str (default: fra_Latn (a.k.a French)
      The target language code according to NLLB model.
  decoder_only : bool (default: True)
      If True, only take the decoder part (and/or the lm_head) of the model.
      This is useful in case one wants to couple a pre-trained speech encoder (e.g. wav2vec)
      with a text-based pre-trained decoder (e.g. mBART, NLLB).
  share_input_output_embed : bool (default: True)
      If True, use the embedded layer as the lm_head.
  
  Example
  -------
  >>> src = torch.rand([10, 1, 1024])
  >>> tgt = torch.LongTensor([[250008,    313,     25,    525,    773,  21525,   4004,      2]])
  >>> model_hub = "facebook/mbart-large-50-many-to-many-mmt"
  >>> save_path = "savedir"
  >>> model = mBART(model_hub, save_path) # doctest: +SKIP
  >>> outputs = model(src, tgt) # doctest: +SKIP
docstr: This method implements a decoding step for the transformer model.
  
  Arguments
  ---------
  tgt : torch.Tensor
      The sequence to the decoder.
  encoder_out : torch.Tensor
      Hidden output of the encoder.
  enc_len : torch.LongTensor
      The actual length of encoder states.
code: def decode(self, tgt, encoder_out, enc_len=None):
      """This method implements a decoding step for the transformer model.
  
      Arguments
      ---------
      tgt : torch.Tensor
          The sequence to the decoder.
      encoder_out : torch.Tensor
          Hidden output of the encoder.
      enc_len : torch.LongTensor
          The actual length of encoder states.
      """
  
      if tgt.dtype not in [torch.long, torch.int64]:
          tgt = tgt.long()
  
      tgt_mask = torch.ones(tgt.size(), device=tgt.device)
  
      output = self.model.model.decoder(
          input_ids=tgt,
          encoder_hidden_states=encoder_out,
          attention_mask=tgt_mask,
          output_attentions=True,
      )
  
      return (
          self.model.lm_head(output.last_hidden_state),
          output.cross_attentions[-1],
      )
  
file_path: speechbrain/speechbrain/lobes/models/huggingface_transformers/mbart.py
imports: import torch
  import logging
  from speechbrain.lobes.models.huggingface_transformers.huggingface import HFTransformersInterface
label_desc: Use image node_id 3 for calling the mBART obj's underlying member method code with example usage: obj.decode(tgt, encoder_out, enc_len) and returns: self,  output