code: def test_quant_pred(
      self,
      output_type: torch.dtype,
      sharding_type_qsplitscalebias: Tuple[str, bool],
  ) -> None:
      (
          sharding_type,
          quant_state_dict_split_scale_bias,
      ) = sharding_type_qsplitscalebias
  
      device = torch.device("cuda:0")
      device_1 = torch.device("cuda:1")
      model = TestSparseNN(
          tables=self.tables,
          weighted_tables=self.weighted_tables,
          num_float_features=10,
          dense_device=device,
          sparse_device=torch.device("meta"),
      )
      quant_model = _quantize(
          model,
          inplace=True,
          output_type=output_type,
          quant_state_dict_split_scale_bias=quant_state_dict_split_scale_bias,
      )
      dmp = DistributedModelParallel(
          quant_model,
          sharders=[
              cast(
                  ModuleSharder[torch.nn.Module],
                  TestQuantEBCSharder(
                      sharding_type=sharding_type,
                      kernel_type=EmbeddingComputeKernel.QUANT.value,
                  ),
              )
          ],
          device=device,
          env=ShardingEnv.from_local(world_size=2, rank=0),
          init_data_parallel=False,
      )
      dmp_1 = dmp.copy(device_1)
      self._recursive_device_check(
          dmp.module, dmp_1.module, device, device_1
      )
  
imports: import unittest
  from typing import Any, cast, Dict, List, Optional, Tuple
  import hypothesis.strategies
  import torch
  from hypothesis import given, settings, Verbosity
  from torch import nn, quantization
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel, ModuleSharder
  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.quant_embeddingbag import QuantEmbeddingBagCollectionSharder
  from torchrec.distributed.shard import _shard_modules
  from torchrec.distributed.test_utils.test_model import _get_default_rtol_and_atol, ModelInput, TestSparseNN
  from torchrec.distributed.types import ShardedModule, ShardingEnv, ShardingType
  from torchrec.distributed.utils import copy_to_device
  from torchrec.modules.embedding_configs import EmbeddingBagConfig, QuantConfig
  from torchrec.modules.embedding_modules import EmbeddingBagCollection
  from torchrec.quant.embedding_modules import EmbeddingBagCollection, quant_prep_enable_quant_state_dict_split_scale_bias_for_types
  from torchrec.types import CopyMixIn
label_desc: Use image node_id 4 for calling the QuantModelParallelModelCopyTest obj's underlying member method code with example usage: obj.test_quant_pred(output_type, sharding_type_qsplitscalebias) without return types