class_docstr: This is a generic GPTQ runner that takes an existing model and applies GPTQ.
  It uses torch._dynamo.export to obtain a graph of the model and then hooks
  into function calls and when it detects a linear, it applies GPTQ to the weight
  given the calibration of inputs passed in at initialization. It puts the results
  into the state_dict so that the quantized model weights/qparams can be loaded
  directly into the model.
  
  This class is expected to work in concert with a GPTQSimpleQuantizer
  class to define the specific type of quantization being done.
code: def get_quantized_state_dict(self):
      assert (
          self.gptq_done
      ), "need to run GPTQRunner before you can get_quantized_state_dict"
      quantized_state_dict = self.new_state_dict
      # Don't want to store/load the kv_cache so remove it from the state_dict
      del_list = []
      for param_fqn in quantized_state_dict:
          if "kv_cache" in param_fqn:
              del_list.append(param_fqn)
      for param_fqn in del_list:
          quantized_state_dict.pop(param_fqn)
      return quantized_state_dict
  
imports: import os
  import sys
  import torch
  import main
  import torch.fx
  import torch.nn
  import torch.nn.functional
  from torch.utils._pytree import tree_flatten, tree_unflatten
  from eval import setup_cache_padded_seq_input_pos_max_seq_length_for_prefill
  from generate import encode_tokens
label_desc: Use image node_id 4 for calling the GenericGPTQRunner obj's underlying member method code with example usage: obj.get_quantized_state_dict() and returns: quantized_state_dict