code: def _create_model(
      self, type: str, sentence_embedding_model: str
  ) -> Tuple[SentenceTransformer, str]:
      if (
          type == SIMSCE
          and sentence_embedding_model in SIM_SCE_MODELS_DICT.keys()
      ):
          # should be auto-uploaded to CUDA if GPU is available
          return (
              SimCSE(sentence_embedding_model),
              SIM_SCE_MODELS_DICT[sentence_embedding_model],
          )
      elif (
          type == SENT_TRANS
          and sentence_embedding_model in TRANSFORMER_MODELS_DICT.keys()
      ):
          # Load model from HuggingFace Hub
          model = SentenceTransformer(sentence_embedding_model)
          model.eval().to(self.device)
          return (
              model,
              TRANSFORMER_MODELS_DICT[sentence_embedding_model],
          )
      else:
          raise ValueError(
              f"Only {list(TRANSFORMER_MODELS_DICT.keys())} and {list(SIM_SCE_MODELS_DICT.keys())} "
              + f"models are supported for {SEQ_EMB_MODEL_TYPES} sentence embeddings"
          )
  
imports: from collections import defaultdict
  import itertools
  import math
  import numpy
  from typing import Any, Dict, Iterable, List, Optional, Tuple, Union
  import torch
  from torch import nn
  from tqdm import tqdm
  from projects.roscoe.utils import cosine_similarity_scaled, embedding_alignment, al_mean
label_desc: Use image node_id 6 for calling the Evaluator obj's underlying member method code with example usage: obj._create_model(type, sentence_embedding_model) and returns: SimCSE,  SIM_SCE_MODELS_DICT, model,  TRANSFORMER_MODELS_DICT