def METHOD_NAME(self, split, epoch=0, combine=False, **kwargs):
    """Load a given dataset split.
    Args:
        split (str): name of the split (e.g., train, valid, test)
    """
    paths = self.args.data.split(':')
    assert len(paths) > 0
    data_path = paths[epoch % len(paths)]
    split_path = os.path.join(data_path, split)
    dataset = data_utils.load_indexed_dataset(
        split_path,
        self.source_dictionary,
        self.args.dataset_impl,
        combine=combine,
    )
    if dataset is None:
        raise FileNotFoundError('Dataset not found: {} ({})'.format(split, split_path))
    # create continuous blocks of tokens
    dataset = TokenBlockDataset(
        dataset,
        dataset.sizes,
        self.args.tokens_per_sample - 1,  # one less for <s>
        pad=self.source_dictionary.pad(),
        eos=self.source_dictionary.eos(),
        break_mode=self.args.sample_break_mode,
    )
    print('| loaded {} blocks from: {}'.format(len(dataset), split_path))
    # prepend beginning-of-sentence token (<s>, equiv. to [CLS] in BERT)
    dataset = PrependTokenDataset(dataset, self.source_dictionary.bos())
    # create masked input and targets
    mask_whole_words = get_whole_word_mask(self.args, self.source_dictionary) \
        if self.args.mask_whole_words else None
    src_dataset, tgt_dataset = MaskTokensDataset.apply_mask(
        dataset,
        self.source_dictionary,
        pad_idx=self.source_dictionary.pad(),
        mask_idx=self.mask_idx,
        seed=self.args.seed,
        mask_prob=self.args.mask_prob,
        leave_unmasked_prob=self.args.leave_unmasked_prob,
        random_token_prob=self.args.random_token_prob,
        freq_weighted_replacement=self.args.freq_weighted_replacement,
        mask_whole_words=mask_whole_words,
    )
    with data_utils.numpy_seed(self.args.seed + epoch):
        shuffle = np.random.permutation(len(src_dataset))
    self.datasets[split] = SortDataset(
        NestedDictionaryDataset(
            {
                'id': IdDataset(),
                'net_input': {
                    'src_tokens': PadDataset(
                        src_dataset,
                        pad_idx=self.source_dictionary.pad(),
                        left_pad=False,
                    ),
                    'src_lengths': NumelDataset(src_dataset, reduce=False),
                },
                'target': PadDataset(
                    tgt_dataset,
                    pad_idx=self.source_dictionary.pad(),
                    left_pad=False,
                ),
                'nsentences': NumSamplesDataset(),
                'ntokens': NumelDataset(src_dataset, reduce=True),
            },
            sizes=[src_dataset.sizes],
        ),
        sort_order=[
            shuffle,
            src_dataset.sizes,
        ],
    )