code: def get_sample_from_cluster(self, cidx, num_samples):
      start_idx = self.data_cluster_current_position[cidx]
      samples = list(
          np.copy(
              self.data_clusters[cidx][0][
                  start_idx : (start_idx + num_samples)
              ]
          )
      )
      self.data_cluster_current_position[cidx] += num_samples
      if len(samples) < num_samples:
          num_samples_remained = num_samples - len(samples)
          logger.info(f"reshuffling cluster {cidx}.")
          self.reshuffle_clusters(cidx)
          samples += list(
              np.copy(
                  self.data_clusters[cidx][0][:num_samples_remained]
              )
          )
          self.data_cluster_current_position[
              cidx
          ] = num_samples_remained
      return samples
  
imports: import torch
  import os
  import numpy
  import deepspeed.comm
  from deepspeed.utils import logger
  from deepspeed.accelerator import get_accelerator
  from ..constants import *
  from ..curriculum_scheduler import CurriculumScheduler
  from .indexed_dataset import MMapIndexedDataset
  from .utils import create_mmap_dataset_builder, close_mmap_dataset_builder, find_fit_int_dtype
label_desc: Use image node_id 10 for calling the DeepSpeedDataSampler obj's underlying member method code with example usage: obj.get_sample_from_cluster(cidx, num_samples) and returns: samples