🤗 Datasets 使用小贴士: 探索解决数据集无法下载的问题

Hugging Face Hub 是强大的机器学习的数据源。相信大家在国内用 Hugging Face Datasets 都遇到过下载的问题。譬如:

import datasets dataset = datasets.load_dataset("codeparrot/self-instruct-starcoder", cache_dir="./hf_cache")

:hourglass: 结果下载到一半:

ConnectionError: Couldn't reach https://huggingface.co/datasets/codeparrot/self-instruct-starcoder/resolve/fdfa8ceb317670e982aa246d8e799c52338a74a7/data/curated-00000-of-00001-c12cc48b3c68688f.parquet (ConnectionError(ProtocolError('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))))

:pensive: 到昨天为止,我的方法还是重新启动下载脚本或者提前把数据放到本地……直到昨天要下载一个大的数据集,实在受不了 :exploding_head:。于是去看了一下文档:Builder classes

:door: 于是我打开了新世界的大门:

import datasets config = datasets.DownloadConfig(resume_download=True, max_retries=100) dataset = datasets.load_dataset( "codeparrot/self-instruct-starcoder", cache_dir="./hf_cache", download_config=config )

:breast_feeding: 再也不用担心下载不了数据集啦!

:thinking: PS: 目前还有不少上传下载的问题没有解决:

  • 初始化数据集下载是容易 ConnectionError,这个可能需要调节 timeout 或者使用特殊上网方式

  • push_to_hub 没有断点续存和 retry 的机制

如果大家有什么更好的解决方案,欢迎交流 :slight_smile: