class_docstr: Class for experiment with multiple trial types.
  
  A canonical use case for this is tuning a large production system
  with limited evaluation budget and a simulator which approximates
  evaluations on the main system. Trial deployment and data fetching
  is separate for the two systems, but the final data is combined and
  fed into multi-task models.
  
  See the Multi-Task Modeling tutorial for more details.
  
  Attributes:
      name: Name of the experiment.
      description: Description of the experiment.
class_docstr_tok: ["Class","for","experiment","with","multiple","trial","types",".","A","canonical","use","case","for","this","is","tuning","a","large","production","system","with","limited","evaluation","budget","and","a","simulator","which","approximates","evaluations","on","the","main","system",".","Trial","deployment","and","data","fetching","is","separate","for","the","two","systems",",","but","the","final","data","is","combined","and","fed","into","multi-task","models",".","See","the","Multi-Task","Modeling","tutorial","for","more","details",".","Attributes",":","name",":","Name","of","the","experiment",".","description",":","Description","of","the","experiment","."]
docstr: Inits Experiment.
  
  Args:
      name: Name of the experiment.
      search_space: Search space of the experiment.
      default_trial_type: Default type for trials on this experiment.
      default_runner: Default runner for trials of the default type.
      optimization_config: Optimization config of the experiment.
      tracking_metrics: Additional tracking metrics not used for optimization.
      runner: Default runner used for trials on this experiment.
      status_quo: Arm representing existing "control" arm.
      description: Description of the experiment.
      is_test: Convenience metadata tracker for the user to mark test experiments.
      experiment_type: The class of experiments this one belongs to.
      properties: Dictionary of this experiment's properties.
      default_data_type: Enum representing the data type this experiment uses.
docstr_tok: ["Inits","Experiment",".","Args",":","name",":","Name","of","the","experiment",".","search_space",":","Search","space","of","the","experiment",".","default_trial_type",":","Default","type","for","trials","on","this","experiment",".","default_runner",":","Default","runner","for","trials","of","the","default","type",".","optimization_config",":","Optimization","config","of","the","experiment",".","tracking_metrics",":","Additional","tracking","metrics","not","used","for","optimization",".","runner",":","Default","runner","used","for","trials","on","this","experiment",".","status_quo",":","Arm","representing","existing","``","control","''","arm",".","description",":","Description","of","the","experiment",".","is_test",":","Convenience","metadata","tracker","for","the","user","to","mark","test","experiments",".","experiment_type",":","The","class","of","experiments","this","one","belongs","to",".","properties",":","Dictionary","of","this","experiment","'s","properties",".","default_data_type",":","Enum","representing","the","data","type","this","experiment","uses","."]
code: def __init__(
      self,
      name: str,
      search_space: SearchSpace,
      default_trial_type: str,
      default_runner: Runner,
      optimization_config: Optional[OptimizationConfig] = None,
      status_quo: Optional[Arm] = None,
      description: Optional[str] = None,
      is_test: bool = False,
      experiment_type: Optional[str] = None,
      properties: Optional[Dict[str, Any]] = None,
      default_data_type: Optional[DataType] = None,
  ) -> None:
      """Inits Experiment.
  
      Args:
          name: Name of the experiment.
          search_space: Search space of the experiment.
          default_trial_type: Default type for trials on this experiment.
          default_runner: Default runner for trials of the default type.
          optimization_config: Optimization config of the experiment.
          tracking_metrics: Additional tracking metrics not used for optimization.
          runner: Default runner used for trials on this experiment.
          status_quo: Arm representing existing "control" arm.
          description: Description of the experiment.
          is_test: Convenience metadata tracker for the user to mark test experiments.
          experiment_type: The class of experiments this one belongs to.
          properties: Dictionary of this experiment's properties.
          default_data_type: Enum representing the data type this experiment uses.
      """
  
      self._default_trial_type = default_trial_type
  
      # Map from trial type to default runner of that type
      self._trial_type_to_runner: Dict[str, Runner] = {
          default_trial_type: default_runner
      }
  
      # Specifies which trial type each metric belongs to
      self._metric_to_trial_type: Dict[str, str] = {}
  
      # Maps certain metric names to a canonical name. Useful for ancillary trial
      # types' metrics, to specify which primary metrics they correspond to
      # (e.g. 'comment_prediction' => 'comment')
      self._metric_to_canonical_name: Dict[str, str] = {}
  
      # call super.__init__() after defining fields above, because we need
      # them to be populated before optimization config is set
      super(MultiTypeExperiment, self).__init__(
          name=name,
          search_space=search_space,
          optimization_config=optimization_config,
          status_quo=status_quo,
          description=description,
          is_test=is_test,
          experiment_type=experiment_type,
          properties=properties,
          default_data_type=default_data_type,
      )
  
imports: import logging
  from typing import Any, Dict, List, Optional, Set
  from ax.core.arm import Arm
  from ax.core.base_trial import BaseTrial
  from ax.core.data import Data
  from ax.core.experiment import DataType, Experiment
  from ax.core.metric import Metric, MetricFetchResult
  from ax.core.optimization_config import OptimizationConfig
  from ax.core.runner import Runner
  from ax.core.search_space import SearchSpace
  from ax.utils.common.docutils import copy_doc
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 1 to create a new MultiTypeExperiment object from inherited base classes: Experiment with example: obj = MultiTypeExperiment(name, search_space, default_trial_type, default_runner, optimization_config, status_quo, description, is_test, experiment_type, properties, default_data_type)