code: def get_module_list(model):
      mlist = []
      for child in model.children():
          if isinstance(child, nn.ModuleList):
              for module in child.children():
                  if not mlist:
                      mlist = [module]
                  elif not AutoTP.in_module_list(module, mlist):
                      mlist = mlist + [module]
          else:
              mlist = mlist + AutoTP.get_module_list(child)
      return mlist
  
imports: import re
  from torch import nn
  from .replace_policy import replace_policies
  from typing import Optional
  import torch
  from deepspeed import comm
  from .layers import LinearAllreduce, LinearLayer, LmHeadLinearAllreduce
  from deepspeed.accelerator import get_accelerator
  from .fusedqkv_utils import require_tp_fused_qkvw, prepare_tp_fused_qkvw
  from deepspeed.module_inject.tp_shard import get_shard_size, get_shard_size_list
label_desc: Use image node_id 3 for calling the AutoTP obj's underlying member method code with example usage: obj.get_module_list(model) and returns: mlist