¿Dónde guarda llama-cli -hf los modelos de caras abrazadas de forma predeterminada?

Explica la caché de Hugging Face Hub usada por llama-cli -hf, la prioridad de variables, la comprobación de rutas y una migración segura.

Si ejecutas directamente un modelo de Hugging Face con llama-cli, por ejemplo:

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

la descarga la gestiona llama.cpp. Las versiones actuales guardan las descargas de -hf en la caché estándar de Hugging Face Hub.

Ubicaciones de caché predeterminadas

Para la ruta actual de Hub, HF_HUB_CACHE tiene prioridad. Si no está definida, se usa $HF_HOME/hub, después una ruta derivada de XDG_CACHE_HOME y, por último, la caché predeterminada del usuario. LLAMA_CACHE, frecuente en guías antiguas, es una opción propia o heredada de llama.cpp y no debe presentarse como la variable de mayor prioridad para la caché Hub estándar de -hf.

Sistema Directorio predeterminado
Linux ~/.cache/huggingface/hub
macOS ~/.cache/huggingface/hub
Windows %USERPROFILE%\.cache\huggingface\hub

En Windows, %USERPROFILE% suele apuntar a:

1
C:\Users\usuario

por lo que la caché predeterminada es aproximadamente:

1
C:\Users\usuario\.cache\huggingface\hub

Comprobar la ruta que usará realmente el proceso

Linux y 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

Las variables de systemd, contenedores o IDE quizá no aparezcan en la terminal actual. Revisa también el servicio, Compose o script de inicio, y confirma la ubicación con el registro real de llama-cli y los archivos del disco.

Cambiar el directorio de caché

Usa HF_HUB_CACHE para mover solo los modelos de Hub. Usa HF_HOME para mover juntos tokens, recursos y caché de Hugging Face.

Símbolo del sistema de 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

Migrar la caché de forma segura

Detén descargadores, procesos llama-cli y servicios que usen la caché. Copia, verifica, cambia la variable y prueba antes de retirar el directorio anterior:

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

Cuando los tamaños sean similares y una inferencia mínima funcione desde la nueva ruta, guarda HF_HUB_CACHE en la configuración. Conserva el directorio anterior hasta completar otro arranque normal y restringe la escritura si la caché es compartida.

Resumen

  • llama-cli -hf usa actualmente la caché estándar de Hugging Face Hub.
  • Linux/macOS: ~/.cache/huggingface/hub.
  • Windows: %USERPROFILE%\.cache\huggingface\hub.
  • Usa HF_HUB_CACHE para modelos o HF_HOME para todos los datos.
  • Detén, copia, comprueba, cambia, prueba y solo entonces archiva la ubicación anterior.

Referencias: