class_docstr: MegatronGPTPTuningModel is a model that combines a base model (GPTSFTModel) with a p-tuning prefix in the
  input word embedding representations using a prompt-encoder as descripted in Liu et al. https://arxiv.org/pdf/2103.10385.pdf
  
  The mixin framework adds the output of prompt-encoder (i.e. the virtual embeddings) inside
  nemo/collections/nlp/modules/common/megatron/language_model.py
code: def __init__(self, cfg: DictConfig, trainer: Trainer):
      self.peft_name_keys = [AdapterName.PTUNING_ADAPTER]
  
      adapter_cfg = PromptEncoderAdapterConfig(
          cfg.peft.p_tuning.virtual_tokens,
          cfg.peft.p_tuning.bottleneck_dim,
          cfg.peft.p_tuning.embedding_dim,
          cfg.peft.p_tuning.init_std,
          cfg.hidden_size,
      )
      self.name_key_to_cfg = {AdapterName.PTUNING_ADAPTER: adapter_cfg}
      self.name_key_to_mcore_mixins = {
          AdapterName.PTUNING_ADAPTER: [
              ("embedding", MCoreGPTEmbeddingMixin)
          ]
      }
      super().__init__(cfg, trainer)
      self.virtual_tokens = cfg.peft.p_tuning.virtual_tokens
  
imports: from omegaconf.dictconfig import DictConfig
  from pytorch_lightning.trainer.trainer import Trainer
  from nemo.collections.nlp.models.language_modeling.megatron_gpt_sft_model import MegatronGPTSFTModel
  from nemo.collections.nlp.modules.common.megatron.adapters.mcore_mixins import MCoreGPTEmbeddingMixin, MCoreSelfAttentionMixin, MCoreTransformerLayerMixin, swap_mcore_mixin
  from nemo.collections.nlp.modules.common.megatron.adapters.parallel_adapters import AdapterName, InfusedAdapterConfig, LoraKQVAdapterConfig, LoraKQVAdapterWeightTyingConfig, MLPInfusedAdapterConfig, ParallelLinearAdapterConfig, ParallelLinearAdapterWeightTyingConfig, PromptEncoderAdapterConfig
  from nemo.core.classes.mixins import adapter_mixins
  from nemo.utils import logging, model_utils
  from nemo.utils.decorators import deprecated
label_desc: Use image node_id 1 to create a new MegatronGPTPTuningModel object from inherited base classes: MegatronGPTPEFTModel with example: obj = MegatronGPTPTuningModel(cfg, trainer)