              Default: ``False``
  
          Notes
          -----
          The backup function actually backups the model from the previous save iteration rather than
          the current save iteration. This is not a bug, but protection against long save times, as
 
</s> remove             ``True`` if the save request has come from an exit process request otherwise ``False``
 </s> add             ``True`` if the save request has come from an exit process request otherwise ``False``. </s> remove         msg = "[Saved models]"
 </s> add         msg = "[Saved optimizer state for Snapshot]" if force_save_optimizer else "[Saved models]" </s> remove         include_optimizer = self._save_optimizer == "always" or (self._save_optimizer == "exit"
                                                                 and is_exit)
 </s> add         include_optimizer = (force_save_optimizer or
                             self._save_optimizer == "always" or
                             (self._save_optimizer == "exit" and is_exit))
 </s> remove     def save(self, is_exit: bool = False) -> None:
 </s> add     def save(self, is_exit: bool = False, force_save_optimizer: bool = False) -> None:
        force_save_optimizer: bool, optional
            ``True`` to force saving the optimizer weights with the model, otherwise ``False``.
            Default:``False``

              Default: ``False``
  
        force_save_optimizer: bool, optional
            ``True`` to force saving the optimizer weights with the model, otherwise ``False``.
            Default:``False``

          Notes
          -----
          The backup function actually backups the model from the previous save iteration rather than
          the current save iteration. This is not a bug, but protection against long save times, as
keep add keep keep keep keep
 Force saving optimizer weights on snapshot 
plugins/train/model/_base/io.py