Hugging Face Hub 是强大的机器学习的数据源。相信大家在国内用 Hugging Face Datasets 都遇到过下载的问题。譬如:
import datasets dataset = datasets.load_dataset("codeparrot/self-instruct-starcoder", cache_dir="./hf_cache")
⌛ 结果下载到一半:
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'))))
😔 到昨天为止,我的方法还是重新启动下载脚本或者提前把数据放到本地……直到昨天要下载一个大的数据集,实在受不了 🤯。于是去看了一下文档:hf.co/docs/datase…
🚪 于是我打开了新世界的大门:
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 )
🤱 再也不用担心下载不了数据集啦!
🤔 PS: 目前还有不少上传下载的问题没有解决:
-
初始化数据集下载是容易
ConnectionError
,这个可能需要调节timeout
或者使用特殊上网方式 -
push_to_hub
没有断点续存和 retry 的机制
如果大家有什么更好的解决方案,欢迎交流 🙂