code: def get_unsharded_module_names(model: torch.nn.Module) -> List[str]:
      """
      Retrieves names of top level modules that do not contain any sharded sub-modules.
  
      Args:
          model (torch.nn.Module): model to retrieve unsharded module names from.
  
      Returns:
          List[str]: list of names of modules that don't have sharded sub-modules.
      """
  
      unsharded_module_names: Set[str] = set()
      _get_unsharded_module_names_helper(
          model,
          "",
          unsharded_module_names,
      )
      return list(unsharded_module_names)
  
imports: import copy
  import logging
  from collections import OrderedDict
  from itertools import accumulate
  from typing import Any, Dict, List, Optional, Set, Type, TypeVar, Union
  import torch
  from fbgemm_gpu.split_embedding_configs import EmbOptimType
  from torch import nn
  from torchrec import optim
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel
  from torchrec.distributed.types import DataType, ParameterSharding, ShardedModule, ShardingType
  from torchrec.modules.embedding_configs import data_type_to_sparse_type
  from torchrec.types import CopyMixIn
label_desc: Use image node_id 6 for calling a global function with example usage: get_unsharded_module_names(model) and returns: list