🦙Llama 4 : comment l'exécuter et l'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 compte 109 milliards de paramètres, tandis que Maverick en compte 402 milliards. La version complète non quantifiée nécessite 113 Go d’espace disque, tandis que la version 1,78 bit utilise 33,8 Go (-75 % de réduction de la taille). Maverick (402 milliards) est passé de 422 Go à seulement 122 Go (-70 %).
Le texte ET vision sont désormais pris en charge ! Plus plusieurs améliorations pour l’appel d’outils.
Scout en 1,78 bit tient sur un GPU de 24 Go de VRAM pour une inférence rapide à ~20 jetons/s. Maverick en 1,78 bit tient sur 2 GPU de 48 Go de VRAM pour une inférence rapide à ~40 jetons/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 plus faible, et laissons l’attention et les autres couches en 4 ou 6 bits.
Tous nos modèles GGUF sont quantifiés à l’aide de données d’étalonnage (environ 250K jetons pour Scout et 1M jetons pour Maverick), ce qui améliorera la précision par rapport à la 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 d’Unsloth avec configurations optimales :
Pour de meilleurs résultats, utilisez les versions 2,42 bits (IQ2_XXS) ou supérieures.
Maverick - GGUF dynamiques d’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 (facultatif, mais 0,01 fonctionne bien ; la valeur par défaut de llama.cpp est 0,1)
Top_P de 0,9
Modèle de chat / format de 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 existe un prompt système optionnel suggéré, qui est indiqué ci-dessous :
📖 Tutoriel : Comment exécuter Llama-4-Scout dans llama.cpp
Obtenez la dernière version
llama.cppsur GitHub ici. Vous pouvez également suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU. Pour les appareils Apple Mac / Metal, définissez-DGGML_CUDA=OFFpuis continuez comme d'habitude - la prise en charge de Metal est activée 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 précision complète). Plus de versions sur : https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
Exécutez le modèle et essayez n’importe quel prompt.
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 GPU, selon le nombre de couches. Essayez de l’ajuster si votre GPU manque de mémoire. Supprimez-le aussi 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 permet effectivement de faire tenir toutes les couches non MoE sur 1 GPU, améliorant ainsi les vitesses de génération. Vous pouvez personnaliser l'expression regex pour faire tenir davantage de couches si vous disposez de plus de capacité GPU.
En matière 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) termine correctement le jeu Flappy Bird ni le test Heptagon. Nous avons essayé de nombreux fournisseurs d’inférence, avec ou sans imatrix, utilisé les quants d’autres personnes, et utilisé l’inférence normale de Hugging Face, et ce problème persiste.
Nous avons constaté que plusieurs exécutions et demander au modèle de corriger et de trouver des bugs permet de 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 intéressants et problèmes
Lors de la quantification de Llama 4 Maverick (le grand modèle), nous avons constaté que les 1re, 3e et 45e couches MoE ne pouvaient pas être calibrées correctement. Maverick utilise des couches MoE entrelacées pour chaque couche impaire, donc Dense->MoE->Dense, et ainsi de suite.
Nous avons essayé d’ajouter davantage de langues peu courantes à notre jeu de données d’étalonnage, et d’utiliser davantage de jetons (1 million) par rapport aux 250K jetons de Scout pour l’étalonnage, mais nous avons quand même 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 devions pas quantifier les couches de vision, et laisser le routeur MoE et certaines autres couches non quantifiés - 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 aussi que nous avons dû réécrire et corriger 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 8 bits.

Llama 4 utilise désormais aussi une attention par blocs - c’est essentiellement une attention à fenêtre glissante, mais légèrement plus efficace car elle n’accorde pas d’attention aux jetons précédents au-delà de la limite de 8192.
Mis à jour
Ce contenu vous a-t-il été utile ?

