🌠Qwen3-Coder: Anleitung zum lokalen Ausführen
Führen Sie Qwen3-Coder-30B-A3B-Instruct und 480B-A35B lokal mit Unsloth Dynamic Quantisierungen aus.
Qwen3-Coder ist Qwens neue Serie von Codierungsagentenmodellen, verfügbar in 30B (Qwen3-Coder-Flash) und 480B Parametern. Qwen3-480B-A35B-Instruct erzielt SOTA-Codierungsleistung, die mit Claude Sonnet-4, GPT-4.1 und konkurriert Kimi K2, mit 61,8% beim Aider Polyglot und Unterstützung für einen Kontext von 256K (erweiterbar auf 1M) Tokens.
Wir haben außerdem Qwen3-Coder mit nativer 1M Kontextlänge erweitert durch YaRN und Vollpräzisions-8bit- und 16bit-Versionen hochgeladen. Unsloth unterstützt jetzt auch Fine-Tuning und RL von Qwen3-Coder.
AKTUALISIERUNG: Wir haben das Tool-Calling für Qwen3-Coder behoben! Sie können jetzt Tool-Calling nahtlos in llama.cpp, Ollama, LMStudio, Open WebUI, Jan usw. verwenden. Dieses Problem war universell und betraf alle Uploads (nicht nur Unsloth), und wir haben das Qwen-Team über unsere Fixes informiert! Mehr lesen
30B-A3B ausführen480B-A35B ausführen
Funktioniert Unsloth Dynamic Quants ? Ja, und sehr gut. Bei Tests durch Dritte auf dem Aider Polyglot-Benchmark kam der UD-Q4_K_XL (276GB) dynamische Quant kam dem vollen bf16 (960GB) Qwen3-coder Modell nahezu gleich und erzielte 60,9% gegenüber 61,8%. Weitere Details hier.
Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs:
🖥️ Qwen3-Coder ausführen
Unten stehen Anleitungen für die 30B-A3B und 480B-A35B Varianten des Modells.
⚙️ Empfohlene Einstellungen
Qwen empfiehlt diese Inferenz-Einstellungen für beide Modelle:
temperature=0.7, top_p=0.8, top_k=20, repetition_penalty=1.05
Temperatur von 0,7
Top_K von 20
Min_P von 0,00 (optional, aber 0,01 funktioniert gut, der llama.cpp-Standard ist 0,1)
Top_P von 0,8
Repetition Penalty von 1,05
Chat-Vorlage:
<|im_start|>user Hey there!<|im_end|> <|im_start|>assistant What is 1+1?<|im_end|> <|im_start|>user 2<|im_end|> <|im_start|>assistantEmpfohlene Kontextausgabe: 65.536 Tokens (kann erhöht werden). Details hier.
Chat-Vorlage/Prompt-Format mit unverarbeiteten Zeilenumbrüchen
Chat-Vorlage für Tool-Calling (Abrufen der aktuellen Temperatur für San Francisco). Mehr Details hier zur Formatierung von Tool-Aufrufen.
Erinnerung: Dieses Modell unterstützt nur den Non-Thinking-Modus und generiert keine <think></think> Blöcke in seiner Ausgabe. Währenddessen ist das Angeben von enable_thinking=False nicht mehr erforderlich.
Qwen3-Coder-30B-A3B-Instruct ausführen:
Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unser Dynamic-4-Bit-Quant zu erreichen, haben Sie mindestens 18GB einheitlichen Speicher (kombiniertes VRAM und RAM) oder 18GB Systemspeicher allein. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. Z. B. erfordert das UD_Q8_K_XL-Quant (Vollpräzision), das 32,5GB groß ist, mindestens 33GB einheitlichen Speicher (VRAM + RAM) oder 33GB RAM für optimale Leistung.
HINWEIS: Das Modell kann mit weniger Speicher als seiner Gesamtgröße laufen, dies verlangsamt jedoch die Inferenz. Maximalspeicher wird nur für die schnellsten Geschwindigkeiten benötigt.
Da dies ein Non-Thinking-Modell ist, ist es nicht notwendig, thinking=False und das Modell erzeugt nicht <think> </think> Blöcke.
Befolgen Sie die oben genannten Best Practices. Sie sind dieselben wie beim 480B-Modell.
🦙 Ollama: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen
In Ollama ausführen
Installieren Siefalls Sie es noch nicht getan haben! Sie können nur Modelle bis zu einer Größe von 32B ausführen.
curl -fsSL https://ollama.com/install.sh | sh
Führen Sie das Modell aus! Beachten Sie, dass Sieollama servein einem anderen Terminal aufrufen können, wenn es fehlschlägt! Wir fügen alle unsere Fixes und vorgeschlagenen Parameter (Temperatur usw.) inparams
✨ Llama.cpp: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen
Hole dir die neueste
llama.cppauf GitHub hier. Du kannst auch den Build-Anweisungen unten folgen. Ändere-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn du keine GPU hast oder nur CPU-Inferenz möchtest. Für Apple Mac / Metal-Geräte, setze-DGGML_CUDA=OFFdann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.
Sie können direkt von HuggingFace ziehen via:
Laden Sie das Modell herunter (nach der Installation
pip install huggingface_hub hf_transfer). Sie können UD_Q4_K_XL oder andere quantisierte Versionen wählen. Wenn Downloads hängen bleiben, siehe Hugging Face Hub, XET-Debugging
Qwen3-Coder-480B-A35B-Instruct ausführen:
Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unser 1-Bit-Quant zu erreichen, empfehlen wir mindestens 150GB einheitlichen Speicher (kombiniertes VRAM und RAM) oder 150GB Systemspeicher allein. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. Z. B. erfordert das Q2_K_XL-Quant, das 180GB groß ist, mindestens 180GB einheitlichen Speicher (VRAM + RAM) oder 180GB RAM für optimale Leistung.
HINWEIS: Das Modell kann mit weniger Speicher als seiner Gesamtgröße laufen, dies verlangsamt jedoch die Inferenz. Maximalspeicher wird nur für die schnellsten Geschwindigkeiten benötigt.
Befolgen Sie die oben genannten Best Practices. Sie sind dieselben wie beim 30B-Modell.
📖 Llama.cpp: Qwen3-Coder-480B-A35B-Instruct Tutorial ausführen
Für Coder-480B-A35B werden wir speziell Llama.cpp für optimierte Inferenz und eine Fülle von Optionen verwenden.
Wenn Sie eine vollpräzise unquantisierte Version, verwenden Sie unser Q8_K_XL, Q8_0 oder BF16 Versionen!
Hole dir die neueste
llama.cppauf GitHub hier. Du kannst auch den Build-Anweisungen unten folgen. Ändere-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn du keine GPU hast oder nur CPU-Inferenz möchtest.Sie können llama.cpp direkt verwenden, um das Modell herunterzuladen, aber ich empfehle normalerweise die Verwendung von
huggingface_hubUm llama.cpp direkt zu verwenden, führen Sie aus:Oder laden Sie das Modell herunter via (nach der Installation
pip install huggingface_hub hf_transfer). Du kannst UD-Q2_K_XL oder andere quantisierte Versionen wählen..Führen Sie das Modell im Konversationsmodus aus und probieren Sie beliebige Prompts.
Bearbeiten
--threads -1--threads 32--ctx-size262114 für Kontextlänge,--n-gpu-layers 99--n-gpu-layers 2
Verwende -ot ".ffn_.*_exps.=CPU" um alle MoE-Schichten auf die CPU auszulagern! Dies ermöglicht es effektiv, alle Nicht-MoE-Schichten auf 1 GPU unterzubringen und verbessert die Generierungsgeschwindigkeiten. Sie können den Regex-Ausdruck anpassen, um mehr Schichten zu verschieben, wenn Sie mehr GPU-Kapazität haben. Mehr Optionen werden diskutiert hier.
Vergessen Sie auch nicht das neue Qwen3-Update. Führen Sie Qwen3-235B-A22B-Instruct-2507 lokal mit llama.cpp aus.
🛠️ "content": [{"type": "text", "text": "Erstelle eine Fibonacci-Funktion in Python und finde fib(20)."}],
Wenn Sie mehr VRAM haben, können Sie versuchen, mehr MoE-Schichten auszulagern oder ganze Schichten selbst auszulagern.
Normalerweise, -ot ".ffn_.*_exps.=CPU" lagert alle MoE-Schichten auf die CPU aus! Dies ermöglicht effektiv, alle Nicht-MoE-Schichten auf 1 GPU unterzubringen und verbessert die Generationsgeschwindigkeit. Sie können den Regex-Ausdruck anpassen, um mehr Schichten unterzubringen, wenn Sie mehr GPU-Kapazität haben.
Wenn Sie etwas mehr GPU-Speicher haben, versuchen Sie -ot ".ffn_(up|down)_exps.=CPU" Dies lagert Up- und Down-Projektions-MoE-Schichten aus.
Versuchen Sie -ot ".ffn_(up)_exps.=CPU" wenn Sie noch mehr GPU-Speicher haben. Dies lagert nur Up-Projektions-MoE-Schichten aus.
Sie können auch den Regex anpassen, zum Beispiel -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" bedeutet, Gate-, Up- und Down-MoE-Schichten auszulagern, aber nur ab der 6. Schicht.
Die neueste llama.cpp-Version führt außerdem einen Hochdurchsatzmodus ein. Verwenden Sie llama-parallel. Lesen Sie mehr darüber hier. Sie können auch den KV-Cache z. B. auf 4 Bit quantisieren, den KV-Cache auf 4 Bit quantisieren
📐Wie man langen Kontext (256K bis 1M) handhabt
Um längeren Kontext unterzubringen, können Sie KV-Cache-Quantisierung verwenden, um die K- und V-Caches auf niedrigere Bits zu quantisieren. Dies kann auch die Generationsgeschwindigkeit erhöhen aufgrund reduzierter RAM-/VRAM-Datenbewegungen. Die erlaubten Optionen für K-Quantisierung (Standard ist f16) umfassen die untenstehenden.
--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
Sie sollten die _1 Varianten für etwas erhöhte Genauigkeit verwenden, obwohl sie etwas langsamer sind. Zum Beispiel q4_1, q5_1
Sie können auch den V-Cache quantisieren, aber Sie müssen llama.cpp mit Flash Attention kompilieren Unterstützung via -DGGML_CUDA_FA_ALL_QUANTS=ON, und verwenden --flash-attn um es zu aktivieren.
Wir haben außerdem 1-Million-Kontextlängen-GGUFs über YaRN-Skalierung hochgeladen hier.
🧰 Tool-Calling-Fixes
Es ist uns gelungen, Tool-Calling zu beheben via llama.cpp --jinja speziell für das Serving über llama-server! Wenn Sie unsere 30B-A3B Quants herunterladen, müssen Sie sich keine Sorgen machen, da diese bereits unsere Fixes enthalten. Für das 480B-A35B-Modell bitte:
Laden Sie die erste Datei unter https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2_K_XL für UD-Q2_K_XL herunter und ersetzen Sie Ihre aktuelle Datei
Verwende
snapshot_downloadwie gewohnt wie in https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial, die die alten Dateien automatisch überschreibtVerwenden Sie die neue Chat-Vorlage über
--chat-template-file. Siehe GGUF Chat-Vorlage oder chat_template.jinjaAls Extra haben wir außerdem eine einzelne 150GB UD-IQ1_M Datei (damit Ollama funktioniert) unter https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1_M.gguf bereitgestellt
Dies sollte Probleme wie lösen: https://github.com/ggml-org/llama.cpp/issues/14915
Tool-Calling verwenden
Um die Prompts für Tool-Calling zu formatieren, zeigen wir es mit einem Beispiel.
Ich habe eine Python-Funktion namens erstellt get_current_temperature die eine Funktion ist, die die aktuelle Temperatur für einen Ort ermitteln soll. Für jetzt haben wir eine Platzhalterfunktion erstellt, die immer 21,6 Grad Celsius zurückgeben wird. Sie sollten dies in eine echte Funktion ändern!!
Verwenden Sie dann den Tokenizer, um den gesamten Prompt zu erstellen:
💡Leistungsbenchmarks
Diese offiziellen Benchmarks gelten für den vollständigen BF16-Checkpoint. Um diesen zu verwenden, nutzen Sie einfach die Q8_K_XL, Q8_0, BF16 Checkpoints, die wir hochgeladen haben – Sie können weiterhin Tricks wie MoE-Offloading auch für diese Versionen verwenden!
Hier sind die Benchmarks für das 480B-Modell:
Agentisches Codieren
Terminal‑Bench
37.5
30.0
2.5
35.5
25.3
SWE‑bench Verifiziert mit OpenHands (500 Runden)
69.6
–
–
70.4
–
SWE‑bench Verifiziert mit OpenHands (100 Runden)
67.0
65.4
38.8
68.0
48.6
SWE‑bench Verifiziert mit Privatem Scaffolding
–
65.8
–
72.7
63.8
SWE‑bench Live
26.3
22.3
13.0
27.7
–
SWE‑bench Mehrsprachig
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
Agentic Browser Use
WebArena
49.9
47.4
40.0
51.1
44.3
Mind2Web
55.8
42.7
36.0
47.4
49.6
Agentic Tool -Use
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
–
Zuletzt aktualisiert
War das hilfreich?

