code: def shardable_parameters(
      self, module: FusedEmbeddingCollection
  ) -> Dict[str, nn.Parameter]:
      params = {
          # state_dict value looks like model.embeddings.table_0.weights
          name.split(".")[-2]: param
          for name, param in module.state_dict().items()
          if name.endswith(".weight")
      }
      return params
  
imports: from typing import Dict, Iterator, List, Optional, Type
  import torch
  from torch import nn
  from torch.nn.parallel import DistributedDataParallel
  from torchrec.distributed.embedding import ShardedEmbeddingCollection
  from torchrec.distributed.embedding_types import BaseEmbeddingSharder, EmbeddingComputeKernel
  from torchrec.distributed.sharding.dp_sharding import DpPooledEmbeddingSharding
  from torchrec.distributed.types import ParameterSharding, ShardingEnv, ShardingType
  from torchrec.distributed.utils import append_prefix
  from torchrec.modules.fused_embedding_modules import convert_optimizer_type_and_kwargs, FusedEmbeddingCollection
  from torchrec.optim.fused import FusedOptimizerModule
label_desc: Use image node_id 2 for calling the FusedEmbeddingCollectionSharder obj's underlying member method code with example usage: obj.shardable_parameters(module) and returns: params