class_docstr: CheckpointManager is a class abstraction to manage a training job's
  checkpoints/snapshots with different IO and storage.
docstr: Serialize and save post-training model snapshot to given path. State
  is a dictionary that represents the all data to be saved.
  Having a separate method for snapshots enables future optimizations like
  quantization to be applied to snapshots.
  
  Args:
      state: Dictionary containing data to be saved
      snapshot_path: path of file to save snapshot
docstr_tok: ["Serialize","and","save","post-training","model","snapshot","to","given","path",".","State","is","a","dictionary","that","represents","the","all","data","to","be","saved",".","Having","a","separate","method","for","snapshots","enables","future","optimizations","like","quantization","to","be","applied","to","snapshots",".","Args",":","state",":","Dictionary","containing","data","to","be","saved","snapshot_path",":","path","of","file","to","save","snapshot"]
code: def save_snapshot(self, state, snapshot_path):
      """
      Serialize and save post-training model snapshot to given path. State
      is a dictionary that represents the all data to be saved.
      Having a separate method for snapshots enables future optimizations like
      quantization to be applied to snapshots.
  
      Args:
          state: Dictionary containing data to be saved
          snapshot_path: path of file to save snapshot
      """
      raise NotImplementedError("Not implemented in interface class")
  
imports: import abc
  from typing import List
  import torch
  from pytext.utils.file_io import PathManager
  from pytext.utils.usage import log_class_usage
label_desc: Use image node_id 2 for calling the PyTextCheckpointManagerInterface obj's underlying member method code with example usage: obj.save_snapshot(state, snapshot_path) without return types