前言:
有三篇审核原因,你们看不到了。
环境:
jpn/jp/jpna(为同一台) 运行在 Ali 云,东京。 Ubuntu 24, 512MB vMem, 20GB vSSD
狗度云盘
实例:
利用日本的服务器,做文件中转。
一、配置 jpn 准备环境:
1. 安装 Python 3
更新软件包列表
sudo apt update
安装 python3
sudo apt install python3
安装 pip
sudo apt install python3-pip
安装 开发工具
sudo apt install python3-dev
验证命令:
python3 --version
pip3 --version
安装 虚拟环境
这个很有用,下载模型都会用到,如:Llama, huggingface-cli。 还有 当创建虚拟环境后, 在虚拟环境里,python linked to python3
sudo apt install python3-venv
创建软链接
sudo ln -s /usr/bin/python3.12 /usr/bin/python3
以上,做完一次就OK。
2. 激活虚拟环境
root@jpn:~# cat ./venv.p.sh
source ~/venv/bin/activate
命令太长,记不住,就写在脚本里。
以下在 虚拟环境中操作:
安装 huggingface hub 包
pip install --upgrade pip
pip install huggingface_hub
安装下载工具 git-lfs 初始化 git-lfs
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
二、从 HuggingFace 下载模型文件
1. 列出 HF 上的所有 Llama Model
参考的别人代码:list_Llama_models.py , 把代码中 llama 替换就是其它模型。
# list_Llama_models.py
from huggingface_hub import HfApi
import time
api = HfApi()
def list_llama_models():
print("查找 Llama 相关模型:")
print("-" * 50)
try:
# 添加更多筛选条件以减少结果数量
models = api.list_models(
search="llama",
limit=50, # 限制返回结果数量
)
for model in models:
print(f"模型名称: {model.id}")
print(f"下载量: {model.downloads}")
print(f"是否量化: {'是' if model.tags and 'quantized' in model.tags else '否'}")
print(f"模型大小: {model.siblings[0].size if model.siblings else '未知'} bytes")
print("-" * 50)
# 添加延迟避免请求过快
time.sleep(0.1)
except Exception as e:
print(f"获取模型列表时出错: {str(e)}")
if __name__ == "__main__":
list_llama_models()
2. 列出模型文件下载命令
lcreateCLi-dlr.py
from huggingface_hub import list_repo_files
# 默认设置
DEFAULT_SAVE_DIR = "/root/download/ai"
DEFAULT_REPO = "meta-llama/Llama-3.3-70B-Instruct"
# 输入仓库名
print(f"仓库格式示例: {DEFAULT_REPO}")
input_repo = input(f"请输入模型仓库名: ").strip()
REPO_MODEL = input_repo if input_repo else DEFAULT_REPO
# 将仓库名中的 / 替换为 --
SAVE_DIR = f"{DEFAULT_SAVE_DIR}/{REPO_MODEL.replace('/', '--')}"
# 获取文件列表并生成命令
files = list_repo_files(REPO_MODEL)
print("\n# 创建下载目录")
print(f"mkdir -p {SAVE_DIR}")
print()
for file in files:
# 跳过含有 original/ 或 .git 的文件
if 'original/' in file or '.git' in file:
continue
cmd = f"huggingface-cli download {REPO_MODEL} {file} --local-dir {SAVE_DIR}"
#print(f"# 下载 {file}")
print(cmd)
#print()
输出结果:
输入内容从点下图红圈,见 HF 网页。
只打印出命令行, 贴到 venv 中再执行下载。 还有终端要够宽,越宽越好。
下图是下载的演示:
三、使用 BaiduPCS-Go.Menu.sh (bdgo.sh)
利用 GitHub 工具 BaiduPCS-Go 传输网盘。
见: < OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)-优快云博客
总结:
模型文件集轻松超过 jpn 云主机的硬盘空间。
现在流程已经踊,下次用个脚本自动执行。
现在卡在 HuggingFace-CLI API 不能返回模型每个文件的大小。实在没试出来,也可以用文件的扩展名来判断,默认当 5GB。 花些时间,应该能用 script 实现无人值守的模型下载。