code: def _create_model(self):
      # Load config
      self.config = AutoConfig.from_pretrained(self.model_path)
      if self.config.pretraining_tp > 1:
          warnings.warn(
              "Set config.pretraining_tp = 1 to use int4 inference"
          )
          self.config.pretraining_tp = 1
      if not self.config.use_cache:
          warnings.warn(
              "Set config.use_cache to further improve performance"
          )
          self.config.use_cache = True
  
      # Load tokenizer
      self.tokenizer = AutoTokenizer.from_pretrained(self.model_path)
      # Model initialization
      self._init_model()
      # Tie with self.model
      self.layer_names = (
          ["model.embed_tokens"]
          + [
              f"model.layers.{i}"
              for i in range(len(self.model.model.layers))
          ]
          + ["model.norm", "lm_head"]
      )
      self.generation_config = self.model.generation_config
      self.main_input_name = self.model.main_input_name
  
imports: import argparse
  import gc
  import os
  import time
  import warnings
  from typing import Dict, List, Optional, Union
  import torch
  import torch.nn
  from accelerate import init_empty_weights
  from safetensors.torch import load_file, save_file
  from tqdm.auto import tqdm
  from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer
  from transformers.generation import GenerationMixin
  from transformers.modeling_outputs import CausalLMOutputWithPast
  from bigdl.llm import optimize_model
  from bigdl.llm.transformers.low_bit_linear import FP4Params, LowBitLinear
label_desc: Use image node_id 3 for calling the LowMemoryLlama obj's underlying member method code with example usage: obj._create_model() without return types