1. 安装huggingface-cli插件
pip install -U huggingface_hub
2. 设置环境变量(配置镜像)
Linux:
# 建议将上面这一行写入 ~/.bashrc。若没有写入,则每次下载时都需要先输入该命令
export HF_ENDPOINT=https://hf-mirror.com
Windows:

3. 下载模型文件
- 如果下载全部文件,加上
--resume-download参数,默认存在缓存文件夹张可以通过--local-dir参数指定位置。
huggingface-cli download meta-llama/Llama-3.2-3B-Instruct --resume-download --local-dir ./ --token hf_***
- 若要下载多个文件可以指定文件名例如:
huggingface-cli download meta-llama/Llama-2-13b-chat-hf config.json model-00001-of-00003.safetensors --local-dir Llama-2-13b-chat-hf
- 下载多个文件并排除一些文件可使用
--include和--exclude命令
huggingface-cli download meta-llama/Llama-2-13b-chat-hf --include "*.safetensors" --exclude "*.bin"
- 需要 huggingface token 时 (Gated Repo),添加
--token参数
huggingface-cli download meta-llama/Llama-2-13b-chat-hf --include "*.safetensors" --exclude "*.bin" --token hf_****
4. 下载数据集
例如下载gsm8k:
huggingface-cli download --repo-type dataset --resume-download openai/gsm8k --local-dir ./gsm8k/
强大脚本
#!/bin/bash
# 检查依赖
check_dependencies() {
if ! command -v huggingface-cli &> /dev/null; then
echo "错误: 未找到 huggingface-cli 命令"
echo "请安装 huggingface_hub: pip install -U huggingface_hub"
exit 1
fi
}
export HF_ENDPOINT=https://hf-mirror.com
# 检查依赖
check_dependencies
# 显示功能选择菜单
echo "请选择要执行的操作:"
echo "1) 下载 Hugging Face 模型"
echo "2) 下载 Hugging Face 数据集"
read -p "请输入选项编号 (1 或 2): " choice
case $choice in
1)
# 下载模型
read -p "请输入 Hugging Face 模型标识符(例如 meta-llama/Llama-3.2-3B-Instruct): " id
type="model"
;;
2)
# 下载数据集
read -p "请输入 Hugging Face 数据集标识符(例如 ServiceNow-AI/R1-Distill-SFT): " id
type="dataset"
;;
*)
echo "无效的选择,请输入 1 或 2"
exit 1
;;
esac
# 验证输入
if [ -z "$id" ]; then
echo "错误: 未提供有效的标识符"
exit 1
fi
# 提示用户输入访问令牌(可选)
read -p "如需使用访问令牌,请输入 Hugging Face Token(可留空): " hf_token
# 从标识符中提取名称(最后一段)
name=$(basename "$id")
# 获取当前工作目录(保存下载内容的位置)
download_dir="$(pwd)/$name"
# 创建目标目录
mkdir -p "$download_dir"
if [ ! -d "$download_dir" ]; then
echo "错误: 无法创建目录 $download_dir"
exit 1
fi
# 构造并执行下载命令
if [ "$type" = "model" ]; then
echo "正在下载模型 $id 到目录 $download_dir/ ..."
if [ -z "$hf_token" ]; then
huggingface-cli download "$id" --resume-download --local-dir "$download_dir/"
else
huggingface-cli download "$id" --resume-download --local-dir "$download_dir/" --token "$hf_token"
fi
else
echo "正在下载数据集 $id 到目录 $download_dir/ ..."
if [ -z "$hf_token" ]; then
huggingface-cli download --repo-type dataset --resume-download "$id" --local-dir "$download_dir/"
else
huggingface-cli download --repo-type dataset --resume-download "$id" --local-dir "$download_dir/" --token "$hf_token"
fi
fi
if [ $? -eq 0 ]; then
echo "下载完成,文件保存在 $download_dir/ 目录"
else
echo "下载过程中出现错误,请检查网络连接和权限设置"
fi

3万+

被折叠的 条评论
为什么被折叠?



