code: def test_dataset_synthesizer_output_feature_decoder():
      config = {
          "input_features": [{"name": "sentence", "type": "text"}],
          "output_features": [{"name": "product", "type": "category"}],
          "trainer": {"epochs": 5},
          "model_type": "ecd",
      }
      build_synthetic_dataset_df(dataset_size=100, config=config)
      LudwigModel(config=config, logging_level=logging.INFO)
  
imports: import functools
  import json
  import logging
  import numpy
  import pandas
  import pytest
  from fsspec.config import conf
  from ludwig.api import LudwigModel
  from ludwig.data.cache.types import CacheableDataframe
  from ludwig.data.dataset_synthesizer import build_synthetic_dataset_df
  from ludwig.utils.data_utils import add_sequence_feature_column, figure_data_format_dataset, get_abs_path, hash_dict, NumpyEncoder, PANDAS_DF, read_csv, read_html, read_parquet, sanitize_column_names, use_credentials
  from tests.integration_tests.utils import private_param
label_desc: Use image node_id 8 for calling a global function with example usage: test_dataset_synthesizer_output_feature_decoder() without return types