🌠Qwen3-Coder : comment exécuter localement
Exécutez Qwen3-Coder-30B-A3B-Instruct et 480B-A35B localement avec les quants dynamiques Unsloth.
Qwen3-Coder est la nouvelle série de modèles agents de codage de Qwen, disponible en 30B (Qwen3-Coder-Flash) et 480B paramètres. Qwen3-480B-A35B-Instruct atteint des performances de pointe en codage, rivalisant avec Claude Sonnet-4, GPT-4.1 et Kimi K2, avec 61,8 % sur Aider Polygot et la prise en charge d’un contexte de 256K (extensible à 1M) tokens.
Nous avons également mis en ligne Qwen3-Coder avec un longueur de contexte de 1M native, étendue par YaRN, ainsi que des versions 8 bits et 16 bits en précision complète. Unsloth prend désormais également en charge le fine-tuning et RL de Qwen3-Coder.
MISE À JOUR : Nous avons corrigé l’appel d’outils pour Qwen3-Coder ! Vous pouvez désormais utiliser l’appel d’outils de manière transparente dans llama.cpp, Ollama, LMStudio, Open WebUI, Jan, etc. Ce problème était universel et affectait tous les téléchargements (pas seulement Unsloth), et nous avons communiqué avec l’équipe Qwen au sujet de nos correctifs ! En savoir plus
Exécuter 30B-A3BExécuter 480B-A35B
Est-ce que les quants dynamiques Unsloth fonctionnent ? Oui, et très bien. Lors de tests tiers sur le benchmark Aider Polyglot, le UD-Q4_K_XL (276 Go) quant dynamique a presque égalé le modèle bf16 complet (960 Go) Qwen3-coder, avec un score de 60,9 % contre 61,8 %. Plus de détails ici.
Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs:
🖥️ Exécution de Qwen3-Coder
Ci-dessous se trouvent des guides pour les 30B-A3B et 480B-A35B variantes du modèle.
⚙️ Paramètres recommandés
Qwen recommande ces paramètres d’inférence pour les deux modèles :
temperature=0.7, top_p=0.8, top_k=20, repetition_penalty=1.05
Température de 0,7
Top_K de 20
Min_P de 0,00 (facultatif, mais 0,01 fonctionne bien ; la valeur par défaut de llama.cpp est 0,1)
Top_P de 0,8
Pénalité de répétition de 1,05
Modèle de chat :
<|im_start|>user Salut !<|im_end|> <|im_start|>assistant Combien font 1+1 ?<|im_end|> <|im_start|>user 2<|im_end|> <|im_start|>assistantContexte recommandé en sortie : 65 536 tokens (peut être augmenté). Détails ici.
Modèle de chat/format de prompt avec les retours à la ligne non rendus
Modèle de chat pour l’appel d’outils (Obtenir la température actuelle pour San Francisco). Plus de détails ici sur la façon de formater les appels d’outils.
Rappel que ce modèle prend uniquement en charge le mode sans réflexion et ne génère pas de <think></think> blocs dans sa sortie. Par ailleurs, spécifier enable_thinking=False n’est plus requis.
Exécuter Qwen3-Coder-30B-A3B-Instruct :
Pour atteindre des vitesses d’inférence de 6+ tokens par seconde avec notre quantification dynamique 4 bits, disposez d’au moins 18 Go de mémoire unifiée (VRAM et RAM combinées) ou 18 Go de RAM système seulement. En règle générale, votre mémoire disponible devrait être égale ou supérieure à la taille du modèle que vous utilisez. Par exemple, la quantification UD_Q8_K_XL (précision complète), qui fait 32,5 Go, nécessitera au moins 33 Go de mémoire unifiée (VRAM + RAM) ou 33 Go de RAM pour des performances optimales.
REMARQUE : Le modèle peut fonctionner avec moins de mémoire que sa taille totale, mais cela ralentira l’inférence. La mémoire maximale n’est nécessaire que pour obtenir les vitesses les plus élevées.
Étant donné qu’il s’agit d’un modèle sans réflexion, il n’est pas nécessaire de définir thinking=False et le modèle ne génère pas de <think> </think> blocs.
Suivez les meilleures pratiques ci-dessus. Elles sont les mêmes que pour le modèle 480B.
🦙 Ollama : tutoriel pour exécuter Qwen3-Coder-30B-A3B-Instruct
Installer
ollamasi ce n’est pas déjà fait ! Vous ne pouvez exécuter que des modèles jusqu’à 32B.
Exécutez le modèle ! Notez que vous pouvez appeler
ollama servedans un autre terminal si cela échoue ! Nous incluons tous nos correctifs et paramètres suggérés (température, etc.) dansparamsdans notre envoi Hugging Face !
✨ Llama.cpp : tutoriel pour exécuter Qwen3-Coder-30B-A3B-Instruct
Obtenez le dernier
llama.cpppar défaut. Seule votre machine peut atteindre le serveur. GitHub ici. Vous pouvez également suivre les instructions de compilation ci-dessous. Modifiez-DGGML_CUDA=ONà-DGGML_CUDA=OFFsi vous n’avez pas de GPU ou si vous voulez simplement une inférence CPU. Pour les appareils Apple Mac / Metal, définissez-DGGML_CUDA=OFFpuis continuez comme d’habitude - la prise en charge Metal est activée par défaut.
Vous pouvez directement récupérer depuis HuggingFace via :
Téléchargez le modèle via (après installation de
pip install huggingface_hub hf_transfer). Vous pouvez choisir UD_Q4_K_XL ou d’autres versions quantifiées. Si les téléchargements restent bloqués, voir Débogage de Hugging Face Hub, XET
Exécuter Qwen3-Coder-480B-A35B-Instruct :
Pour atteindre des vitesses d’inférence de 6+ tokens par seconde avec notre quantification 1 bit, nous recommandons au moins 150 Go de mémoire unifiée (VRAM et RAM combinées) ou 150 Go de RAM système seulement. En règle générale, votre mémoire disponible devrait être égale ou supérieure à la taille du modèle que vous utilisez. Par exemple, la quantification Q2_K_XL, qui fait 180 Go, nécessitera au moins 180 Go de mémoire unifiée (VRAM + RAM) ou 180 Go de RAM pour des performances optimales.
REMARQUE : Le modèle peut fonctionner avec moins de mémoire que sa taille totale, mais cela ralentira l’inférence. La mémoire maximale n’est nécessaire que pour obtenir les vitesses les plus élevées.
Suivez les meilleures pratiques ci-dessus. Elles sont les mêmes que pour le modèle 30B.
📖 Llama.cpp : tutoriel pour exécuter Qwen3-Coder-480B-A35B-Instruct
Pour Coder-480B-A35B, nous utiliserons spécifiquement Llama.cpp pour une inférence optimisée et une multitude d’options.
Si vous souhaitez une version complète sans quantification, utilisez nos versions Q8_K_XL, Q8_0 ou BF16 !
Obtenez le dernier
llama.cpppar défaut. Seule votre machine peut atteindre le serveur. GitHub ici. Vous pouvez également suivre les instructions de compilation ci-dessous. Modifiez-DGGML_CUDA=ONà-DGGML_CUDA=OFFsi vous n’avez pas de GPU ou si vous voulez simplement une inférence CPU.Vous pouvez utiliser directement llama.cpp pour télécharger le modèle, mais je conseille généralement d’utiliser
huggingface_hubPour utiliser directement llama.cpp, faites :Ou téléchargez le modèle via (après installation de
pip install huggingface_hub hf_transfer). Vous pouvez choisir UD-Q2_K_XL, ou d’autres versions quantifiées..Exécutez le modèle en mode conversation et essayez n’importe quel prompt.
Modifiez
--threads -1pour le nombre de threads CPU,--ctx-size262114 pour la longueur du contexte,--n-gpu-layers 99pour le déchargement GPU et le nombre de couches. Essayez d’ajuster si votre GPU n’a plus de mémoire. Supprimez-le également si vous n’utilisez qu’une inférence CPU.
Utilisez -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE vers le CPU ! Cela permet en pratique 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 faire tenir davantage de couches si vous avez plus de capacité GPU. Plus d’options discutées ici.
N’oubliez pas non plus la nouvelle mise à jour de Qwen3. Exécutez Qwen3-235B-A22B-Instruct-2507 localement avec llama.cpp.
🛠️ Améliorer la vitesse de génération
Si vous avez plus de VRAM, vous pouvez essayer de décharger davantage de couches MoE, ou de décharger des couches entières elles-mêmes.
Normalement, -ot ".ffn_.*_exps.=CPU" décharge toutes les couches MoE vers le CPU ! Cela permet en pratique 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 faire tenir davantage de couches si vous avez plus de capacité GPU.
Si vous avez un peu plus de mémoire GPU, essayez -ot ".ffn_(up|down)_exps.=CPU" Cela décharge les couches MoE de projection vers le haut et vers le bas.
Essayez -ot ".ffn_(up)_exps.=CPU" si vous avez encore plus de mémoire GPU. Cela décharge uniquement les couches MoE de projection vers le haut.
Vous pouvez aussi personnaliser l’expression regex, par exemple -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" signifie décharger les couches MoE gate, up et down, mais uniquement à partir de la 6e couche.
Le dernière version de llama.cpp introduit également un mode à haut débit. Utilisez llama-parallel. En savoir plus à ce sujet ici. Vous pouvez aussi quantifier le cache KV en 4 bits par exemple pour réduire les mouvements VRAM / RAM, ce qui peut également accélérer le processus de génération.
📐Comment faire tenir un long contexte (256K à 1M)
Pour faire tenir un contexte plus long, vous pouvez utiliser la quantification du cache KV pour quantifier les caches K et V à des bits inférieurs. Cela peut également augmenter la vitesse de génération grâce à la réduction des mouvements de données RAM / VRAM. Les options autorisées pour la quantification K (la valeur par défaut est f16) incluent celles ci-dessous.
--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
Vous devriez utiliser les variantes _1 pour une précision quelque peu améliorée, bien que ce soit légèrement plus lent. Par exemple q4_1, q5_1
Vous pouvez également quantifier le cache V, mais vous devrez compiler llama.cpp avec la prise en charge de Flash Attention via -DGGML_CUDA_FA_ALL_QUANTS=ON, et utilisez --flash-attn pour l’activer.
Nous avons également mis en ligne des GGUF de longueur de contexte 1 million via le scaling YaRN ici.
🧰 Corrections de l’appel d’outils
Nous avons réussi à corriger l’appel d’outils via llama.cpp --jinja spécifiquement pour le service via llama-server! Si vous téléchargez nos quants 30B-A3B, pas d’inquiétude, car ils incluent déjà nos correctifs. Pour le modèle 480B-A35B, veuillez :
Téléchargez le premier fichier à https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2_K_XL pour UD-Q2_K_XL, et remplacez votre fichier actuel
Utilisez
snapshot_downloadcomme d’habitude, comme dans https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial qui écrasera automatiquement les anciens fichiersUtilisez le nouveau modèle de chat via
--chat-template-file. Voir modèle de chat GGUF ou chat_template.jinjaEn bonus, nous avons aussi créé un seul fichier UD-IQ1_M de 150 Go (pour qu’Ollama fonctionne) à https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1_M.gguf
Cela devrait résoudre des problèmes comme : https://github.com/ggml-org/llama.cpp/issues/14915
Utilisation de l’appel d’outils
Pour formater les prompts pour l’appel d’outils, illustrons cela avec un exemple.
J’ai créé une fonction Python appelée get_current_temperature qui est une fonction censée obtenir la température actuelle pour un lieu. Pour l’instant, nous avons créé une fonction factice qui renverra toujours 21,6 degrés Celsius. Vous devriez la remplacer par une vraie fonction !!
Ensuite, utilisez le tokenizer pour créer l’intégralité du prompt :
💡Benchmarks de performance
Ces benchmarks officiels concernent le checkpoint BF16 complet. Pour l’utiliser, il suffit d’utiliser les Q8_K_XL, Q8_0, BF16 checkpoints que nous avons mis en ligne — vous pouvez toujours utiliser des astuces comme le déchargement MoE pour ces versions aussi !
Voici les benchmarks pour le modèle 480B :
Codage agentique
Terminal‑Bench
37.5
30.0
2.5
35.5
25.3
SWE‑bench Verified avec OpenHands (500 tours)
69.6
–
–
70.4
–
SWE‑bench Verified avec OpenHands (100 tours)
67.0
65.4
38.8
68.0
48.6
SWE‑bench Verified avec Private Scaffolding
–
65.8
–
72.7
63.8
SWE‑bench Live
26.3
22.3
13.0
27.7
–
SWE‑bench Multilingue
54.7
47.3
13.0
53.3
31.5
Multi‑SWE‑bench mini
25.8
19.8
7.5
24.8
–
Multi‑SWE‑bench flash
27.0
20.7
–
25.0
–
Aider‑Polyglot
61.8
60.0
56.9
56.4
52.4
Spider2
31.1
25.2
12.8
31.1
16.5
Navigation agentique sur navigateur
WebArena
49.9
47.4
40.0
51.1
44.3
Mind2Web
55.8
42.7
36.0
47.4
49.6
Utilisation d’outils agentique
BFCL‑v3
68.7
65.2
56.9
73.3
62.9
TAU‑Bench Retail
77.5
70.7
59.1
80.5
–
TAU‑Bench Airline
60.0
53.5
40.0
60.0
–
Mis à jour
Ce contenu vous a-t-il été utile ?

