code: def attn_qkv():
      return [
          Layer(
              weight="attention.self.query.weight",
              bias="attention.self.query.bias",
          ),
          Layer(
              weight="attention.self.key.weight",
              bias="attention.self.key.bias",
          ),
          Layer(
              weight="attention.self.value.weight",
              bias="attention.self.value.bias",
          ),
          Layer(
              weight="attention.self.query.weight_integer",
              bias="attention.self.query.bias_integer",
          ),
          Layer(
              weight="attention.self.key.weight_integer",
              bias="attention.self.key.bias_integer",
          ),
          Layer(
              weight="attention.self.value.weight_integer",
              bias="attention.self.value.bias_integer",
          ),
          Layer(bias="attention.self.query.fc_scaling_factor"),
          Layer(bias="attention.self.key.fc_scaling_factor"),
          Layer(bias="attention.self.value.fc_scaling_factor"),
      ]
  
file_path: parallelformers/parallelformers/policies/ibert.py
imports: from transformers.models.ibert.modeling_ibert import IBertLayer
  from parallelformers.policies.base import Layer, Policy
  from parallelformers.utils.dist_utils import AllReduceQuantLinear
label_desc: Use image node_id 2 for calling the IBertPolicy obj's underlying member method code with example usage: obj.attn_qkv() and returns: list