🦙Llama 4 : Comment exécuter et affiner
Comment exécuter Llama 4 localement en utilisant nos GGUF dynamiques qui récupèrent la précision comparée à la quantification standard.
Le modèle Llama-4-Scout a 109 milliards de paramètres, tandis que Maverick en a 402 milliards. La version complète non quantifiée nécessite 113 Go d'espace disque tandis que la version 1,78 bits utilise 33,8 Go (-75 % de réduction de taille). Maverick (402Bs) est passé de 422 Go à seulement 122 Go (-70%).
Texte ET vision est maintenant pris en charge ! De plus, plusieurs améliorations pour l'appel d'outils.
Scout 1,78 bits tient dans un GPU de 24 Go de VRAM pour une inférence rapide à ~20 tokens/sec. Maverick 1,78 bits tient dans 2 GPU de 48 Go VRAM pour une inférence rapide à ~40 tokens/sec.
Pour nos GGUF dynamiques, afin d'assurer le meilleur compromis entre précision et taille, nous ne quantifions pas toutes les couches, mais quantifions sélectivement par exemple les couches MoE à un nombre de bits inférieur, et laissons les couches d'attention et autres en 4 ou 6 bits.
Tous nos modèles GGUF sont quantifiés en utilisant des données d'étalonnage (environ 250K tokens pour Scout et 1M tokens pour Maverick), ce qui améliore la précision par rapport à la quantification standard. Les quants imatrix d'Unsloth sont pleinement compatibles avec des moteurs d'inférence populaires comme llama.cpp et Open WebUI, etc.
Scout - GGUF dynamiques Unsloth avec configurations optimales :
Pour de meilleurs résultats, utilisez les versions 2,42 bits (IQ2_XXS) ou plus grandes.
Maverick - GGUF dynamiques Unsloth avec configurations optimales :
⚙️ Paramètres officiels recommandés
Selon Meta, voici les paramètres recommandés pour l'inférence :
Température de 0,6
Min_P de 0,01 (optionnel, mais 0,01 fonctionne bien, la valeur par défaut de llama.cpp est 0,1)
Top_P de 0,9
Format du modèle de chat / du prompt :
Un jeton BOS de
<|begin_of_text|>est ajouté automatiquement lors de la tokenisation (ne l'ajoutez PAS manuellement !)Selon https://www.llama.com/docs/model-cards-and-prompt-formats/llama4_omni/, il y a un prompt système optionnel suggéré, qui est listé ci-dessous :
📖 Tutoriel : Comment exécuter Llama-4-Scout dans llama.cpp
Obtenez la dernière
llama.cppsur GitHub ici. Vous pouvez aussi suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n'avez pas de GPU ou si vous voulez simplement de l'inférence CPU. Pour les appareils Apple Mac / Metal, définissez-DGGML_CUDA=OFFpuis continuez comme d'habitude - le support Metal est activé par défaut.
Téléchargez le modèle via (après avoir installé
pip install huggingface_hub hf_transfer). Vous pouvez choisir Q4_K_M, ou d'autres versions quantifiées (comme BF16 en pleine précision). Plus de versions sur : https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
local_dir = "unsloth/Qwen3-VL-8B-Instruct-GGUF", # Ou "unsloth/Qwen3-VL-8B-Thinking-GGUF"
Modifier
--threads 32pour le nombre de threads CPU,--ctx-size 16384pour la longueur de contexte (Llama 4 prend en charge une longueur de contexte de 10M !),--n-gpu-layers 99pour le déchargement sur GPU du nombre de couches. Essayez de l'ajuster si votre GPU manque de mémoire. Supprimez-le également si vous avez uniquement une inférence CPU.
Utilisez -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE sur le CPU ! Cela vous permet effectivement de placer toutes les couches non-MoE sur 1 GPU, améliorant les vitesses de génération. Vous pouvez personnaliser l'expression regex pour décharger plus de couches si vous avez plus de capacité GPU.
En termes de test, malheureusement nous ne pouvons pas faire en sorte que la version BF16 complète (c'est-à-dire indépendamment de la quantification) termine correctement le jeu Flappy Bird ni le test Heptagon. Nous avons essayé de nombreux fournisseurs d'inférence, en utilisant imatrix ou non, utilisé les quants d'autres personnes, et utilisé l'inférence Hugging Face normale, et ce problème persiste.
Nous avons trouvé plusieurs exécutions et demandé au modèle de corriger et de trouver des bugs pour résoudre la plupart des problèmes !
Pour Llama 4 Maverick - il est préférable d'avoir 2 RTX 4090 (2 x 24 Go)
🕵️ Aperçus et problèmes intéressants
Lors de la quantification de Llama 4 Maverick (le grand modèle), nous avons constaté que les couches MoE n°1, n°3 et n°45 ne pouvaient pas être calibrées correctement. Maverick utilise des couches MoE intercalées à chaque couche impaire, donc Dense->MoE->Dense et ainsi de suite.
Nous avons essayé d'ajouter des langues moins courantes à notre jeu de données d'étalonnage, et tenté d'utiliser plus de tokens (1 million) contre 250K tokens pour Scout pour l'étalonnage, mais nous avons toujours rencontré des problèmes. Nous avons décidé de laisser ces couches MoE en 3 bits et 4 bits.

Pour Llama 4 Scout, nous avons constaté que nous ne devrions pas quantifier les couches de vision, et laisser le routeur MoE et certaines autres couches non quantifiés - nous téléversons ceux-ci sur https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-dynamic-bnb-4bit

Nous avons également dû convertir torch.nn.Parameter en torch.nn.Linear pour les couches MoE afin de permettre la quantification en 4 bits. Cela signifie également que nous avons dû réécrire et patcher l'implémentation générique de Hugging Face. Nous téléversons nos versions quantifiées sur https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-4bit et https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-8bit pour le 8 bits.

Llama 4 utilise également maintenant l'attention par blocs - c'est essentiellement une attention en fenêtre glissante, mais légèrement plus efficace en n'attendant pas les tokens précédents au-delà de la limite de 8192.
Mis à jour
Ce contenu vous a-t-il été utile ?

