code: def decompress(packed_data, config):
      """Simulate group-wise dequantization."""
      if not config.enabled:
          return packed_data
  
      group_size, num_bits, group_dim, symmetric = (
          config.group_size,
          config.num_bits,
          config.group_dim,
          config.symmetric,
      )
  
      # Dequantize
      if symmetric:
          data, scale, original_shape = packed_data
          data = data / scale
      else:
          data, mn, scale, original_shape = packed_data
          data = data / scale
          data.add_(mn)
  
      # Unpad
      pad_len = (
          group_size - original_shape[group_dim] % group_size
      ) % group_size
      if pad_len:
          padded_original_shape = (
              original_shape[:group_dim]
              + (original_shape[group_dim] + pad_len,)
              + original_shape[group_dim + 1 :]
          )
          data = data.reshape(padded_original_shape)
          indices = [slice(0, x) for x in original_shape]
          return data[indices].contiguous()
      else:
          return data.view(original_shape)
  
imports: import dataclasses
  import torch
  import numpy
  from flexgen.pytorch_backend import TorchTensor, TorchDevice, DeviceType, general_copy, fix_recursive_import
  from flexgen.utils import np_dtype_to_torch_dtype
label_desc: Use image node_id 6 for calling a global function with example usage: decompress(packed_data, config) and returns: packed_data, data, data