class_docstr: Configuration object for Megatron Core blended and megatron Retro datasets
  
  Attributes:
      return_document_ids (bool): Whether to return the document ids when querying the dataset.
      Turn this option on during preprocessing.
  
      split_preprocessing (str): The Retro preprocessing split string. It follows the same
      pattern convention as 'split'. Not to be used with 'blend_per_split'.
class_docstr_tok: ["Configuration","object","for","Megatron","Core","blended","and","megatron","Retro","datasets","Attributes",":","return_document_ids","(","bool",")",":","Whether","to","return","the","document","ids","when","querying","the","dataset",".","Turn","this","option","on","during","preprocessing",".","split_preprocessing","(","str",")",":","The","Retro","preprocessing","split","string",".","It","follows","the","same","pattern","convention","as","'split","'",".","Not","to","be","used","with","'blend_per_split","'","."]
code: def __post_init__(self):
      super().__post_init__()
      assert (
          self.split is not None
      ), "the Retro data pipeline does not support 'blend_per_split'"
      assert (
          self.return_document_ids is not None
      ), "this attribute must be user defined"
      assert (
          self.split_preprocessing is not None
      ), "this attribute must be user defined"
      split_vector = parse_and_normalize_split(self.split)
      split_preprocessing_vector = parse_and_normalize_split(
          self.split_preprocessing
      )
      if not numpy.allclose(split_vector, split_preprocessing_vector):
          self.split_matrix = convert_split_vector_to_split_matrix(
              split_vector, split_preprocessing_vector
          )
          log_single_rank(
              logger,
              logging.WARNING,
              f"split =/= split_preprocessing. Let split_matrix = {self.split_matrix}",
          )
  
file_path: megatron-lm/tools/retro/query/multi_split_gpt_dataset.py
imports: import logging
  from dataclasses import dataclass
  from typing import Dict, List
  import numpy
  import torch
  from megatron.core.datasets.blended_megatron_dataset_config import convert_split_vector_to_split_matrix, parse_and_normalize_split
  from megatron.core.datasets.gpt_dataset import GPTDataset, GPTDatasetConfig
  from megatron.core.datasets.indexed_dataset import MMapIndexedDataset
  from megatron.core.datasets.utils import Split, log_single_rank
label_desc: Use image node_id 1 for calling the MultiSplitGPTDatasetConfig obj's underlying member method code with example usage: obj.__post_init__() without return types