code: def update(
      self,
      step: int,
      param: Tensor,
      grad: Tensor,
      exp_avg: Tensor,
      exp_avg_sq: Tensor,
  ):
      self.cpu_adam_op.step(
          step,
          self.lr,
          self.beta1,
          self.beta2,
          self.eps,
          self.weight_decay,
          True,
          param.view(-1),
          grad.view(-1),
          exp_avg.view(-1),
          exp_avg_sq.view(-1),
          -1,
      )
  
imports: import math
  from abc import abstractmethod
  from typing import Type
  import pytest
  import torch
  from torch import Tensor
  from colossalai.utils import get_current_device, multi_tensor_applier
label_desc: Use image node_id 2 for calling the CPUAdamKernel obj's underlying member method code with example usage: obj.update(step, param, grad, exp_avg, exp_avg_sq) without return types