code: def _create_model_parallel_group(self, config):
      # Call the init process
      if InferenceEngine.inference_mp_group is None:
          init_distributed()
          local_rank = int(os.getenv("LOCAL_RANK", "0"))
          torch.cuda.set_device(local_rank)
  
          ranks = [i for i in range(config.tensor_parallel.tp_size)]
          self.mp_group = dist.new_group(ranks)
          InferenceEngine.inference_mp_group = self.mp_group
      else:
          self.mp_group = InferenceEngine.inference_mp_group
  
imports: import torch
  import time
  import os
  from deepspeed import comm
  from deepspeed.utils.logging import log_dist
  from torch.nn.modules import Module
  from packaging import version
  from deepspeed.runtime.checkpoint_engine.torch_checkpoint_engine import TorchCheckpointEngine
  from deepspeed.utils.timer import SynchronizedWallClockTimer
  from ..runtime.state_dict_factory import SDLoaderFactory
  from ..runtime.weight_quantizer import WeightQuantization
  from ..module_inject.replace_module import replace_transformer_layer, generic_injection
  from ..comm.comm import init_distributed
  from ..pipe import PipelineModule
  from ..moe.utils import has_moe_layers
  from ..runtime.zero import GatheredParameters
  from ..module_inject import LinearAllreduce, LinearLayer, Normalize, ReplaceWithTensorSlicing
  from ..module_inject.replace_policy import DSPolicy
  from torch import nn
label_desc: Use image node_id 7 for calling the InferenceEngine obj's underlying member method code with example usage: obj._create_model_parallel_group(config) without return types