code: def check_comparator_combiner_requirements(
      config: "ModelConfig",
  ) -> None:  # noqa: F821
      """Checks that all of the feature names for entity_1 and entity_2 are valid features."""
      if config.model_type != MODEL_ECD:
          return
      if config.combiner.type != "comparator":
          return
  
      input_feature_names = [
          input_feature.name for input_feature in config.input_features
      ]
      for feature_name in config.combiner.entity_1:
          if feature_name not in input_feature_names:
              raise ConfigValidationError(
                  f"Feature {feature_name} in entity_1 for the comparator combiner is not a valid "
                  "input feature name."
              )
      for feature_name in config.combiner.entity_2:
          if feature_name not in input_feature_names:
              raise ConfigValidationError(
                  f"Feature {feature_name} in entity_2 for the comparator combiner is not a valid "
                  "input feature name."
              )
  
      if sorted(
          config.combiner.entity_1 + config.combiner.entity_2
      ) != sorted(input_feature_names):
          raise ConfigValidationError(
              "Not all input features are present as entities in the comparator combiner."
          )
  
imports: from abc import ABC, abstractmethod
  from re import findall
  from typing import Callable, TYPE_CHECKING
  from transformers import AutoConfig
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import AUDIO, BINARY, CATEGORY, IMAGE, IN_MEMORY, MIN_QUANTIZATION_BITS_FOR_MERGE_AND_UNLOAD, MODEL_ECD, MODEL_GBM, MODEL_LLM, NUMBER, SEQUENCE, SET, TEXT, TIMESERIES, VECTOR
  from ludwig.error import ConfigValidationError
  from ludwig.utils.metric_utils import get_feature_to_metric_names_map_from_feature_collection
  from ludwig.utils.misc_utils import merge_dict
label_desc: Use image node_id 10 for calling a global function with example usage: check_comparator_combiner_requirements(config) without return types