
教你顺利下载Huggingface上的大模型文件
在这个全民AI的时代,很多网友都想捣鼓一下大模型,要玩大模型,有时候需要本地部署,而本地部署则需要下载大模型文件,由于众所周知的原因,国内无法直接访问Huggingface网站,大家一般用的是镜像站https://hf-mirror.com但是如果用Huggingface官方的下载工具从镜像站下载大模型,则很不稳定,经常中断,要反复很多次才能下载好,为了解决这个问题,我编写了一个shell脚本,保
教你顺利下载Huggingface上的大模型文件
:::
👉 原文链接:mp.weixin.qq…
🕑 **闪存时间:**2025-04-25 17:46:56
❤️️ 本文由钉钉文档闪存一键生成
:::
在这个全民AI的时代,很多网友都想捣鼓一下大模型,要玩大模型,有时候需要本地部署,而本地部署则需要下载大模型文件,由于众所周知的原因,国内无法直接访问Huggingface网站,大家一般用的是镜像站https://hf-mirror.com
但是如果用Huggingface官方的下载工具从镜像站下载大模型,则很不稳定,经常中断,要反复很多次才能下载好,为了解决这个问题,我编写了一个shell脚本,保证能完整下载大模型文件,哪怕是满血版的deepseek R1(高达720GB)也没问题,只要带宽不是很慢,差不多一个晚上能下载好。
下图是我之前下载的经过Q4量化的deepseek R1,总共接近400GB,睡个觉就下载完了
脚本的逻辑很简单,就是检测huggingface-cli退出代码,如果不是正常退出的,说明报错了,那就自动重新开始下载模型文件,直到下载完成为止。
接下来讲如何操作(本篇文章以ubuntu server 24.04系统为例,本脚本只支持Linux系统):
首先需要安装python和huggingface-cli:
sudo apt updatesudo apt install python3 -y
#验证安装
python3 --version
#安装包管理工具
sudo apt install python3-pip -y
python3 -m venv huggingface
创建虚拟环境
source huggingface/bin/activate
激活环境
pip install -U huggingface_hub
#安装huggingface-cli工具
export HF_ENDPOINT=https://hf-mirror.com
然后就可以准备开始下载了,下载之前,还要给脚本文件授予执行权限
chmod +x download_huggingface_models.sh
现在就可以开始用脚本下载Huggingface上任意一个大模型了,这里以下载microsoft/Phi-4-mini-instruct大模型为例,其实这是个小模型,总共不超过10GB
运行脚本,加上一个参数即可,这个参数就是Huggingface网站上模型的id
./download_huggingface_models.sh microsoft/Phi-4-mini-instruct
输出如下,可以看到快得飞起,默认情况下,可同时下载8个文件
如果下载出错了,比如网络不稳定等原因造成中断,脚本会自动重新开始下载,而且是断电续传。
下载完成后,如果不想继续在python虚拟环境了,可以输入这个命令回到之前的shell
deactive
以下是shell脚本代码:
#!/usr/bin/bash
# Script to download Hugging Face models with automatic retry functionality
# Usage: ./download_huggingface_models.sh <model_name>
# Example: ./download_huggingface_models.sh deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
# Set environment variables for Hugging Face
export HF_ENDPOINT="https://hf-mirror.com"
export HF_HUB_DOWNLOAD_TIMEOUT=18000
# Function to display usage information
show_usage() {
echo "Usage: $0 <model_name>"
echo "Example: $0 deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"
exit 1
}
# Check if model name is provided
if [ $# -ne 1 ]; then
show_usage
fi
MODEL_NAME=$1
echo "Starting download of model: $MODEL_NAME"
# Function to download the model
download_model() {
huggingface-cli download --resume-download "$MODEL_NAME"
return $?
}
# Main download loop with retry functionality
while true; do
echo "Attempting to download $MODEL_NAME..."
if download_model; then
echo "Download completed successfully!"
break
else
echo "Download failed. Retrying in 5 seconds..."
sleep 5
fi
done
echo "Model download process finished."
更多推荐
所有评论(0)