docstr: WIP - experimental and likely to be changed/improved.
  Unused by keeping for now.
docstr_tok: ["WIP","-","experimental","and","likely","to","be","changed\/improved",".","Unused","by","keeping","for","now","."]
code: def reset_qkv_experimental(self):
      """
      WIP - experimental and likely to be changed/improved.
      Unused by keeping for now.
      """
      if self.module.attention.attn_qkvw is None:
          self.module.attention.attn_qkvw = torch.empty(
              self.qw.shape[0] * 3,
              self.qw.shape[0],
              dtype=self.qw.dtype,
              device=self.qw.device,
          )
          self.module.attention.attn_qkvb = torch.empty(
              self.qw.shape[0] * 3,
              dtype=self.qw.dtype,
              device=self.qw.device,
          )
      self.module.attention.attn_qkvw.data[
          : self.qw.shape[0]
      ] = self.qw.data
      self.module.attention.attn_qkvb.data[
          : self.qw.shape[0]
      ] = self.qb.data
      self.module.attention.attn_qkvw.data[
          self.qw.shape[0] : 2 * self.qw.shape[0]
      ] = self.kw.data
      self.module.attention.attn_qkvb.data[
          self.qw.shape[0] : 2 * self.qw.shape[0]
      ] = self.kb.data
      self.module.attention.attn_qkvw.data[
          2 * self.qw.shape[0] :
      ] = self.vw.data
      self.module.attention.attn_qkvb.data[
          2 * self.qw.shape[0] :
      ] = self.vb.data
  
      qkv_data = [
          self.qw.data,
          self.qb.data,
          self.kw.data,
          self.kb.data,
          self.vw.data,
          self.vb.data,
      ]
  
      self.qw.data = self.module.attention.attn_qkvw.data[
          : self.qw.shape[0]
      ]
      self.qb.data = self.module.attention.attn_qkvb.data[
          : self.qw.shape[0]
      ]
      self.kw.data = self.module.attention.attn_qkvw.data[
          self.qw.shape[0] : 2 * self.qw.shape[0]
      ]
      self.kb.data = self.module.attention.attn_qkvb.data[
          self.qw.shape[0] : 2 * self.qw.shape[0]
      ]
      self.vw.data = self.module.attention.attn_qkvw.data[
          2 * self.qw.shape[0] :
      ]
      self.vb.data = self.module.attention.attn_qkvb.data[
          2 * self.qw.shape[0] :
      ]
  
      for data in qkv_data:
          del data
  
file_path: DeepSpeed/deepspeed/module_inject/containers/features/split_qkv.py
imports: from abc import abstractmethod
  import torch
  from .hybrid_engine import HybridEngineContainer
label_desc: Use image node_id 6 for calling the HybridSplitQKVContainer obj's underlying member method code with example usage: obj.reset_qkv_experimental() without return types