repo_type="dataset",用于下载数据集关键经验: 如果作为 model 下载失败(401错误),立即尝试作为 dataset 下载。
在中国大陆,使用镜像源可大幅提升下载速度:
python展开代码os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
huggingface_hub.snapshot_download() - 自动处理大文件和断点续传git clone - 当 huggingface_hub 失败时使用python展开代码import os
from huggingface_hub import snapshot_download
# 设置镜像源(推荐)
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
# 下载仓库
repo_id = "username/repo_name"
local_dir = "/path/to/save"
try:
# 先尝试作为 model 下载
snapshot_download(
repo_id=repo_id,
local_dir=local_dir,
)
except Exception:
# 如果失败,尝试作为 dataset 下载
snapshot_download(
repo_id=repo_id,
repo_type="dataset",
local_dir=local_dir,
)
原因: 仓库类型不匹配(model vs dataset)或需要认证 解决:
repo_type="dataset"HF_TOKEN 环境变量原因: 无法访问 huggingface.co 解决:
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'原因: 私有仓库需要 token 解决:
bash展开代码export HF_TOKEN=your_token_here
# 或
export HUGGINGFACE_HUB_TOKEN=your_token_here
python展开代码#!/usr/bin/env python3
import os
import sys
from huggingface_hub import snapshot_download
def download_hf_repo(repo_id: str, local_dir: str, use_mirror: bool = True):
"""下载 Hugging Face 仓库"""
if use_mirror:
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
os.makedirs(local_dir, exist_ok=True)
# 先尝试作为 model
try:
snapshot_download(repo_id=repo_id, local_dir=local_dir)
print(f"✅ 下载完成: {local_dir}")
return
except Exception as e:
print(f"作为 model 下载失败,尝试作为 dataset...")
# 再尝试作为 dataset
try:
snapshot_download(
repo_id=repo_id,
repo_type="dataset",
local_dir=local_dir
)
print(f"✅ 下载完成: {local_dir}")
except Exception as e:
print(f"❌ 下载失败: {e}")
sys.exit(1)
# 使用示例
if __name__ == "__main__":
download_hf_repo(
repo_id="hugxd/mmdu_val",
local_dir="/mnt/data/datasets/mmdu_val"
)
bash展开代码# 设置镜像源
export HF_ENDPOINT=https://hf-mirror.com
# 设置 token(如需要)
export HF_TOKEN=your_token
# 使用 Python 下载
python -c "from huggingface_hub import snapshot_download; snapshot_download(repo_id='username/repo', local_dir='./repo')"


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!