code: def get_REMBO(
      experiment: Experiment,
      data: Data,
      A: torch.Tensor,
      initial_X_d: torch.Tensor,
      bounds_d: List[Tuple[float, float]],
      search_space: Optional[SearchSpace] = None,
      dtype: torch.dtype = torch.double,
      device: torch.device = DEFAULT_TORCH_DEVICE,
      **model_kwargs: Any,
  ) -> TorchModelBridge:
      """Instantiates a BotorchModel."""
      if search_space is None:
          search_space = experiment.search_space
      if data.df.empty:
          raise ValueError("REMBO model requires non-empty data.")
      return TorchModelBridge(
          experiment=experiment,
          search_space=search_space,
          data=data,
          model=REMBO(
              A=A,
              initial_X_d=initial_X_d,
              bounds_d=bounds_d,
              **model_kwargs,
          ),
          transforms=[CenteredUnitX, StandardizeY],
          torch_dtype=dtype,
          torch_device=device,
      )
  
imports: import math
  from collections import defaultdict
  from typing import Any, Dict, List, Optional, Set, Tuple
  import numpy
  import torch
  from ax.core.data import Data
  from ax.core.experiment import Experiment
  from ax.core.generator_run import GeneratorRun
  from ax.core.search_space import SearchSpace
  from ax.modelbridge.factory import DEFAULT_TORCH_DEVICE
  from ax.modelbridge.generation_strategy import GenerationStep, GenerationStrategy
  from ax.modelbridge.random import RandomModelBridge
  from ax.modelbridge.torch import TorchModelBridge
  from ax.modelbridge.transforms.centered_unit_x import CenteredUnitX
  from ax.modelbridge.transforms.standardize_y import StandardizeY
  from ax.models.random.rembo_initializer import REMBOInitializer
  from ax.models.torch.rembo import REMBO
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 2 for calling a global function with example usage: get_REMBO(experiment, data, A, initial_X_d, bounds_d, search_space, dtype, device) and returns: TorchModelBridge