def METHOD_NAME(self, mode):
    if mode == "train":
        return DataLoader(
            self.train_dataset,
            sampler=WeightedRandomSampler(
                weights=self.train_dataset.sample_weights,
                num_samples=len(self.train_dataset.sample_weights),
                replacement=True,
            ),
            batch_size=self.datarc["batch_size"],
            drop_last=True,
            num_workers=self.datarc["num_workers"],
            collate_fn=self.train_dataset.collate_fn,
        )
    if mode == "valid":
        return DataLoader(
            self.valid_dataset,
            sampler=WeightedRandomSampler(
                weights=self.valid_dataset.sample_weights,
                num_samples=self.datarc["valid_size"],
                replacement=True,
            ),
            batch_size=self.datarc["batch_size"],
            drop_last=True,
            num_workers=self.datarc["num_workers"],
            collate_fn=self.valid_dataset.collate_fn,
        )
    if mode in ["dev", "eval"]:
        self.test_dataset = QUESST14Testset(mode, **self.datarc)
        return DataLoader(
            self.test_dataset,
            shuffle=False,
            batch_size=self.datarc["batch_size"],
            drop_last=False,
            num_workers=self.datarc["num_workers"],
            collate_fn=self.test_dataset.collate_fn,
        )
    raise NotImplementedError