class_docstr: QKV parameter for Megatron-style QKV projection with GQA-style QKV projection. In this
  storage format each of the groups is stored consecutively, so there will be multiple q_heads,
  then one k head, and one v head.
  
  Note: this container expects the model implementation to implement properties for
  `head_size`, `n_q_heads`, and `n_kv_heads`.
  
  src_qkv_w shape: [(2 * n_kv_heads + n_q_heads) * head_size, in_features]
  qkv_w shape: [(2 * n_kv_heads + n_q_heads) * head_size, in_features]
code: def finalize(self) -> torch.Tensor:
      head_size = self.inference_model.head_size
      n_q_heads = self.inference_model.n_heads_q
      n_kv_heads = self.inference_model.n_heads_kv
      transposed_param = transform_gqa_megatron(
          self.params, head_size, n_q_heads, n_kv_heads
      )
      return self.inference_model.transform_qkv_param(transposed_param)
  
file_path: DeepSpeed/deepspeed/inference/v2/model_implementations/common_parameters/qkv_parameters.py
imports: import torch
  from ...model_implementations.parameter_base import ParameterBase
label_desc: Use image node_id 1 for calling the GQAMegatronQKVParameter obj's underlying member method code with example usage: obj.finalize() and returns: self