code: def _start_training(backend_executor: BackendExecutor, fn):
      storage = StorageContext(
          storage_path=tempfile.mkdtemp(),
          experiment_dir_name="exp_name",
          trial_dir_name="trial_name",
      )
      backend_executor.start_training(
          train_func=fn,
          datasets={},
          metadata={},
          data_config=DataConfig(),
          storage=storage,
      )
  
imports: import math
  import os
  import tempfile
  import time
  from unittest.mock import patch
  import pytest
  import ray
  import ray._private.ray_constants
  from ray import train
  from ray.air._internal.util import StartTraceback
  from ray.tests.conftest import pytest_runtest_makereport
  from ray.train import DataConfig
  from ray.train._internal.backend_executor import BackendExecutor, InactiveWorkerGroupError, TrainBackendError, TrainingWorkerError
  from ray.train._internal.storage import StorageContext
  from ray.train._internal.worker_group import WorkerGroup, WorkerMetadata
  from ray.train.backend import Backend, BackendConfig
  from ray.train.constants import ENABLE_SHARE_CUDA_VISIBLE_DEVICES_ENV, ENABLE_SHARE_NEURON_CORES_ACCELERATOR_ENV, TRAIN_ENABLE_WORKER_SPREAD_ENV
  from ray.train.tensorflow import TensorflowConfig
  from ray.train.torch import TorchConfig
  from ray.util.placement_group import get_current_placement_group
  from ray.util.scheduling_strategies import PlacementGroupSchedulingStrategy
label_desc: Use image node_id 2 for calling a global function with example usage: _start_training(backend_executor, fn) without return types