summarize_from_feedback/datasets/__init__.py (33 lines of code) (raw):
import random
import torch
from summarize_from_feedback.datasets.cnndm import (
cnndm_generator,
cnndm_filtered_generator,
cnndm_filtered_generator_short,
)
from summarize_from_feedback.datasets.test import test_generator
from summarize_from_feedback.datasets.tldr import (
tldr_filtered_generator,
tldr_filtered_queries_generator,
)
from summarize_from_feedback.utils import even_more_itertools
_DATASETS = {
"tldr_3_filtered": tldr_filtered_generator,
"tldr_3_filtered_queries": tldr_filtered_queries_generator,
"test": test_generator,
"cnndm": cnndm_generator,
"cnndm_filtered": cnndm_filtered_generator,
"cnndm_filtered_short": cnndm_filtered_generator_short,
}
def get_dataset(name, split, layout, repeat=True, seed=None):
if seed is None:
seed = torch.initial_seed()
data = list(_DATASETS[name](split))
def shuffled():
my_random = random.Random(seed)
while True:
my_random.shuffle(data)
yield from data
if not repeat:
return
return even_more_itertools.distribute(shuffled(), layout=layout)