class_docstr: FP16 Optimizer without weight fusion to support LAMB optimizer
  
  For usage example please see, TODO:  DeepSpeed V2 Tutorial
class_docstr_tok: ["FP16","Optimizer","without","weight","fusion","to","support","LAMB","optimizer","For","usage","example","please","see",",","TODO",":","DeepSpeed","V2","Tutorial"]
code: def unscale_and_clip_grads(self, total_norm, apply_scale=True):
      # compute combined scale factor for this group
      combined_scale = self.cur_scale
      if self.clip_grad > 0.0:
          # norm is in fact norm*scale
          clip = ((total_norm / self.cur_scale) + 1e-6) / self.clip_grad
          if clip > 1:
              combined_scale = clip * self.cur_scale
  
      if apply_scale:
          for group in self.fp32_groups:
              for param in group:
                  if param.grad is not None:
                      param.grad.data.mul_(1.0 / combined_scale)
  
      return combined_scale
  
imports: from deepspeed.moe.utils import split_params_grads_into_shared_and_expert_params
  import torch
  from torch._utils import _flatten_dense_tensors
  from deepspeed.runtime import DeepSpeedOptimizer
  from deepspeed.runtime.utils import get_global_norm, CheckOverflow, get_weight_norm, required_torch_version
  from deepspeed.runtime.fp16.loss_scaler import INITIAL_LOSS_SCALE, SCALE_WINDOW, MIN_LOSS_SCALE
  from deepspeed.utils import logger
  from deepspeed.checkpoint.constants import OPTIMIZER_STATE_DICT
  from deepspeed.accelerator import get_accelerator
  from deepspeed import comm
label_desc: Use image node_id 8 for calling the FP16_UnfusedOptimizer obj's underlying member method code with example usage: obj.unscale_and_clip_grads(total_norm, apply_scale) and returns: combined_scale