code: def _set_up_qebc(
      self, sharding_type: str, quant_state_dict_split_scale_bias: bool
  ) -> TestModelInfo:
      local_device = torch.device("cuda:0")
      model_info = TestModelInfo(
          sparse_device=local_device,
          dense_device=local_device,
          num_features=2,
          num_float_features=10,
          num_weighted_features=2,
      )
  
      model_info.tables = [
          EmbeddingBagConfig(
              num_embeddings=(i + 1) * 10,
              embedding_dim=512,
              name="table_" + str(i),
              feature_names=["feature_" + str(i)],
          )
          for i in range(model_info.num_features)
      ]
      model_info.weighted_tables = [
          EmbeddingBagConfig(
              num_embeddings=(i + 1) * 10,
              embedding_dim=(i + 1) * 4,
              name="weighted_table_" + str(i),
              feature_names=["weighted_feature_" + str(i)],
          )
          for i in range(model_info.num_weighted_features)
      ]
      model_info.model = TorchTypesModelInputWrapper(
          TestSparseNN(
              tables=model_info.tables,
              weighted_tables=model_info.weighted_tables,
              num_float_features=model_info.num_float_features,
              dense_device=model_info.dense_device,
              sparse_device=model_info.sparse_device,
          )
      )
  
      model_info.model.training = False
      model_info.quant_model = quantize(
          model_info.model,
          inplace=True,
          quant_state_dict_split_scale_bias=quant_state_dict_split_scale_bias,
      )
  
      model_info.sharders = [
          cast(
              ModuleSharder[torch.nn.Module],
              TestQuantEBCSharder(
                  sharding_type=sharding_type,
                  kernel_type=EmbeddingComputeKernel.QUANT.value,
                  shardable_params=[
                      table.name for table in model_info.tables
                  ],
              ),
          ),
          cast(
              ModuleSharder[torch.nn.Module],
              EmbeddingCollectionSharder(),
          ),
      ]
  
      return model_info
  
imports: import unittest
  from dataclasses import dataclass
  from enum import Enum
  from typing import cast, List, Tuple
  import torch
  from torch.distributed import ProcessGroup
  from torchrec import EmbeddingCollection, EmbeddingConfig
  from torchrec.distributed.embedding import EmbeddingCollectionSharder
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel, KJTList, ListOfKJTList, ModuleSharder, ShardingType
  from torchrec.distributed.model_parallel import DistributedModelParallel
  from torchrec.distributed.planner import EmbeddingShardingPlanner, Topology
  from torchrec.distributed.planner.enumerators import EmbeddingEnumerator
  from torchrec.distributed.planner.shard_estimators import EmbeddingPerfEstimator, EmbeddingStorageEstimator
  from torchrec.distributed.shard import _shard_modules
  from torchrec.distributed.test_utils.infer_utils import assert_close, KJTInputWrapper, model_input_to_forward_args, model_input_to_forward_args_kjt, prep_inputs, quantize, TestModelInfo, TestQuantEBCSharder, TestQuantECSharder, TorchTypesModelInputWrapper
  from torchrec.distributed.test_utils.test_model import TestSparseNN
  from torchrec.distributed.types import Awaitable, ShardingEnv
  from torchrec.fx.tracer import Tracer
  from torchrec.fx.utils import fake_range
  from torchrec.modules.embedding_configs import EmbeddingBagConfig
  from torchrec.sparse.jagged_tensor import JaggedTensor, KeyedJaggedTensor, KeyedTensor
label_desc: Use image node_id 1 for calling the ModelTraceScriptTest obj's underlying member method code with example usage: obj._set_up_qebc(sharding_type, quant_state_dict_split_scale_bias) and returns: model_info