code: def setup_experiment(experiment: Dict[str, str]) -> Dict[Any, Any]:
      """Set up the backend and load the Ludwig config.
  
      Args:
          experiment: dictionary containing the dataset name, config path, and experiment name.
          Returns a Ludwig config.
      """
      shutil.rmtree(
          os.path.join(experiment["experiment_name"]),
          ignore_errors=True,
      )
      if "config_path" not in experiment:
          experiment["config_path"] = create_default_config(experiment)
      model_config = load_yaml(experiment["config_path"])
  
      if experiment["process_config_file_path"]:
          process_config_spec = importlib.util.spec_from_file_location(
              "process_config_file_path.py",
              experiment["process_config_file_path"],
          )
          process_module = importlib.util.module_from_spec(
              process_config_spec
          )
          process_config_spec.loader.exec_module(process_module)
          model_config = process_module.process_config(
              model_config, experiment
          )
          experiment["config_path"] = experiment["config_path"].replace(
              ".yaml",
              "-" + experiment["experiment_name"] + "-modified.yaml",
          )
          save_yaml(experiment["config_path"], model_config)
  
      return model_config
  
file_path: ludwig/ludwig/benchmarking/benchmark.py
imports: import argparse
  import importlib
  import logging
  import os
  import shutil
  from typing import Any, Dict, Tuple, Union
  import ludwig.datasets
  from ludwig.api import LudwigModel
  from ludwig.benchmarking.artifacts import BenchmarkingResult, build_benchmarking_result
  from ludwig.benchmarking.profiler_callbacks import LudwigProfilerCallback
  from ludwig.benchmarking.utils import create_default_config, delete_hyperopt_outputs, delete_model_checkpoints, export_artifacts, load_from_module, populate_benchmarking_config_with_defaults, propagate_global_parameters, save_yaml, validate_benchmarking_config
  from ludwig.contrib import add_contrib_callback_args
  from ludwig.hyperopt.run import hyperopt
  from ludwig.utils.data_utils import load_yaml
label_desc: Use image node_id 1 for calling a global function with example usage: setup_experiment(experiment) and returns: model_config