🌠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. Unslotharrow-up-right unterstützt jetzt auch Fine-Tuning und RL von Qwen3-Coder.

circle-check

30B-A3B ausführen480B-A35B ausführen

circle-check

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|>assistant
  • Empfohlene 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.

circle-info

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.

circle-info

Befolgen Sie die oben genannten Best Practices. Sie sind dieselben wie beim 480B-Modell.

🦙 Ollama: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen

  1. In Ollama ausführen Installieren Sie falls Sie es noch nicht getan haben! Sie können nur Modelle bis zu einer Größe von 32B ausführen.

  1. curl -fsSL https://ollama.com/install.sh | sh Führen Sie das Modell aus! Beachten Sie, dass Sieollama serve in einem anderen Terminal aufrufen können, wenn es fehlschlägt! Wir fügen alle unsere Fixes und vorgeschlagenen Parameter (Temperatur usw.) in params

Llama.cpp: Qwen3-Coder-30B-A3B-Instruct Tutorial ausführen

  1. Hole dir die neueste llama.cpp auf GitHub hierarrow-up-right. Du kannst auch den Build-Anweisungen unten folgen. Ändere -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn du keine GPU hast oder nur CPU-Inferenz möchtest. Für Apple Mac / Metal-Geräte, setze -DGGML_CUDA=OFF dann wie gewohnt fort - Metal-Unterstützung ist standardmäßig aktiviert.

  1. Sie können direkt von HuggingFace ziehen via:

  2. 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.

circle-info

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.

circle-check
  1. Hole dir die neueste llama.cpp auf GitHub hierarrow-up-right. Du kannst auch den Build-Anweisungen unten folgen. Ändere -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn du keine GPU hast oder nur CPU-Inferenz möchtest.

  2. Sie können llama.cpp direkt verwenden, um das Modell herunterzuladen, aber ich empfehle normalerweise die Verwendung von huggingface_hub Um llama.cpp direkt zu verwenden, führen Sie aus:

  3. 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..

  4. Führen Sie das Modell im Konversationsmodus aus und probieren Sie beliebige Prompts.

  5. Bearbeiten --threads -1 --threads 32 --ctx-size 262114 für Kontextlänge, --n-gpu-layers 99 --n-gpu-layers 2

circle-check
circle-check

🛠️ "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-Versionarrow-up-right führt außerdem einen Hochdurchsatzmodus ein. Verwenden Sie llama-parallel. Lesen Sie mehr darüber hierarrow-up-right. 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:

  1. 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

  2. Verwende snapshot_download wie gewohnt wie in https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial, die die alten Dateien automatisch überschreibt

  3. Verwenden Sie die neue Chat-Vorlage über --chat-template-file. Siehe GGUF Chat-Vorlagearrow-up-right oder chat_template.jinjaarrow-up-right

  4. Als 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

circle-info

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

Benchmark
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3-0324
Claude 4 Sonnet
GPT‑4.1

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

Benchmark
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3 0324
Claude Sonnet‑4
GPT‑4.1

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

Benchmark
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3 0324
Claude Sonnet‑4
GPT‑4.1

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?