code: def _init_quantization_setting(self, quantization_setting):
      self.quantize_bits = 8
      self.mlp_extra_grouping = False
      self.quantize_groups = 1
      if type(quantization_setting) is tuple:
          (
              self.mlp_extra_grouping,
              self.quantize_groups,
          ) = quantization_setting
      elif quantization_setting is not None:
          self.quantize_groups = quantization_setting
      log_dist(
          f"quantize_bits = {self.quantize_bits} "
          f"mlp_extra_grouping = {self.mlp_extra_grouping}, "
          f"quantize_groups = {self.quantize_groups}",
          [0],
      )
  
imports: import torch
  import time
  import os
  from deepspeed import comm
  from deepspeed.utils.logging import log_dist
  from torch.nn.modules import Module
  from packaging import version
  from deepspeed.runtime.checkpoint_engine.torch_checkpoint_engine import TorchCheckpointEngine
  from deepspeed.utils.timer import SynchronizedWallClockTimer
  from ..runtime.state_dict_factory import SDLoaderFactory
  from ..runtime.weight_quantizer import WeightQuantization
  from ..module_inject.replace_module import replace_transformer_layer, generic_injection
  from ..comm.comm import init_distributed
  from ..pipe import PipelineModule
  from ..moe.utils import has_moe_layers
  from ..runtime.zero import GatheredParameters
  from ..module_inject import LinearAllreduce, LinearLayer, Normalize, ReplaceWithTensorSlicing
  from ..module_inject.replace_policy import DSPolicy
  from torch import nn
label_desc: Use image node_id 9 for calling the InferenceEngine obj's underlying member method code with example usage: obj._init_quantization_setting(quantization_setting) without return types