class_docstr: Megatron Bert pretraining.
  Model returns [batch, seq, hidden] shape
class_docstr_tok: ["Megatron","Bert","pretraining",".","Model","returns","[","batch",",","seq",",","hidden","]","shape"]
docstr: LightningModule hook:
  https://pytorch-lightning.readthedocs.io/en/stable/common/lightning_module.html#on-save-checkpoint
code: def on_save_checkpoint(self, checkpoint) -> None:
      """LightningModule hook:
      https://pytorch-lightning.readthedocs.io/en/stable/common/lightning_module.html#on-save-checkpoint
      """
      if isinstance(self.model, list):
          for i in range(len(self.model)):
              parallel_state.set_virtual_pipeline_model_parallel_rank(i)
              checkpoint[f"model{i}"] = self.model[
                  i
              ].module.state_dict_for_save_checkpoint()
          parallel_state.set_virtual_pipeline_model_parallel_rank(0)
  
imports: import itertools
  from typing import Any, Dict, List, Optional
  import torch
  import torch.nn.functional
  from omegaconf.dictconfig import DictConfig
  from pytorch_lightning.trainer.trainer import Trainer
  from nemo.collections.nlp.data.language_modeling.megatron import dataset_utils
  from nemo.collections.nlp.data.language_modeling.megatron.data_samplers import MegatronPretrainingRandomSampler, MegatronPretrainingSampler
  from nemo.collections.nlp.models.language_modeling.megatron.bert_model import BertModel
  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.utils import ApexGuardDefaults, average_losses_across_data_parallel_group, get_params_for_weight_decay_optimization
  from nemo.collections.nlp.parts.nlp_overrides import GradScaler
  from nemo.collections.nlp.parts.utils_funcs import get_last_rank
  from nemo.core.classes.common import PretrainedModelInfo
  from nemo.core.neural_types import ChannelType, MaskType, NeuralType
  from nemo.utils import AppState, logging
label_desc: Use image node_id 33 for calling the MegatronBertModel obj's underlying member method code with example usage: obj.on_save_checkpoint(checkpoint) without return types