code: def __init__(
      self,
      adapter_name,
      in_features,
      out_features,
      r: int = 0,
      lora_alpha: int = 1,
      lora_dropout: float = 0.0,
      qa_lora: bool = True,
      **kwargs,
  ):
      LowBitLinear.__init__(
          self,
          in_features,
          out_features,
          qtype=kwargs.get("qtype"),
          bias=kwargs.get("bias", True),
          conver_to_half=False,
      )
  
      qk_size = get_qk_size(kwargs.get("qtype"))
      lora_in_features = (
          in_features // qk_size if qa_lora else in_features
      )
      LoraLayer.__init__(
          self, in_features=lora_in_features, out_features=out_features
      )
  
      # Freezing the pre-trained weight matrix
      self.weight.requires_grad = False
  
      init_lora_weights = kwargs.pop("init_lora_weights", True)
      self.update_layer(
          adapter_name, r, lora_alpha, lora_dropout, init_lora_weights
      )
      self.active_adapter = adapter_name
      if qa_lora:
          self.qa_pool = torch.nn.AvgPool1d(qk_size)
      else:
          self.qa_pool = torch.nn.Identity()
  
imports: import torch
  from torch.nn import Linear, Embedding
  from bigdl.llm.transformers.low_bit_linear import LowBitLinear, BF16Linear, get_qk_size
  from peft.tuners.lora import LoraLayer
  from bigdl.llm.utils.common import invalidInputError
  from bigdl.llm.transformers.utils import get_autocast_dtype
  from bigdl.llm.ggml.quantize import ggml_tensor_qtype
  import functools
  from bigdl.llm.transformers import training_patch
  from peft.tuners.lora import LoraModel
  from peft.tuners.lora import LoraConfig
  from dataclasses import dataclass, field
  from peft.mapping import PEFT_TYPE_TO_CONFIG_MAPPING
label_desc: Use image node_id 1 to create a new LoraLowBitLinear object from inherited base classes: LowBitLinear, LoraLayer with example: obj = LoraLowBitLinear(adapter_name, in_features, out_features, r, lora_alpha, lora_dropout, qa_lora)