🌠Qwen3-Coder: Anleitung zum lokalen Betrieb
Führe Qwen3-Coder-30B-A3B-Instruct und 480B-A35B lokal mit Unsloth Dynamic-Quants aus.
Qwen3-Coder ist Qwens neue Serie von Coding-Agent-Modellen, verfügbar in 30B (Qwen3-Coder-Flash) und 480B Parametern. Qwen3-480B-A35B-Instruct erreicht SOTA-Coding-Performance, die mit Claude Sonnet-4, GPT-4.1 und Kimi K2wetteifert, mit 61,8% auf 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 sowie Vollpräzisions-8bit- und 16bit-Versionen hochgeladen. Unsloth unterstützt jetzt auch Fine-Tuning und RL von Qwen3-Coder.
AKTUALISIERUNG: Wir haben Tool-Calling für Qwen3-Coder repariert! Du kannst 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 Drittanbieter-Tests mit dem Aider Polyglot-Benchmark kam das UD-Q4_K_XL (276GB) dynamische Quant fast an das volle bf16 (960GB) Qwen3-coder-Modell heran und erzielte 60,9% vs. 61,8%. Mehr Details hier.
Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs:
🖥️ Qwen3-Coder ausführen
Unten sind 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 Standard in llama.cpp ist 0,1)
Top_P von 0,8
Repetition Penalty von 1,05
Chat-Vorlage:
{% code overflow="wrap" %}
<|im_start|>user Hey there!<|im_end|> <|im_start|>assistant What is 1+1?<|im_end|> <|im_start|>user 2<|im_end|> <|im_start|>assistant{% endcode %}
Empfohlene Kontextausgabe: 65.536 Tokens (kann erhöht werden). Details hier.
Chat-Vorlage/Prompt-Format mit nicht gerenderten Zeilenumbrüchen
Chat-Vorlage für Tool-Calling (Abfrage der aktuellen Temperatur für San Francisco). Mehr Details dazu, wie man Tool-Aufrufe formatiert.
Zur Erinnerung: Dieses Modell unterstützt nur den Non-Thinking-Modus und erzeugt keine <think></think> Blöcke in seiner Ausgabe. Gleichzeitig ist die Angabe von enable_thinking=False nicht mehr erforderlich.
Qwen3-Coder-30B-A3B-Instruct ausführen:
Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unsere Dynamic 4-Bit-Quantisierung zu erreichen, benötigen Sie mindestens 18GB vereinheitlichter Speicher (kombiniertes VRAM und RAM) oder 18GB Systemspeicher (RAM) allein. Als Faustregel sollte dein verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. Z. B. erfordert der UD_Q8_K_XL-Quant (Vollpräzision), der 32,5GB groß ist, mindestens 33GB vereinheitlichten Speicher (VRAM + RAM) oder 33GB RAM für optimale Leistung benötigen.
HINWEIS: Das Modell kann mit weniger Speicher als seiner Gesamtgröße laufen, aber dies verlangsamt die Inferenz. Maximale Speicherkapazität wird nur für die schnellsten Geschwindigkeiten benötigt.
Da dies ein nicht-denkendes Modell ist, ist es nicht nötig, thinking=False zu setzen und das Modell generiert nicht <think> </think> Blöcke.
Befolgen Sie die oben genannten Best Practices. Diese sind gleich wie beim 480B-Modell.
🦙 Ollama: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen
Installieren Sie
ollamawenn Sie es noch nicht getan haben! Sie können nur Modelle bis zu einer Größe von 32B ausführen.
Führen Sie das Modell aus! Beachten Sie, dass Sie aufrufen können
ollama servein einem anderen Terminal, falls es fehlschlägt! Wir fügen alle unsere Fixes und vorgeschlagenen Parameter (Temperatur usw.) inparamsin unserem Hugging Face-Upload hinzu!
✨ Llama.cpp: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen
Holen Sie sich die neueste
llama.cppauf GitHub hier. Sie können auch den unten stehenden Build-Anweisungen folgen. Ändern Sie-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn Sie keine GPU haben oder nur CPU-Inferenz wünschen.
Sie können direkt von HuggingFace ziehen via:
Laden Sie das Modell herunter über (nach Installation von
pip install huggingface_hub hf_transfer). Sie können UD_Q4_K_XL oder andere quantisierte Versionen wählen.
Qwen3-Coder-480B-A35B-Instruct ausführen:
Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unsere 1-Bit-Quantisierung zu erreichen, empfehlen wir mindestens 150GB vereinheitlichter Speicher (kombiniertes VRAM und RAM) oder 150GB Systemspeicher (RAM) allein. Als Faustregel sollte dein verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übersteigen. Z. B. erfordert der Q2_K_XL-Quant, der 180GB groß ist, mindestens 180 GB einheitlichen Speicher (VRAM + RAM) oder 180 GB RAM für optimale Leistung benötigen.
HINWEIS: Das Modell kann mit weniger Speicher als seiner Gesamtgröße laufen, aber dies verlangsamt die Inferenz. Maximale Speicherkapazität wird nur für die schnellsten Geschwindigkeiten benötigt.
Befolgen Sie die oben genannten Best Practices. Diese sind gleich 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 Versionwollen, verwenden Sie unsere Q8_K_XL, Q8_0 oder BF16 Versionen!
Holen Sie sich die neueste
llama.cppauf GitHub hier. Sie können auch den unten stehenden Build-Anweisungen folgen. Ändern Sie-DGGML_CUDA=ONzu-DGGML_CUDA=OFFwenn Sie keine GPU haben oder nur CPU-Inferenz wünschen.Sie können llama.cpp direkt verwenden, um das Modell herunterzuladen, aber ich empfehle normalerweise die Nutzung von
huggingface_hubUm llama.cpp direkt zu verwenden, tun Sie:{% code overflow="wrap" %}
{% endcode %}
Oder laden Sie das Modell herunter via (nach Installation von
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 Eingaben.
Bearbeiten
--threads -1für die Anzahl der CPU-Threads bearbeiten,--ctx-size262114 für Kontextlänge,--n-gpu-layers 99für das GPU-Offloading für wie viele Schichten. Versuchen Sie, es anzupassen, wenn Ihre GPU nicht mehr genügend Speicher hat. Entfernen Sie es auch, wenn Sie nur CPU-Inferenz haben.
Verwenden Sie -ot ".ffn_.*_exps.=CPU" um alle MoE-Layer auf die CPU auszulagern! Dadurch können Sie alle Nicht-MoE-Layer auf einer GPU platzieren, was die Generierungsgeschwindigkeit verbessert. Sie können den Regex-Ausdruck anpassen, um mehr Layer auszulagern, wenn Sie mehr GPU-Kapazität haben. Weitere Optionen werden hier.
Vergiss auch nicht das neue Qwen3-Update. Führe Qwen3-235B-A22B-Instruct-2507 lokal mit llama.cpp aus.
🛠️ Generationsgeschwindigkeit verbessern
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 es effektiv, alle Nicht-MoE-Schichten auf einer GPU unterzubringen und die Generationsgeschwindigkeit zu verbessern. Sie können den Regex-Ausdruck anpassen, um mehr Schichten auszulagern, 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 den Regex auch 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, jedoch nur ab der 6. Schicht.
Der neueste llama.cpp-Version führt auch einen Hochdurchsatzmodus ein. Verwenden Sie llama-parallel. Lesen Sie mehr darüber hier. Sie können auch den KV-Cache auf 4 Bit quantisieren zum Beispiel, um VRAM-/RAM-Bewegungen zu reduzieren, was den Generationsprozess auch beschleunigen kann.
📐Wie man langen Kontext (256K bis 1M) anpasst
Um längere Kontexte unterzubringen, können Sie KV-Cache-Quantisierung verwenden, um die K- und V-Caches auf niedrigere Bits zu quantisieren. Dies kann auch die Generationsgeschwindigkeit aufgrund reduzierter RAM-/VRAM-Datenbewegung erhöhen. Die erlaubten Optionen für K-Quantisierung (Standard ist f16) umfassen die folgenden.
--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 über -DGGML_CUDA_FA_ALL_QUANTS=ON, und verwenden Sie --flash-attn um es zu aktivieren.
Wir haben außerdem 1-Million-Kontextlängen-GGUFs via YaRN-Skalierung hochgeladen hier.
🧰 Tool-Calling-Fixes
Es ist uns gelungen, Tool-Calling über llama.cpp --jinja speziell für das Bereitstellen über llama-server! Wenn du unsere 30B-A3B-Quants herunterlädst, brauchst du dir keine Sorgen zu machen, da diese bereits unsere Fixes enthalten. Für das 480B-A35B-Modell bitte:
Lade 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 ersetze deine aktuelle Datei
Verwenden Sie
snapshot_downloadwie üblich gemäß https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial, was die alten Dateien automatisch überschreiben wirdVerwende die neue Chat-Vorlage über
--chat-template-file. Siehe GGUF-Chat-Vorlage oder chat_template.jinjaAls Zusatz 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 erstellt
Das sollte Probleme wie dieses lösen: https://github.com/ggml-org/llama.cpp/issues/14915
Verwendung von Tool-Calling
Um die Prompts für Tool-Calling zu formatieren, zeigen wir es mit einem Beispiel.
Ich habe eine Python-Funktion namens get_current_temperature erstellt, die die aktuelle Temperatur für einen Ort abrufen soll. Fürs Erste haben wir eine Platzhalterfunktion erstellt, die immer 21,6 Grad Celsius zurückgibt. Du solltest dies in eine echte Funktion ändern!!
Verwende dann den Tokenizer, um den gesamten Prompt zu erstellen:
💡Performance-Benchmarks
Diese offiziellen Benchmarks gelten für den vollständigen BF16-Checkpoint. Um diesen zu verwenden, nutze einfach die Q8_K_XL, Q8_0, BF16 Checkpoints, die wir hochgeladen haben – du kannst für diese Versionen weiterhin Tricks wie MoE-Offloading verwenden!
Hier sind die Benchmarks für das 480B-Modell:
Agentic Coding
Terminal‑Bench
37.5
30.0
2.5
35.5
25.3
SWE‑bench Verifiziert mit OpenHands (500 Durchläufe)
69.6
–
–
70.4
–
SWE‑bench Verifiziert mit OpenHands (100 Durchläufe)
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‑Nutzung
WebArena
49.9
47.4
40.0
51.1
44.3
Mind2Web
55.8
42.7
36.0
47.4
49.6
Agentic Tool‑Nutzung
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?

