code: def create_state_multi_precision(self, index, weight):
          
          weight_master_copy = None
          if self.multi_precision and weight.dtype == numpy.float16:
              weight_master_copy = weight.astype(numpy.float32)
              return (weight_master_copy,) + (self.create_state(index, weight_master_copy),)
          if weight.dtype == numpy.float16 and not self.multi_precision:
              warnings.warn("Accumulating with float16 in optimizer can lead to "
                            "poor accuracy or slow convergence. "
                            "Consider using multi_precision=True option of the "
                            "optimizer")
          return self.create_state(index, weight)
docs: Creates auxiliary state for a given weight, including FP32 high
          precision copy if original weight is FP16.
  
          This method is provided to perform automatic mixed precision training
          for optimizers that do not support it themselves.
  
          Parameters
          ----------
          index : int
              An unique index to identify the weight.
          weight : NDArray
              The weight.
  
          Returns
          -------
          state : any obj
              The state associated with the weight.