code: def _get_qweight(self, name: str):
      slice_ = self._get_slice(name)
      total_size = slice_.get_shape()[1]
      assert (
          total_size % 3 == 0
      ), "Prepacked quantized qkv is not divisible by 3"
      single_size = total_size // 3
      world_size = self.process_group.size()
      rank = self.process_group.rank()
  
      assert (
          single_size % world_size == 0
      ), f"Prepacked quantized qkv cannot be sharded across {world_size} shards"
      block_size = single_size // world_size
      start = rank * block_size
      stop = (rank + 1) * block_size
      q = slice_[:, start:stop]
      k = slice_[:, start + single_size : stop + single_size]
      v = slice_[:, start + 2 * single_size : stop + 2 * single_size]
      weight = torch.cat([q, k, v], dim=1)
      weight = weight.to(device=self.device)
      return weight
  
imports: import os
  from pathlib import Path
  from typing import List, Dict, Optional, Tuple
  from safetensors import safe_open, SafetensorError
  import torch
  from loguru import logger
  from huggingface_hub import hf_hub_download
  import json
  from text_generation_server.utils.log import log_once
label_desc: Use image node_id 9 for calling the Weights obj's underlying member method code with example usage: obj._get_qweight(name) and returns: weight