code: def _update_num_samples(num_samples, hyperparam_search_space):
      max_num_samples = 1
      for param in hyperparam_search_space.keys():
          if hyperparam_search_space[param][SPACE] == "choice":
              max_num_samples *= len(
                  hyperparam_search_space[param]["categories"]
              )
          else:
              return num_samples
      if max_num_samples < num_samples:
          return max_num_samples
      return num_samples
  
imports: import copy
  import logging
  import math
  from collections import OrderedDict
  from typing import List
  import psutil
  from ludwig.api import LudwigModel
  from ludwig.backend import initialize_backend
  from ludwig.constants import AUTO, AUTOML_DEFAULT_TEXT_ENCODER, AUTOML_LARGE_TEXT_DATASET, AUTOML_MAX_ROWS_PER_CHECKPOINT, AUTOML_SMALLER_TEXT_ENCODER, AUTOML_SMALLER_TEXT_LENGTH, AUTOML_TEXT_ENCODER_MAX_TOKEN_LEN, HYPEROPT, MINIMUM_BATCH_SIZE, PREPROCESSING, SPACE, TEXT, TRAINER
  from ludwig.data.preprocessing import preprocess_for_training
  from ludwig.features.feature_registries import update_config_with_metadata
  from ludwig.schema.model_config import ModelConfig
  from ludwig.utils.automl.utils import get_model_type
  from ludwig.utils.torch_utils import initialize_pytorch
label_desc: Use image node_id 11 for calling a global function with example usage: _update_num_samples(num_samples, hyperparam_search_space) and returns: num_samples, max_num_samples, num_samples