code: def start_cloud_training(
      input_dict: Dict[str, List[types.Artifact]],
      output_dict: Dict[str, List[types.Artifact]],
      exec_properties: Dict[str, Any],
      executor_class_path: str,
      job_args: Dict[str, Any],
      job_id: Optional[str],
      job_labels: Optional[Dict[str, Any]] = None,  # AI Platform only.
      enable_vertex: Optional[bool] = False,
      vertex_region: Optional[str] = None,
  ):
      """Start a trainer job on AI Platform (AIP).
  
      This is done by forwarding the inputs/outputs/exec_properties to the
      tfx.scripts.run_executor module on a AI Platform training job interpreter.
  
      Args:
        input_dict: Passthrough input dict for tfx.components.Trainer.executor.
        output_dict: Passthrough input dict for tfx.components.Trainer.executor.
        exec_properties: Passthrough input dict for tfx.components.Trainer.executor.
        executor_class_path: class path for TFX core default trainer.
        job_args: Training argument for AI Platform training job. 'pythonModule',
          'pythonVersion' and 'runtimeVersion' will be inferred. For the full set of
          parameters supported by Vertex AI CustomJob, refer to
           https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.customJobs#CustomJob
             For the full set of parameters supported by Google Cloud AI Platform
             (CAIP) TrainingInput, refer to
           https://cloud.google.com/ml-engine/docs/tensorflow/training-jobs#configuring_the_job
        job_id: Job ID for AI Platform Training job. If not supplied,
          system-determined unique ID is given. Refer to
          https://cloud.google.com/ml-engine/reference/rest/v1/projects.jobs#resource-job.
            In Vertex AI, the job_id corresponds to the display name, a unique ID is
            always given to the created job.
        job_labels: Labels for AI Platform training job.
        enable_vertex: Whether to enable Vertex or not.
        vertex_region: Region for endpoint in Vertex training.
  
      Returns:
        None
      """
      # Project was stowaway in job_args and has finally reached its destination.
      project = job_args.pop("project")
  
      client = training_clients.get_job_client(
          enable_vertex, vertex_region
      )
      training_job = client.create_training_job(
          input_dict,
          output_dict,
          exec_properties,
          executor_class_path,
          job_args,
          job_id,
          job_labels,
      )
  
      _launch_cloud_training(
          project=project,
          training_job=training_job,
          enable_vertex=enable_vertex,
          vertex_region=vertex_region,
      )
  
file_path: tfx/tfx/extensions/google_cloud_ai_platform/runner.py
imports: import time
  from typing import Any, Dict, List, Optional
  from absl import logging
  from googleapiclient import discovery
  from tfx import types
  from tfx.extensions.google_cloud_ai_platform import prediction_clients
  from tfx.extensions.google_cloud_ai_platform import training_clients
  from tfx.utils import version_utils
label_desc: Use image node_id 3 for calling a global function with example usage: start_cloud_training(input_dict, output_dict, exec_properties, executor_class_path, job_args, job_id, job_labels, enable_vertex, vertex_region) without return types