如果你使用的是 llama-cli 直接从 Hugging Face 下载并运行模型,例如:
|
|
这是 llama.cpp 自带的 Hugging Face 下载能力。新版 llama.cpp 会把 -hf 下载的模型放进标准 Hugging Face Hub 缓存目录。
默认缓存位置
新版 llama.cpp 的 -hf 使用标准 Hugging Face Hub 缓存。对这条下载路径,先看 HF_HUB_CACHE;没有设置时使用 $HF_HOME/hub,再没有时按 XDG_CACHE_HOME 推导,最后才落到用户目录下的默认缓存。旧教程常见的 LLAMA_CACHE 属于 llama.cpp 自身或旧版缓存口径,不应继续写成当前 -hf 标准 Hub 缓存的最高优先级。
如果这些变量都没有设置,常见默认路径如下:
| 系统 | 默认缓存目录 |
|---|---|
| Linux | ~/.cache/huggingface/hub |
| macOS | ~/.cache/huggingface/hub |
| Windows | %USERPROFILE%\.cache\huggingface\hub |
在 Windows 上,%USERPROFILE% 通常对应:
|
|
所以默认缓存目录大致是:
|
|
先检查进程实际会用哪个目录
Linux / macOS 可以先看环境,再计算标准 Hub 路径:
|
|
Windows PowerShell 可以使用:
|
|
如果环境变量来自 systemd、容器或 IDE,当前终端里看不到并不代表服务进程没有设置。还要检查对应 service、Compose 文件或启动脚本,并以 llama-cli 实际下载日志和落盘文件为准。
想修改 llama-cli 的缓存目录怎么办
只想移动 Hub 模型缓存时,优先设置 HF_HUB_CACHE;想把 Hugging Face 的 token、资产和 Hub 缓存一起迁移,则设置 HF_HOME,实际 Hub 目录是 $HF_HOME/hub。
Windows 临时设置示例:
|
|
PowerShell 临时设置示例:
|
|
Linux / macOS 临时设置示例:
|
|
安全迁移缓存,不要直接剪切
先停止所有正在使用缓存的 llama-cli、服务和下载进程,然后复制、核对、切换,最后才处理旧目录。Linux 示例:
|
|
du 字节数接近、目标模型能在新路径下完成一次最短推理后,再把 HF_HUB_CACHE 写入 shell、服务或容器配置并重启。旧目录至少保留到下一次正常启动;不要在复制完成后立即删除,否则软链接、未完成下载或仍在运行的进程可能让缓存损坏。
跨磁盘迁移还要确认目标文件系统支持模型所需的大文件,并为 .incomplete 下载和后续模型预留空间。团队共用缓存时,不要把可写目录开放给所有用户,避免其他进程替换模型文件。
小结
llama-cli -hf ...使用的是llama.cpp下载逻辑,但新版默认落到 Hugging Face Hub 缓存。- Linux / macOS 默认:
~/.cache/huggingface/hub - Windows 默认:
%USERPROFILE%\.cache\huggingface\hub - 想只换 Hub 模型目录:优先设置
HF_HUB_CACHE - 想整体迁移 Hugging Face 数据:设置
HF_HOME - 迁移顺序:停止进程、复制、核对、切换变量、试运行,最后再归档旧目录
参考资料: