class_docstr: Megatron encoder-decoder base class
class_docstr_tok: ["Megatron","encoder-decoder","base","class"]
docstr: Dataloader produces a global batch which is turned into a list of microbatches.
  The list of microbatches is then piped through the pipeline using megatron-core fwd/bwd functions.
docstr_tok: ["Dataloader","produces","a","global","batch","which","is","turned","into","a","list","of","microbatches",".","The","list","of","microbatches","is","then","piped","through","the","pipeline","using","megatron-core","fwd\/bwd","functions","."]
code: def fwd_bwd_step(self, dataloader_iter, batch_idx, forward_only):
      """
      Dataloader produces a global batch which is turned into a list of microbatches.
      The list of microbatches is then piped through the pipeline using megatron-core fwd/bwd functions.
      """
      # Get seq length of batch
      tensor_shape = [
          self.max_encoder_seq_length,
          self.cfg.micro_batch_size,
          self.cfg.encoder.hidden_size,
      ]
  
      return self._execute_fwd_bwd_function(
          data_iterator=dataloader_iter,
          forward_only=forward_only,
          tensor_shape=tensor_shape,
          decoder_seq_length=self.max_decoder_seq_length,
      )
  
imports: import copy
  import functools
  import inspect
  from typing import Any, Dict, List, Optional
  import torch
  from omegaconf import OmegaConf, open_dict
  from omegaconf.dictconfig import DictConfig
  from pytorch_lightning.accelerators import CPUAccelerator
  from pytorch_lightning.trainer.trainer import Trainer
  from nemo.collections.nlp.data.language_modeling.megatron.data_samplers import MegatronPretrainingRandomSampler, MegatronPretrainingSampler
  from nemo.collections.nlp.models.language_modeling.megatron_base_model import MegatronBaseModel
  from nemo.collections.nlp.modules.common.megatron.build_model import build_model
  from nemo.collections.nlp.modules.common.megatron.module import Float16Module
  from nemo.collections.nlp.modules.common.megatron.token_level_encoder_decoder import MegatronTokenLevelEncoderDecoderModule
  from nemo.collections.nlp.modules.common.megatron.utils import ApexGuardDefaults, average_losses_across_data_parallel_group, get_params_for_weight_decay_optimization
  from nemo.collections.nlp.modules.common.text_generation_utils import compute_beam_search_len_penalty, get_sampling_token_fn
  from nemo.collections.nlp.parts.utils_funcs import get_last_rank
  from nemo.utils import AppState, logging
label_desc: Use image node_id 9 for calling the MegatronLMEncoderDecoderModel obj's underlying member method code with example usage: obj.fwd_bwd_step(dataloader_iter, batch_idx, forward_only) and returns: self