hf-mem

Par huggingface · skills

CLI Hugging Face pour estimer la mémoire requise au chargement de poids de modèles Safetensors ou GGUF depuis le Hub Hugging Face en vue d'une inférence

npx skills add https://github.com/huggingface/skills --skill hf-mem

hf_mem estime la mémoire requise pour l'inférence, incluant les poids du modèle et un cache KV optionnel, pour Safetensors et GGUF pour les modèles du Hugging Face Hub en utilisant des requêtes HTTP Range, c'est-à-dire sans télécharger ni charger localement aucun poids.

Quand l'utiliser ?

  • L'utilisateur demande combien de VRAM ou de mémoire un modèle nécessite pour fonctionner
  • L'utilisateur veut savoir si un modèle tient sur son GPU ou une instance donnée
  • L'utilisateur référence un ID de modèle Hugging Face ou une URL et pose des questions sur les exigences d'inférence

Quels sont les prérequis ?

  • uv installé (pour uvx)
  • Variable d'environnement HF_TOKEN ou flag --hf-token (pour les modèles gérés ou privés uniquement)

Comment l'exécuter ?

Exécutez avec --model-id pointant vers le repository Hugging Face Hub qui vérifiera qu'il contient soit Safetensors (via model.safetensors, model.safetensors.index.json s'il est shardé, ou model_index.json pour Diffusers) soit des poids de modèle GGUF.

uvx hf-mem --model-id <model-id> --json-output

Si le repository contient des poids de modèle GGUF en plusieurs précisions / quantifications, les estimations seront par fichier, tandis que pour l'inférence vous ne chargerez pas tous ceux-ci mais plutôt une seule précision. Cela dit, pour GGUF vous pouvez aussi avoir besoin de fournir --gguf-file pour cibler le fichier (ou le chemin s'il est shardé) spécifique que vous voulez exécuter.

uvx hf-mem --model-id <model-id> --gguf-file <file-or-path> --json-output

De plus, hf-mem est livré avec un flag --experimental qui calculera aussi les exigences de mémoire du cache KV, utile pour les grands modèles de langage, ce qui s'applique aux LLMs (...ForCausalLM), VLMs (...ForConditionalGeneration), et modèles GGUF.

Selon la context window, elle sera lue par défaut ou surchargée avec --max-model-len à la manière de vLLM. Et, la même chose s'applique à la précision du cache KV, qui sera par défaut la précision du modèle sauf si défini manuellement via --kv-cache-dtype à la manière de vLLM aussi.

Pour Safetensors utilisez comme :

uvx hf-mem --model-id <model-id> --experimental [--max-model-len N] [--batch-size N] [--kv-cache-dtype auto|bfloat16|fp8|fp8_ds_mla|fp8_e4m3|fp8_e5m2|fp8_inc] --json-output

Et, pour GGUF utilisez comme :

uvx hf-mem --model-id <model-id> --gguf-file <file-or-path> --experimental [--max-model-len N] [--batch-size N] [--kv-cache-dtype auto|F32|F16|Q4_0|Q4_1|Q5_0|Q5_1|Q8_0|Q8_1|Q2_K|Q3_K|Q4_K|Q5_K|Q6_K|Q8_K|IQ2_XXS|IQ2_XS|IQ3_XXS|IQ1_S|IQ4_NL|IQ3_S|IQ2_S|IQ4_XS|I8|I16|I32|I64|F64|IQ1_M|BF16|TQ1_0|TQ2_0|MXFP4] --json-output

Exemples

Pour Transformers avec poids Safetensors :

uvx hf-mem --model-id MiniMaxAI/MiniMax-M2 --json-output

Pour Diffusers avec poids Safetensors :

uvx hf-mem --model-id Qwen/Qwen-Image --json-output

Pour Sentence Transformers avec poids Safetensors :

uvx hf-mem --model-id google/embeddinggemma-300m --json-output

Avec --experimental pour inclure l'estimation du cache KV pour LLMs et VLMs :

uvx hf-mem --model-id mistralai/Mistral-7B-v0.1 --experimental --json-output

Et, pour LLMs ou VLMs avec poids GGUF :

uvx hf-mem --model-id unsloth/Qwen3.5-397B-A17B-GGUF --gguf-file Q4_K_M --experimental --json-output

Skills similaires