code: def ggml_convert_low_bit(
      model,
      qtype,
      optimize_model=True,
      convert_shape_only=False,
      device="cpu",
      modules_to_not_convert=None,
      cpu_embedding=False,
      lightweight_bmm=False,
      torch_dtype="auto",
  ):
      logger.info(
          f"Converting the current model to "
          f"{list(ggml_tensor_qtype.keys())[list(ggml_tensor_qtype.values()).index(qtype)]} "
          f"format......"
      )
      modules_to_not_convert = (
          []
          if modules_to_not_convert is None
          else modules_to_not_convert
      )
  
      if optimize_model:
          model = _optimize_pre(model)
  
      model, has_been_replaced = _replace_with_low_bit_linear(
          model,
          qtype,
          modules_to_not_convert,
          None,
          convert_shape_only,
          cpu_embedding,
      )
      if not has_been_replaced:
          warnings.warn(
              "No linear modules were found in "
              "your model. This can happen for some architectures such as gpt2 that uses Conv1D "
              "instead of Linear layers. Please double check your model architecture, or submit "
              "an issue on github if you think this is a bug."
          )
      elif device == "cpu":
          if not (
              getattr(model, "quantization_method", None) == "gptq"
          ):
              if torch_dtype == "auto":
                  convert_bigdl_other_module(model, torch.float32)
              else:
                  convert_bigdl_other_module(model, torch_dtype)
      elif device == "meta":
          # Do nothing here for weights are empty.
          pass
  
      if optimize_model:
          model = _optimize_post(model, lightweight_bmm)
      return model
  
imports: import platform
  import torch
  import torch.nn
  from accelerate import init_empty_weights
  import warnings
  import transformers
  import importlib.util
  from bigdl.llm.ggml.quantize import ggml_tensor_qtype
  from .utils import logger
  from typing import Union
  import numpy
  import os
  from bigdl.llm.utils.common import invalidInputError
label_desc: Use image node_id 9 for calling a global function with example usage: ggml_convert_low_bit(model, qtype, optimize_model, convert_shape_only, device, modules_to_not_convert, cpu_embedding, lightweight_bmm, torch_dtype) and returns: model