class_docstr: Abstract base class for QA Datasets with common utility methods 
class_docstr_tok: ["Abstract","base","class","for","QA","Datasets","with","common","utility","methods"]
code: def dump_features_to_cache(cached_filename, features):
      master_device = (
          not torch.distributed.is_initialized()
          or torch.distributed.get_rank() == 0
      )
      if master_device:
          logging.info(
              f"Saving train features into cached file {cached_filename}"
          )
          with open(cached_filename, "wb") as writer:
              pickle.dump(features, writer)
  
imports: import collections
  import pickle
  from functools import lru_cache
  from typing import List
  import psutil
  import torch
  from nemo.collections.nlp.data.data_utils import is_whitespace
  from nemo.collections.nlp.data.question_answering.data_processor.qa_processing import EVALUATION_MODE, INFERENCE_MODE, TRAINING_MODE
  from nemo.core.classes import Dataset
  from nemo.utils import logging
label_desc: Use image node_id 5 for calling the QADataset obj's underlying member method code with example usage: obj.dump_features_to_cache(cached_filename, features) without return types