🦙Llama 4 : Comment exécuter & affiner
Comment exécuter Llama 4 localement en utilisant nos GGUF dynamiques qui récupèrent la précision par rapport à 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 en 1,78 bits utilise 33,8 Go (-75 % de réduction de taille). Maverick (402Bs) est passé de 422 Go à seulement 122 Go (-70 %).
À la fois texte ET vision est maintenant pris en charge ! De plus, plusieurs améliorations pour l'appel d'outils.
Scout 1,78 bit tient dans un GPU avec 24 Go de VRAM pour une inférence rapide à ~20 tokens/s. Maverick 1,78 bit tient dans 2 GPU de 48 Go VRAM pour une inférence rapide à ~40 tokens/s.
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 l'attention et d'autres couches en 4 ou 6 bits.
Tous nos modèles GGUF sont quantifiés en utilisant des données de calibration (environ 250K tokens pour Scout et 1M tokens pour Maverick), ce qui améliorera la précision par rapport à une quantification standard. Les quants imatrix d'Unsloth sont entièrement 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 supérieures.
Maverick - GGUF dynamiques Unsloth avec configurations optimales :
⚙️ Paramètres recommandés officiels
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 token 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 invite système optionnelle suggérée, qui est listée ci-dessous :
📖 Tutoriel : Comment exécuter Llama-4-Scout dans llama.cpp
Obtenez le dernier
llama.cppsur GitHub ici. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n'avez pas de GPU ou si vous voulez simplement une inférence CPU.
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 pleine précision). Plus de versions sur : https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
allow_patterns = ["*UD-Q4_K_XL*"],
éditer
--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 GPU sur le nombre de couches. Essayez de l'ajuster si votre GPU manque de mémoire. Supprimez-le également si vous n'avez qu'une inférence CPU.
Utilisez -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE vers le CPU ! Cela vous permet effectivement de faire tenir 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 disposez de plus de capacité GPU.
En termes de tests, malheureusement nous ne pouvons pas faire en sorte que la version BF16 complète (c’est-à-dire indépendamment de la quantification ou non) complète 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 effectué 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 1, 3 et 45 ne pouvaient pas être calibrées correctement. Maverick utilise des couches MoE en alternance pour 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 de calibration, et essayé d'utiliser plus de tokens (1 million) contre les 250K tokens de Scout pour la calibration, 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ées - nous les téléversons 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 désormais également une attention segmentée - 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 ?

