llama-cli -hf 下載 Hugging Face 模型預設儲存在哪裡

整理 llama-cli -hf 使用的 Hugging Face Hub 快取、環境變數優先級、路徑檢查與安全遷移方法。

如果你使用 llama-cli 直接從 Hugging Face 下載並執行模型,例如:

1
llama-cli -hf unsloth/gemma-4-E4B-it-GGUF

下載由 llama.cpp 處理。新版 llama.cpp 會把 -hf 下載的模型放進標準 Hugging Face Hub 快取。

預設快取位置

目前的 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% 通常對應:

1
C:\Users\使用者名稱

因此預設快取約為:

1
C:\Users\使用者名稱\.cache\huggingface\hub

先檢查程序實際使用的目錄

Linux / macOS:

1
2
3
4
env | grep -E '^(HF_HOME|HF_HUB_CACHE|XDG_CACHE_HOME|LLAMA_CACHE)='
HUB_CACHE="${HF_HUB_CACHE:-${HF_HOME:-${XDG_CACHE_HOME:-$HOME/.cache}/huggingface}/hub}"
printf '%s\n' "$HUB_CACHE"
find "$HUB_CACHE" -type f -name '*.gguf' -printf '%p\t%s bytes\n'

Windows PowerShell:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Get-ChildItem Env:HF_HOME,Env:HF_HUB_CACHE,Env:XDG_CACHE_HOME,Env:LLAMA_CACHE -ErrorAction SilentlyContinue

$hub = if ($env:HF_HUB_CACHE) {
    $env:HF_HUB_CACHE
} elseif ($env:HF_HOME) {
    Join-Path $env:HF_HOME 'hub'
} elseif ($env:XDG_CACHE_HOME) {
    Join-Path $env:XDG_CACHE_HOME 'huggingface\hub'
} else {
    Join-Path $env:USERPROFILE '.cache\huggingface\hub'
}

$hub
Get-ChildItem -LiteralPath $hub -Recurse -Filter *.gguf -ErrorAction SilentlyContinue

systemd、容器或 IDE 設定的變數可能不會出現在目前終端機。還要檢查 service、Compose 或啟動腳本,並以 llama-cli 實際下載日誌和落盤檔案為準。

修改快取目錄

只移動 Hub 模型快取時優先設定 HF_HUB_CACHE;若要一起移動 Hugging Face token、資產和 Hub 快取,則設定 HF_HOME

Windows 命令提示字元:

1
2
set HF_HUB_CACHE=D:\models\huggingface-hub
llama-cli -hf unsloth/gemma-4-E4B-it-GGUF

Windows PowerShell:

1
2
$env:HF_HUB_CACHE="D:\models\huggingface-hub"
llama-cli -hf unsloth/gemma-4-E4B-it-GGUF
1
2
export HF_HUB_CACHE=/data/models/huggingface-hub
llama-cli -hf unsloth/gemma-4-E4B-it-GGUF

安全遷移快取

先停止所有下載、llama-cli 與相關服務。依序複製、核對、切換變數和試跑,最後才處理舊目錄:

1
2
3
4
5
6
old="$HOME/.cache/huggingface/hub"
new="/data/models/huggingface-hub"
mkdir -p "$new"
rsync -aH --info=progress2 "$old/" "$new/"
du -sb "$old" "$new"
HF_HUB_CACHE="$new" llama-cli -hf unsloth/gemma-4-E4B-it-GGUF -n 1

位元組數接近且新路徑完成一次最短推理後,再把變數寫入 shell、服務或容器設定。至少保留舊目錄到下一次正常啟動;共用快取也應限制寫入權限。

小結

  • 新版 llama-cli -hf 使用標準 Hugging Face Hub 快取。
  • Linux / macOS 預設:~/.cache/huggingface/hub
  • Windows 預設:%USERPROFILE%\.cache\huggingface\hub
  • 模型快取用 HF_HUB_CACHE,整體 Hugging Face 資料用 HF_HOME
  • 遷移順序是停止、複製、核對、切換、試跑,最後再封存舊目錄。

參考資料: