docstr: save trained model in 8bit
code: def save_pretrained(self, save_directory):
      """save trained model in 8bit"""
      super().save_pretrained(save_directory)
      # Only save the model it-self if we are using distributed training
      model_to_save = self.module if hasattr(self, "module") else self
      model_to_save.toggle_8bit(True)
      output_model_file = os.path.join(
          save_directory, QUANT_WEIGHTS_NAME
      )
      torch.save(model_to_save.state_dict(), output_model_file)
      model_to_save.toggle_8bit(False)
  
imports: import logging
  import os
  import sys
  import torch
  from torch import nn
  from transformers.modeling_bert import ACT2FN, BertAttention, BertConfig, BertEmbeddings, BertEncoder, BertForQuestionAnswering, BertForSequenceClassification, BertForTokenClassification, BertIntermediate, BertLayer, BertLayerNorm, BertModel, BertOutput, BertPooler, BertPreTrainedModel, BertSelfAttention, BertSelfOutput
  from nlp_architect.models.pretrained_models import S3_PREFIX
  from nlp_architect.nn.torch.quantization import QuantizationConfig, QuantizedEmbedding, QuantizedLayer, QuantizedLinear
label_desc: Use image node_id 3 for calling the QuantizedBertPreTrainedModel obj's underlying member method code with example usage: obj.save_pretrained(save_directory) without return types