class_docstr: This class is a data structure to keep the content in the index.json file for sharded checkpoint.
  
  Example:
      >>> index = CheckpointIndexFile.from_file('model.index.json')
      >>> index.append_metadata('model_type', 'bert')
      >>> index.append_weight_map('bert.embeddings.word_embeddings.weight', 'model_0001-of-0002.bin')
      >>> index.export('new_index.json')
class_docstr_tok: ["This","class","is","a","data","structure","to","keep","the","content","in","the","index.json","file","for","sharded","checkpoint",".","Example",":",">",">",">","index","=","CheckpointIndexFile.from_file","(","'model.index.json","'",")",">",">",">","index.append_metadata","(","'model_type","'",",","'bert","'",")",">",">",">","index.append_weight_map","(","'bert.embeddings.word_embeddings.weight","'",",","'model_0001-of-0002.bin","'",")",">",">",">","index.export","(","'new_index.json","'",")"]
docstr: Get the file name of param_group file if this is a checkpoint for optimizer.
  Returns:
      str: param_group file name
docstr_tok: ["Get","the","file","name","of","param_group","file","if","this","is","a","checkpoint","for","optimizer",".","Returns",":","str",":","param_group","file","name"]
code: def get_param_group_filename(self) -> Union[str, None]:
      """
      Get the file name of param_group file if this is a checkpoint for optimizer.
      Returns:
          str: param_group file name
      """
      filename = self.metadata.get("param_groups", None)
      if filename:
          return str(self.root_path.joinpath(filename))
      else:
          return None
  
file_path: ColossalAI/colossalai/checkpoint_io/index_file.py
imports: import json
  import os
  from collections import OrderedDict
  from pathlib import Path
  from typing import Any, Dict, List, Union
  from .utils import is_dtensor_checkpoint
label_desc: Use image node_id 12 for calling the CheckpointIndexFile obj's underlying member method code with example usage: obj.get_param_group_filename() and returns: str, None