code: def main(cfg) -> None:
      logging.info(
          "\n\n************** Experiment configuration ***********"
      )
      logging.info(f"\n{OmegaConf.to_yaml(cfg)}")
  
      trainer = MegatronLMPPTrainerBuilder(cfg).create_trainer()
      exp_manager(trainer, cfg.exp_manager)
  
      if cfg.model.restore_from_path is None:
          model_cfg = cfg.model
          model = MegatronNevaModel(cfg.model, trainer)
      else:
          model_cfg = MegatronNevaModel.merge_cfg_with(
              cfg.model.restore_from_path, cfg
          )
          model = MegatronNevaModel.restore_from(
              restore_path=cfg.model.restore_from_path,
              trainer=trainer,
              override_config_path=model_cfg,
              save_restore_connector=NLPSaveRestoreConnector(),
              strict=False,
          )
  
      peft_cfg_cls = PEFT_CONFIG_MAP[cfg.model.peft.peft_scheme]
  
      if cfg.model.peft.restore_from_path is not None:
          # initialize peft weights from a checkpoint instead of randomly
          # This is not the same as resume training because optimizer states are not restored.
          logging.info(
              "PEFT Weights will be loaded from",
              cfg.model.peft.restore_from_path,
          )
          model.load_adapters(
              cfg.model.peft.restore_from_path, peft_cfg_cls(model_cfg)
          )
      elif peft_cfg_cls is not None:
          logging.info("Adding adapter weights to the model for PEFT")
          model.add_adapter(peft_cfg_cls(model_cfg))
      else:
          logging.info(
              f"Running full finetuning since no peft scheme is given.\n{model.summarize()}"
          )
  
      trainer.fit(model)
  
file_path: NeMo/examples/multimodal/multimodal_llm/neva/neva_peft.py
imports: import torch.multiprocessing
  from omegaconf.omegaconf import OmegaConf
  from nemo.collections.multimodal.models.multimodal_llm.neva.neva_model import MegatronNevaModel
  from nemo.collections.nlp.parts.megatron_trainer_builder import MegatronLMPPTrainerBuilder
  from nemo.collections.nlp.parts.nlp_overrides import NLPSaveRestoreConnector
  from nemo.collections.nlp.parts.peft_config import PEFT_CONFIG_MAP
  from nemo.core.config import hydra_runner
  from nemo.utils import logging
  from nemo.utils.exp_manager import exp_manager
label_desc: Use image node_id 1 for calling a global function with example usage: main(cfg) without return types