🌠Qwen3-Coder: Anleitung zum lokalen Ausführen
Führe Qwen3-Coder-30B-A3B-Instruct und 480B-A35B lokal mit Unsloth Dynamic Quants aus.
Qwen3-Coder ist Qwens neue Reihe von Coding-Agent-Modellen, verfügbar in 30B (Qwen3-Coder-Flash) und 480B Parametern. Qwen3-480B-A35B-Instruct erzielt SOTA-Coding-Leistung, die mit Claude Sonnet-4, GPT-4.1 und Kimi K2mithalten kann, mit 61,8 % bei Aider Polyglot und Unterstützung für 256K (erweiterbar auf 1M) Token-Kontext.
Wir haben außerdem Qwen3-Coder mit nativer 1M Kontextlänge hochgeladen, erweitert durch YaRN sowie Vollpräzisions-8bit- und 16bit-Versionen. Unsloth unterstützt jetzt auch Fine-Tuning und RL von Qwen3-Coder.
AKTUALISIERUNG: Wir haben Tool-Calling für Qwen3-Coder behoben! Sie können Tool-Calling nun nahtlos in llama.cpp, Ollama, LMStudio, Open WebUI, Jan etc. 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 auf dem Aider Polyglot Benchmark kam das UD-Q4_K_XL (276GB) dynamische Quant nahe an das volle bf16 (960GB) Qwen3-coder-Modell heran und erzielte 60,9 % vs. 61,8 %. Weitere Details hier.
Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs:
🖥️ Qwen3-Coder ausführen
Unten finden Sie 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, 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 (Die aktuelle Temperatur für San Francisco abrufen). Weitere Details hier zur Formatierung von Tool-Aufrufen.
Zur Erinnerung: Dieses Modell unterstützt nur den Non-Thinking-Modus und generiert keine <think></think> Blöcke in seiner Ausgabe. Gleichzeitig ist es nicht mehr erforderlich, enable_thinking=False anzugeben.
Qwen3-Coder-30B-A3B-Instruct ausführen:
Um Inferenzgeschwindigkeiten von 6+ Tokens pro Sekunde für unseren Dynamic 4-bit Quant zu erreichen, sollten Sie mindestens haben 18GB einheitlichen Speicher (kombiniertes VRAM und RAM) oder 18GB System-RAM allein. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übertreffen. Zum Beispiel erfordert der UD_Q8_K_XL-Quant (volle Präzision), der 32,5GB 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, aber dies verlangsamt die Inferenz. Maximale Speicherkapazität wird nur für die schnellsten Geschwindigkeiten benötigt.
Da dies ein Non-Thinking-Modell ist, besteht keine Notwendigkeit, thinking=False zu setzen, und das Modell erzeugt keine <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
Installieren Sie
ollamawenn Sie es noch nicht haben! Sie können nur Modelle bis zu 32B ausführen.
Führen Sie das Modell aus! Beachten Sie, dass Sie
ollama servein einem anderen Terminal aufrufen können, wenn es fehlschlägt! Wir fügen alle unsere Fixes und vorgeschlagenen Parameter (Temperatur etc.) inparamsin unserem Hugging Face Upload bei!
✨ Llama.cpp: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen
Holen Sie sich das neueste
llama.cppauf GitHub hier. Sie können auch den Build-Anweisungen unten 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 via (nach der Installation von
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 unseren 1-Bit-Quant zu erreichen, empfehlen wir mindestens 150GB einheitlichen Speicher (kombiniertes VRAM und RAM) oder 150GB System-RAM allein. Als Faustregel sollte Ihr verfügbarer Speicher der Größe des verwendeten Modells entsprechen oder diese übertreffen. Zum Beispiel erfordert der Q2_K_XL-Quant, der 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, aber dies verlangsamt die Inferenz. Maximale Speicherkapazität 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 Versionmöchten, verwenden Sie unsere Q8_K_XL, Q8_0 oder BF16 Versionen!
Holen Sie sich das neueste
llama.cppauf GitHub hier. Sie können auch den Build-Anweisungen unten 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 der Installation von
pip install huggingface_hub hf_transfer). Sie können UD-Q2_K_XL oder andere quantisierte Versionen wählen..Führen Sie das Modell im Konversationsmodus aus und probieren Sie beliebige Prompts.
Bearbeiten Sie
--threads -1für die Anzahl der CPU-Threads,--ctx-size262114 für Kontextlänge,--n-gpu-layers 99für GPU-Offloading wie viele Layer. Versuchen Sie, es anzupassen, wenn Ihre GPU keinen Speicher mehr hat. Entfernen Sie es ebenfalls, wenn Sie nur CPU-Inferenz haben.
Verwenden Sie -ot ".ffn_.*_exps.=CPU" um alle MoE-Layer auf die CPU auszulagern! Dies ermöglicht es effektiv, alle nicht-MoE-Layer auf 1 GPU unterzubringen und verbessert die Generierungsgeschwindigkeit. Sie können den Regex-Ausdruck anpassen, um mehr Layer zu verlagern, wenn Sie mehr GPU-Kapazität haben. Mehr Optionen werden hier.
Vergessen Sie auch nicht das neue Qwen3-Update. Führen Sie Qwen3-235B-A22B-Instruct-2507 lokal mit llama.cpp aus.
🛠️ Verbesserung der Generierungsgeschwindigkeit
Wenn Sie mehr VRAM haben, können Sie versuchen, mehr MoE-Layer auszulagern oder ganze Layer selbst auszulagern.
Normalerweise, -ot ".ffn_.*_exps.=CPU" lagert alle MoE-Layer auf die CPU aus! Dies ermöglicht es effektiv, alle nicht-MoE-Layer auf 1 GPU unterzubringen und verbessert die Generierungsgeschwindigkeit. Sie können den Regex-Ausdruck anpassen, um mehr Layer zu verlagern, 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-Projection-MoE-Layer aus.
Versuchen Sie -ot ".ffn_(up)_exps.=CPU" wenn Sie noch mehr GPU-Speicher haben. Dies lagert nur Up-Projection-MoE-Layer 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-Layer auszulagern, aber nur ab dem 6. Layer.
Die neueste llama.cpp-Version führt außerdem einen High-Throughput-Modus 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 Generierungsprozess ebenfalls beschleunigen kann.
📐Wie man langen Kontext (256K bis 1M) unterbringt
Um längeren Kontext zu ermöglichen, können Sie KV-Cache-Quantisierung verwenden, um die K- und V-Caches auf niedrigere Bits zu quantisieren. Dies kann auch die Generierungsgeschwindigkeit erhöhen, da weniger RAM/VRAM-Datenbewegung erforderlich ist. 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=ONund --flash-attn verwenden, um sie zu aktivieren.
Wir haben außerdem 1-Million-Kontextlängen-GGUFs über YaRN-Skalierung hochgeladen hier.
🧰 Tool-Calling-Fixes
Wir haben es geschafft, Tool-Calling über llama.cpp --jinja speziell für das Serving über llama-serverzu beheben! 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 tun Sie 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
Verwenden Sie
snapshot_downloadwie üblich wie in https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial, das die alten Dateien automatisch überschreiben wirdVerwenden Sie die neue Chat-Vorlage via
--chat-template-file. Siehe GGUF Chat-Vorlage oder chat_template.jinjaZusätzlich haben wir auch 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 https://github.com/ggml-org/llama.cpp/issues/14915 lösen
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 sollte. Für den Moment haben wir eine Platzhalterfunktion erstellt, die immer 21,6 Grad Celsius zurückgibt. Sie sollten dies durch eine echte Funktion ersetzen!!
Verwenden Sie dann den Tokenizer, um das gesamte Prompt zu erstellen:
💡Performance-Benchmarks
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 für diese Versionen ebenfalls 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 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‑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?

