优雅的从huggingface上下载文件

1. 安装huggingface-cli插件

pip install -U huggingface_hub

2. 设置环境变量(配置镜像)

Linux:

# 建议将上面这一行写入 ~/.bashrc。若没有写入,则每次下载时都需要先输入该命令
export HF_ENDPOINT=https://hf-mirror.com  

Windows:
在这里插入图片描述

3. 下载模型文件

  1. 如果下载全部文件,加上--resume-download参数,默认存在缓存文件夹张可以通过--local-dir参数指定位置。
huggingface-cli download meta-llama/Llama-3.2-3B-Instruct --resume-download --local-dir ./ --token hf_***
  1. 若要下载多个文件可以指定文件名例如:
huggingface-cli download meta-llama/Llama-2-13b-chat-hf config.json model-00001-of-00003.safetensors --local-dir Llama-2-13b-chat-hf
  1. 下载多个文件并排除一些文件可使用--include--exclude命令
huggingface-cli download meta-llama/Llama-2-13b-chat-hf --include "*.safetensors" --exclude "*.bin"
  1. 需要 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值