docstr: Creates instances.
  
  Returns dict mapping instance id to VM object for the created
  instances.
code: def create_node(self, node_config, tags, count) -> Dict[str, Any]:
      """Creates instances.
  
      Returns dict mapping instance id to VM object for the created
      instances.
      """
      filters = tags.copy()
      if TAG_RAY_CLUSTER_NAME not in tags:
          filters[TAG_RAY_CLUSTER_NAME] = self.cluster_name
  
      to_be_launched_node_count = count
  
      logger.info(f"Create {count} node with tags : {filters}")
  
      created_nodes_dict = {}
      if to_be_launched_node_count > 0:
          created_nodes_dict = self._create_node(
              node_config, filters, to_be_launched_node_count
          )
  
      return created_nodes_dict
  
imports: import copy
  import logging
  import threading
  import uuid
  from concurrent.futures import ThreadPoolExecutor
  from typing import Any, Dict
  from pyVmomi import vim
  from ray.autoscaler._private.vsphere.config import bootstrap_vsphere, is_dynamic_passthrough
  from ray.autoscaler._private.vsphere.gpu_utils import get_gpu_cards_from_vm, get_vm_2_gpu_cards_map, plug_gpu_cards_to_vm, set_gpu_placeholder, split_vm_2_gpu_cards_map
  from ray.autoscaler._private.vsphere.pyvmomi_sdk_provider import PyvmomiSdkProvider
  from ray.autoscaler._private.vsphere.scheduler import SchedulerFactory
  from ray.autoscaler._private.vsphere.utils import Constants, now_ts
  from ray.autoscaler._private.vsphere.vsphere_sdk_provider import VsphereSdkProvider
  from ray.autoscaler.node_provider import NodeProvider
  from ray.autoscaler.tags import TAG_RAY_CLUSTER_NAME, TAG_RAY_NODE_NAME
label_desc: Use image node_id 13 for calling the VsphereNodeProvider obj's underlying member method code with example usage: obj.create_node(node_config, tags, count) and returns: created_nodes_dict