docstr: Update nested variables container v from update step, using nested
  grads container. Override this abstract method with child class custom
  implementation.
  
  Parameters
  ----------
  v
      Nested variables to update.
  grads
      Nested gradients to update.
  
  Returns
  -------
  ret
      The updated variables, following update step.
docstr_tok: ["Update","nested","variables","container","v","from","update","step",",","using","nested","grads","container",".","Override","this","abstract","method","with","child","class","custom","implementation",".","Parameters","--","--","--","--","--","v","Nested","variables","to","update",".","grads","Nested","gradients","to","update",".","Returns","--","--","--","-","ret","The","updated","variables",",","following","update","step","."]
code: def _step(self, v: ivy.Container, grads: ivy.Container):
      """Update nested variables container v from update step, using nested
      grads container. Override this abstract method with child class custom
      implementation.
  
      Parameters
      ----------
      v
          Nested variables to update.
      grads
          Nested gradients to update.
  
      Returns
      -------
      ret
          The updated variables, following update step.
      """
      raise ivy.utils.exceptions.IvyNotImplementedException
  
imports: import abc
  from typing import Union, Optional, Callable
  import ivy
label_desc: Use image node_id 2 for calling the Optimizer obj's underlying member method code with example usage: obj._step(v, grads) without return types