< 自用文儿 从 huggingface 下载模型 > huggingface-cli 方法

前言:

有三篇审核原因,你们看不到了。

环境:

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 实现无人值守的模型下载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值