code: def get_decoder_descriptions(model_type: str, feature_type: str):
      """This function returns a dictionary of decoder descriptions available at the type selection.
  
      The process works as follows - 1) Get a dictionary of valid decoders from the decoder config registry,
      but inverse the key/value pairs since we need to index `valid_decoders` later with an altered version
      of the decoder config class name. 2) Loop through Decoder Metadata entries, if a metadata entry has a
      decoder name that matches a valid decoder, add the description metadata to the output dictionary.
  
      Args:
          model_type (str): The model type to get decoder descriptions for
          feature_type (str): The feature type to get decoder descriptions for
      Returns:
          dict: A dictionary of decoder descriptions
      """
      output = {}
      valid_decoders = {
          cls.module_name()
          if hasattr(cls, "module_name")
          else None: registered_name
          for registered_name, cls in get_decoder_classes(
              model_type, feature_type
          ).items()
      }
  
      for k, v in DECODER_METADATA.items():
          if k in valid_decoders.keys():
              output[valid_decoders[k]] = convert_metadata_to_json(
                  v[TYPE]
              )
  
      return output
  
file_path: ludwig/ludwig/schema/decoders/utils.py
imports: from dataclasses import Field
  from typing import Any, Dict, List, Optional, Type, TYPE_CHECKING, Union
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import MODEL_ECD, TYPE
  from ludwig.schema import utils
  from ludwig.schema.metadata import DECODER_METADATA
  from ludwig.schema.metadata.parameter_metadata import convert_metadata_to_json
  from ludwig.utils.registry import Registry
label_desc: Use image node_id 4 for calling a global function with example usage: get_decoder_descriptions(model_type, feature_type) and returns: output