class_docstr: Base class for model saving operations
  
  Inherited classes must implement private methods:
  * `_save`
  * `_rm_checkpoint
class_docstr_tok: ["Base","class","for","model","saving","operations","Inherited","classes","must","implement","private","methods",":","*","`","_save","`","*","`","_rm_checkpoint"]
docstr: Save a resumable checkpoint.
  
  Args:
      step (int): step number
      model (nn.Module): torch model to save
  
  Returns:
      (str, str):
  
      * checkpoint_name: name (or path) of the saved checkpoint
      * model_name: name (or path) of the saved safetensors weights if applicable
docstr_tok: ["Save","a","resumable","checkpoint",".","Args",":","step","(","int",")",":","step","number","model","(","nn.Module",")",":","torch","model","to","save","Returns",":","(","str",",","str",")",":","*","checkpoint_name",":","name","(","or","path",")","of","the","saved","checkpoint","*","model_name",":","name","(","or","path",")","of","the","saved","safetensors","weights","if","applicable"]
code: def _save(self, step, model):
      """Save a resumable checkpoint.
  
      Args:
          step (int): step number
          model (nn.Module): torch model to save
  
      Returns:
          (str, str):
  
          * checkpoint_name: name (or path) of the saved checkpoint
          * model_name: name (or path) of the saved safetensors weights if applicable
      """
  
      raise NotImplementedError()
  
file_path: OpenNMT-py/onmt/models/model_saver.py
imports: import os
  import torch
  import re
  from collections import deque
  from onmt.utils.logging import logger
  from onmt.inputters.inputter import vocabs_to_dict
  from onmt.modules.lora import lora_state_dict
label_desc: Use image node_id 3 for calling the ModelSaverBase obj's underlying member method code with example usage: obj._save(step, model) without return types