code: def get_model(train_X, train_Y, use_model_list, standardize_model):
      num_objectives = train_Y.shape[-1]
  
      if standardize_model:
          if use_model_list:
              outcome_transform = Standardize(m=1)
          else:
              outcome_transform = Standardize(m=num_objectives)
      else:
          outcome_transform = None
  
      if use_model_list:
          model = ModelListGP(
              *[
                  SingleTaskGP(
                      train_X=train_X,
                      train_Y=train_Y[:, i : i + 1],
                      outcome_transform=outcome_transform,
                  )
                  for i in range(num_objectives)
              ]
          )
      else:
          model = SingleTaskGP(
              train_X=train_X,
              train_Y=train_Y,
              outcome_transform=outcome_transform,
          )
  
      return model
  
imports: from itertools import product
  import torch
  from botorch.acquisition.multi_objective.joint_entropy_search import LowerBoundMultiObjectiveEntropySearch, qLowerBoundMultiObjectiveJointEntropySearch
  from botorch.acquisition.multi_objective.utils import compute_sample_box_decomposition
  from botorch.exceptions import UnsupportedError
  from botorch.models.gp_regression import SingleTaskGP
  from botorch.models.model_list_gp_regression import ModelListGP
  from botorch.models.transforms.outcome import Standardize
  from botorch.sampling.normal import SobolQMCNormalSampler
  from botorch.utils.testing import BotorchTestCase
label_desc: Use image node_id 1 for calling a global function with example usage: get_model(train_X, train_Y, use_model_list, standardize_model) and returns: model