外观
Hugging Face 数据集(datasets)下载慢的解决方法
训练/微调时 load_dataset() 卡住、或大数据集下载超时,和下模型一样,根源是走了海外的 huggingface.co。用镜像即可解决。
方法一:datasets 库 + HF_ENDPOINT
datasets 库同样认 HF_ENDPOINT:
bash
export HF_ENDPOINT=https://hf-mirror.compython
from datasets import load_dataset
ds = load_dataset("某组织/某数据集")Python 里设置(务必在 import datasets 之前):
python
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
from datasets import load_dataset方法二:huggingface-cli 先下到本地再加载
对大数据集,先用 CLI 完整下载(可断点续传),再从本地加载,比在线流式更稳:
bash
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download --repo-type dataset 某组织/某数据集 --local-dir ./datapython
from datasets import load_dataset
ds = load_dataset("./data") # 从本地目录加载方法三:开启 hf_transfer 加速
bash
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1对大文件数据集提速明显。更多 CLI 用法见 👉 hf CLI 下载教程。
方法四:ModelScope 数据集
常见公开数据集在 ModelScope 也有镜像,国内直连:
python
from modelscope.msdatasets import MsDataset
ds = MsDataset.load('某数据集名', subset_name='default', split='train')方法五:流式加载省空间
超大数据集不想全量落盘时,用流式模式边下边用:
python
from datasets import load_dataset
ds = load_dataset("某组织/某数据集", streaming=True)
for sample in ds["train"]:
... # 按需迭代,不一次性下载配合 HF_ENDPOINT 镜像,流式也走加速节点。
常见问题
Q:load_dataset 还是连 huggingface.co? 确认 HF_ENDPOINT 在 import 之前设置且拼写正确;datasets 版本过旧的升级一下:pip install -U datasets。
Q:数据集脚本(loading script)拉取失败? 部分老数据集依赖远程脚本,镜像可能不同步;可加 trust_remote_code=True 或改用已转为 parquet 的新版数据集。
Q:镜像上没有该数据集? 走 代理直连 或找 ModelScope 上的等价数据集。
小结
- 和下模型同理:
HF_ENDPOINT=hf-mirror一招解决大半。 - 大数据集先
huggingface-cli download落地再加载,最稳。 - 超大数据集用
streaming=True省磁盘。
本文仅供技术学习与研究,请遵守所在国家/地区法律法规。