code: def _build_samples_mapping(self):
      if self.max_num_samples is not None:
          self.samples_mapping = get_samples_mapping(
              indexed_dataset=self.indexed_dataset,
              data_prefix=self.file_path,
              num_epochs=None,
              max_num_samples=self.max_num_samples,
              max_seq_length=self.max_seq_length - 2,
              short_seq_prob=0,
              seed=self.seed,
              name=self.file_path.split("/")[-1],
              binary_head=False,
              index_mapping_dir=self.index_mapping_dir,
          )
      else:
          self.samples_mapping = None
  
imports: import re
  from typing import List, Mapping, Optional
  import datasets
  import numpy
  import torch
  from datasets import load_dataset
  from nemo.collections.common.tokenizers.tokenizer_spec import TokenizerSpec
  from nemo.collections.nlp.data.language_modeling.megatron.dataset_utils import get_samples_mapping
  from nemo.collections.nlp.data.language_modeling.text_memmap_dataset import JSONLMemMapDataset
  from nemo.core.classes import Dataset
  from nemo.utils import logging
label_desc: Use image node_id 3 for calling the GPTSFTDataset obj's underlying member method code with example usage: obj._build_samples_mapping() without return types