code: def guest_setup(
      self,
      train_set=None,
      validate_set=None,
      output_dir=None,
      saved_model=None,
  ):
      # load bottom model
      b_model = loader_load_from_conf(self.bottom_model_conf)
      # load top model
      t_model = loader_load_from_conf(self.top_model_conf)
  
      agglayer_arg = None
      if self.agglayer_arg_conf is not None:
          agglayer_arg = parse_agglayer_conf(self.agglayer_arg_conf)
  
      top_model_strategy = None
      if self.top_model_strategy_arg_conf is not None:
          top_model_strategy = TopModelStrategyArguments(
              **self.top_model_strategy_arg_conf
          )
  
      if b_model is None:
          logger.info("guest side bottom model is None")
  
      model = HeteroNNModelGuest(
          top_model=t_model,
          bottom_model=b_model,
          agglayer_arg=agglayer_arg,
          top_arg=top_model_strategy,
      )
      logger.info("model initialized, model is {}.".format(model))
      (
          optimizer,
          loss,
          data_collator,
          tokenizer,
          training_args,
      ) = self._setup(model, output_dir, saved_model)
      trainer = HeteroNNTrainerGuest(
          ctx=self.get_context(),
          model=model,
          optimizer=optimizer,
          train_set=train_set,
          val_set=validate_set,
          training_args=training_args,
          tokenizer=tokenizer,
          data_collator=data_collator,
          loss_fn=loss,
      )
  
      return trainer, model
  
imports: import logging
  from fate.components.components.nn.loader import Loader
  from typing import Optional, Union, Dict, Literal
  from fate.arch.dataframe import DataFrame
  from fate.components.components.nn.nn_runner import NNRunner, loader_load_from_conf, load_model_dict_from_path, dir_warning, run_dataset_func
  from transformers.trainer_utils import get_last_checkpoint
  from fate.ml.nn.hetero.hetero_nn import HeteroNNTrainerGuest, HeteroNNTrainerHost, TrainingArguments
  from fate.ml.nn.model_zoo.hetero_nn_model import HeteroNNModelGuest, HeteroNNModelHost
  from fate.components.components.utils import consts
  from fate.ml.nn.dataset.table import TableDataset, Dataset
  from fate.ml.nn.model_zoo.hetero_nn_model import FedPassArgument, StdAggLayerArgument, parse_agglayer_conf, TopModelStrategyArguments
label_desc: Use image node_id 4 for calling the DefaultRunner obj's underlying member method code with example usage: obj.guest_setup(train_set, validate_set, output_dir, saved_model) and returns: trainer,  model