class_docstr: ``PromptModel`` is the encapsulation of ``Template`` and the ``pre-trained model``,
  with OpenPrompt, these modules could be flexibly combined. And this class is the base class of ``PromptForClassification`` and ``PromptForGeneration``
  
  Args:
      plm (:obj:`PreTrainedModel`): The pre-trained language model for the current prompt-learning task.
      template (:obj:`Template`): The ``Template`` object to warp the input data.
      freeze_plm (:obj:`bool`): whether or not to freeze the pretrained language model
      plm_eval_mode (:obj:`bool`): this is a stronger freezing mode than freeze_plm, i.e. the dropout of the model is turned off. No matter whether the other part is set to train.
code: def _prepare_main_input_name(self):
      model = self.plm
      if hasattr(model, "encoder") and hasattr(
          model.encoder, "main_input_name"
      ):
          if model.encoder.main_input_name != model.main_input_name:
              main_input_name = model.encoder.main_input_name
          else:
              main_input_name = model.main_input_name
      else:
          main_input_name = getattr(
              model, "main_input_name", "input_ids"
          )
      self.main_input_name = main_input_name
  
imports: from typing import *
  from utils import round_list, signature
  import paddle
label_desc: Use image node_id 2 for calling the erniePromptModel obj's underlying member method code with example usage: obj._prepare_main_input_name() without return types