code: def check_llm_finetuning_adalora_config(config: "ModelConfig"):
      """Checks that the adalora adapter is configured correctly.
  
      We check against PEFT's predefined target module list for ADALORA to see if this target_modules is present there. If
      not, AdaloraModel will run into issues downstream.
      """
      if config.model_type != MODEL_LLM:
          return
  
      if not config.adapter:
          return
  
      if config.adapter.type != "adalora":
          return
  
      from peft.utils import (
          TRANSFORMERS_MODELS_TO_ADALORA_TARGET_MODULES_MAPPING,
      )
  
      model_config = _get_llm_model_config(config.base_model)
      if (
          model_config.model_type
          not in TRANSFORMERS_MODELS_TO_ADALORA_TARGET_MODULES_MAPPING
      ):
          raise ConfigValidationError(
              f"Adalora adapter is not supported for {model_config.model_type} model. "
              f"Supported model types are: {list(TRANSFORMERS_MODELS_TO_ADALORA_TARGET_MODULES_MAPPING.keys())}. "
              "If you know the target modules for your model, please specify them in the config through the "
              "`target_modules` key."
          )
  
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 28 for calling a global function with example usage: check_llm_finetuning_adalora_config(config) without return types