服务器下载 Hugging Face 模型笔记:以 Qwen2.5-Coder-7B-CL 为例
服务器下载 Hugging Face 模型笔记:以 Qwen2.5-Coder-7B-CL 为例
前言
在服务器上部署大模型时,第一步通常是把 Hugging Face 上的模型下载到服务器本地。
这件事看起来只是一个下载命令:
1 | hf download xxx/xxx |
但实际操作中经常会遇到几个问题:
- 服务器磁盘很多,不知道模型该放哪里
- huggingface-cli / hf 命令找不到
- 服务器访问 Hugging Face 慢,需要镜像源
- 目录权限不够,下载时 Permission denied
- 下载完成后不知道如何检查文件是否完整
本文以下载模型:
1 | czlll/Qwen2.5-Coder-7B-CL |
到服务器目录:
1 | /data2/like/models/Qwen2.5-Coder-7B-CL |
为例,完整整理一次服务器下载 Hugging Face 模型的过程。
一、先选择正确的磁盘目录
1.1 为什么不能随便下载到 /home/user
服务器上通常有多个磁盘目录,比如:
不能看到一个目录就直接用,必须先看它所在磁盘还有多少空间,,通常一个数据集或者模型占据的空间比较大。
查看磁盘空间:
1 | df -h |
命令含义:
1 | df = disk free,查看磁盘剩余空间 |
如果看到类似:
1 | /dev/sdb4 388G 357G 11G 98% / |
说明:
1 | / 只剩 11G,不适合放模型 |
所以模型、代码、实验输出都应该放到:
1 | /data2 |
而不是:
1 | /home/user |
1.2 建议的目录规划
进入大数据盘:
1 | cd /data2 |
命令含义:
1 | cd = change directory,切换目录 |
创建自己的工作目录:
1 | mkdir -p /data2/like/models |
命令含义:
1 | mkdir = make directory,创建目录 |
建议用途:
二、处理目录权限问题
2.1 为什么会出现 Permission denied
如果执行:
1 | mkdir models |
报错:
1 | mkdir: cannot create directory ‘models’: Permission denied |
说明当前用户没有权限在这个目录下创建文件夹。
有些时候会直接用:
1 | sudo mkdir models |
这虽然能创建成功,但会带来一个新问题:这个目录可能属于 root 用户。
后面普通用户执行:
1 | hf download ... |
时,就可能写不进去,报错:
1 | PermissionError: [Errno 13] Permission denied |
2.2 正确做法:把自己的工作目录改回当前用户
如果 /data2/like 是自己的工作目录,可以执行:
1 | sudo chown -R user:user /data2/like |
命令含义:
1 | sudo = superuser do,用管理员权限执行 |
这条命令的意思是:
1 | 把 /data2/like 以及里面所有内容的拥有者改成 user。 |
执行后检查权限:
1 | ls -ld /data2/like |
命令含义:
1 | ls = list,列出文件 |
如果看到:
1 | drwxr-xr-x 4 user user 4096 ... /data2/like |
重点看这里:
1 | user user |
说明目录已经属于当前用户,后面可以正常下载模型。
三、安装 Hugging Face 命令行工具
3.1 安装 huggingface_hub
如果服务器没有 hf 或 huggingface-cli 命令,可以安装:
1 | pip install -U huggingface_hub -i https://pypi.tuna.tsinghua.edu.cn/simple |
命令含义:
1 | pip = Python 包管理工具 |
这条命令的作用是:
1 | 从清华镜像源安装或升级 Hugging Face Hub 工具。 |
3.2 为什么安装后还是 command not found
安装成功后,可能看到提示:
1 | The scripts hf, huggingface-cli and tiny-agents are installed in '/home/user/.local/bin' which is not on PATH. |
意思是:
1 | hf 和 huggingface-cli 命令已经安装了, |
PATH 可以理解为 Linux 的“命令搜索路径”。
当你输入:hf或者huggingface-cli命令
系统会去 PATH 记录的目录里找这个命令。如果 /home/user/.local/bin 不在 PATH 中,系统就找不到 hf。
临时解决:
1 | export PATH="$HOME/.local/bin:$PATH" |
命令含义:
1 | export = 导出环境变量,让当前终端后续命令可以使用 |
这条命令的意思是:
1 | 把 /home/user/.local/bin 加到命令搜索路径最前面。 |
然后测试:
1 | hf --help |
如果能看到帮助信息,说明命令已经可用。
3.3 让 PATH 永久生效
临时 export 只对当前终端有效。为了以后每次登录都自动生效,可以写入 ~/.bashrc:
1 | echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc |
命令含义:
1 | echo = 输出一段文本 |
执行后再检查:
1 | which hf |
命令含义:
1 | which = 查看某个命令实际来自哪个路径 |
正常输出类似:
1 | /home/user/.local/bin/hf |
四、配置 Hugging Face 镜像源
4.1 为什么要配置镜像源
国内服务器访问 Hugging Face 官方站点可能比较慢,甚至失败。因此可以使用镜像源:
1 | export HF_ENDPOINT=https://hf-mirror.com |
命令含义:
1 | HF_ENDPOINT = Hugging Face Hub 的访问入口 |
这条命令的意思是:
1 | 后续 hf / huggingface-cli 下载模型时,优先从 hf-mirror.com 访问。 |
注意:
1 | HF_ENDPOINT 只决定“从哪里下载模型”, |
五、正式下载模型
5.1 推荐使用新版 hf download
新版推荐命令是:
1 | hf download czlll/Qwen2.5-Coder-7B-CL \ |
命令含义:
1 | hf = Hugging Face 新版命令行工具 |
完整意思是:
1 | 从 Hugging Face 下载 czlll/Qwen2.5-Coder-7B-CL 模型, |
5.2 不建议继续使用 --resume-download
旧命令里经常会写:
1 | --resume-download |
它的意思是断点续传。
但是新版 Hugging Face 工具已经会尽可能自动续传,所以这个参数会提示 deprecated,也就是即将废弃。
因此推荐:
1 | hf download czlll/Qwen2.5-Coder-7B-CL \ |
而不是:
1 | huggingface-cli download ... --resume-download |
5.3 如果仍然使用 huggingface-cli
旧命令也可以用,但会提示:
1 | huggingface-cli download is deprecated. Use hf download instead. |
意思是:
1 | huggingface-cli download 已经不推荐使用了,请改用 hf download。 |
所以优先用:
1 | hf download |
六、下载完成后的检查
6.1 查看模型目录
1 | ls -lh /data2/like/models/Qwen2.5-Coder-7B-CL |
命令含义:
1 | ls = list,列出文件 |
正常应该看到:
1 | config.json |
6.2 查看模型目录大小
1 | du -sh /data2/like/models/Qwen2.5-Coder-7B-CL |
命令含义:
1 | du = disk usage,查看磁盘占用 |
如果输出类似:
1 | 15G /data2/like/models/Qwen2.5-Coder-7B-CL |
说明模型大约占 15GB。
6.3 查看所在磁盘剩余空间
1 | df -h /data2 |
这一步很重要,防止模型下载到一半把磁盘塞满。
七、常见错误总结
7.1 huggingface-cli: command not found
原因:
1 | 没有安装 huggingface_hub, |
解决:
1 | pip install -U huggingface_hub -i https://pypi.tuna.tsinghua.edu.cn/simple |
永久生效:
1 | echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc |
7.2 hf: command not found
原因同上:
1 | hf 已经安装,但当前终端找不到。 |
解决:
1 | export PATH="$HOME/.local/bin:$PATH" |
7.3 Permission denied
常见报错:
1 | PermissionError: [Errno 13] Permission denied |
原因:
1 | 目标目录属于 root,普通用户没有写权限。 |
典型来源是之前用了:
1 | sudo mkdir models |
导致 models 目录由 root 创建。
解决:
1 | sudo chown -R user:user /data2/like |
然后检查:
1 | ls -ld /data2/like |
确认目录属于:
1 | user user |
7.4 Could not resolve host
原因:
1 | 服务器 DNS 或网络有问题,无法解析域名。 |
可以测试:
1 | getent hosts hf-mirror.com |
如果服务器网络一直不稳定,可以换成:
1 | 本地电脑下载模型 |
八、完整推荐流程
最终推荐命令如下:
1 | # 1. 进入大数据盘 |
总结
服务器下载 Hugging Face 模型的关键不是只记住一条 hf download 命令,而是要按顺序处理好四件事:
1 | 第一,选对磁盘目录,模型要放到大数据盘,比如 /data2。 |
这次问题的本质是两层:
1 | 第一层:hf / huggingface-cli 安装成功了,但不在 PATH 里,所以 command not found。 |
最终修复思路是:
1 | export PATH="$HOME/.local/bin:$PATH" |
只要这三步处理好,服务器下载 Hugging Face 模型就会顺畅很多。
另外,旧命令 huggingface-cli download 仍可用,但日志已经提示它被弃用,推荐改用 hf download;--resume-download 也只是未来会废弃的提示,不是你这次失败的根因。