gpt2_chat / examples /chinese_chitchat /step_1_prepare_data.py
qgyd2021's picture
[update]add model
03ee06f
raw
history blame
2.37 kB
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import argparse
from itertools import chain
import os
from pathlib import Path
import platform
if platform.system() == "Windows":
from project_settings import project_path
else:
project_path = os.path.abspath("./")
project_path = Path(project_path)
from datasets import load_dataset, concatenate_datasets, IterableDataset, Dataset
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument("--dataset_path", default="qgyd2021/chinese_chitchat", type=str)
parser.add_argument("--dataset_split", default=None, type=str)
parser.add_argument(
"--dataset_cache_dir",
default=(project_path / "hub_datasets").as_posix(),
type=str
)
parser.add_argument("--dataset_streaming", default=False, type=bool)
parser.add_argument("--valid_dataset_size", default=10000, type=int)
parser.add_argument(
"--num_workers",
default=None if platform.system() == "Windows" else os.cpu_count() // 2,
type=str
)
parser.add_argument("--seed", default=3407, type=str, help="https://arxiv.org/abs/2109.08203")
args = parser.parse_args()
return args
def main():
args = get_args()
names = [
"qingyun", "chatterbot", "douban", "ptt", "subtitle", "tieba", "weibo", "xiaohuangji"
]
dataset_list = list()
for name in names:
dataset_dict = load_dataset(
path=args.dataset_path,
name=name,
split=args.dataset_split,
cache_dir=args.dataset_cache_dir,
num_proc=args.num_workers if not args.dataset_streaming else None,
streaming=args.dataset_streaming,
)
dataset = dataset_dict["train"]
dataset_list.append(dataset)
dataset = concatenate_datasets(dataset_list)
if args.dataset_streaming:
valid_dataset = dataset.take(args.valid_dataset_size)
train_dataset = dataset.skip(args.valid_dataset_size)
train_dataset = train_dataset.shuffle(buffer_size=args.shuffle_buffer_size, seed=None)
else:
dataset = dataset.train_test_split(test_size=args.valid_dataset_size, seed=None)
train_dataset = dataset["train"]
valid_dataset = dataset["test"]
print(train_dataset)
print(valid_dataset)
return
if __name__ == '__main__':
main()