def METHOD_NAME(self) -> Tuple:
    data_files = {}
    if self.args.train_file is not None:
        data_files["train"] = self.args.train_file.split(',')
    if self.args.validation_file is not None:
        data_files["validation"] = self.args.validation_file
    raw_datasets: DatasetDict = load_dataset('json', data_files=data_files)
    train_dataset, eval_dataset = None, None
    if self.args.do_train:
        if "train" not in raw_datasets:
            raise ValueError("--do_train requires a train dataset")
        train_dataset = raw_datasets["train"]
        if self.args.max_train_samples is not None:
            train_dataset = train_dataset.select(range(self.args.max_train_samples))
        # Log a few random samples from the training set:
        for index in random.sample(range(len(train_dataset)), 3):
            logger.info(f"Sample {index} of the training set: {train_dataset[index]}.")
        train_dataset.set_transform(self._transform_func)
    if self.args.do_eval:
        if "validation" not in raw_datasets:
            raise ValueError("--do_eval requires a validation dataset")
        eval_dataset = raw_datasets["validation"]
        eval_dataset.set_transform(self._transform_func)
    return train_dataset, eval_dataset