code: def supported(model):
      unsupported = [
          "deberta",
          "flaubert",
          "fsmt",
          "gpt2",
          "led",
          "longformer",
          "xlm",
          "xlnet",
      ]
      model = str(model)
      key = re.search(r": (.*?)Model", model)
      if key is None:
          key = re.search(r": (.*?)Stack", model)
      if key is None:
          key = re.match(r"(.*?)Model", model)
      assert (
          key is not None
      ), "Not able to determine model policy automatically. Please provide policy."
      if key.group(1).lower() in unsupported:
          return False
      return True
  
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 4 for calling the AutoTP obj's underlying member method code with example usage: obj.supported(model) and returns: True, False