def METHOD_NAME(self, fl_ctx: FLContext):
    # get app root
    app_root = fl_ctx.get_prop(FLContextKey.APP_ROOT)
    # Load model configuration to initialize training NeMo environment
    self.config = OmegaConf.load(os.path.join(app_root, self.config_path))
    self.config.trainer.devices = self.devices
    self.config.model.language_model_path = os.path.join(app_root, self.gpt_file_name)
    # Using defaults from `init_prompt_encoder` in `MegatronBasePromptLearningModel`
    _encoder_type = PromptEncoderType(self.config.model.p_tuning.get("encoder_type", "mlp").lower())
    if _encoder_type == PromptEncoderType.TPMLP:
        self._init_environment()
    PromptEncoder.__init__(
        self,
        encoder_type=_encoder_type,
        total_virtual_tokens=self.total_virtual_tokens,
        token_dim=self.hidden_size,
        hidden_size=self.config.model.p_tuning.get("encoder_hidden", self.hidden_size // 2),
        lstm_dropout=self.config.model.p_tuning.get("dropout", 0.0),
        num_layers=self.config.model.p_tuning.get("num_layers", 2),
        init_std=self.config.model.p_tuning.get("init_std", 0.023),
        taskname=self.taskname,
    )
    self.log_info(fl_ctx, f"Initialized prompt encoder type {_encoder_type}")