import os | |
import sys | |
import requests | |
from tqdm import tqdm | |
subdir = 'data' | |
if not os.path.exists(subdir): | |
os.makedirs(subdir) | |
subdir = subdir.replace('\\','/') # needed for Windows | |
for ds in [ | |
'webtext', | |
'small-117M', 'small-117M-k40', | |
'medium-345M', 'medium-345M-k40', | |
'large-762M', 'large-762M-k40', | |
'xl-1542M', 'xl-1542M-k40', | |
]: | |
for split in ['train', 'valid', 'test']: | |
filename = ds + "." + split + '.jsonl' | |
r = requests.get("https://storage.googleapis.com/gpt-2/output-dataset/v1/" + filename, stream=True) | |
with open(os.path.join(subdir, filename), 'wb') as f: | |
file_size = int(r.headers["content-length"]) | |
chunk_size = 1000 | |
with tqdm(ncols=100, desc="Fetching " + filename, total=file_size, unit_scale=True) as pbar: | |
# 1k for chunk_size, since Ethernet packet size is around 1500 bytes | |
for chunk in r.iter_content(chunk_size=chunk_size): | |
f.write(chunk) | |
pbar.update(chunk_size) | |