For the complete documentation index, see llms.txt. This page is also available as Markdown.

🌠Qwen3-Coder: Lokal ausführen

Führe Qwen3-Coder-30B-A3B-Instruct und 480B-A35B lokal mit Unsloths 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 erreicht eine SOTA-Coding-Performance und konkurriert mit Claude Sonnet-4, GPT-4.1 und Kimi K2, mit 61,8 % auf Aider Polygot und Unterstützung für einen 256K- (auf 1M erweiterbaren) Token-Kontext.

Wir haben Qwen3-Coder außerdem mit nativer 1M-Kontextlänge hochskaliert mit YaRN sowie vollständigen 8-Bit- und 16-Bit-Versionen hochgeladen. Unsloth unterstützt jetzt auch Fine-Tuning und RL von Qwen3-Coder.

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

Qwen3 Coder - Unsloth Dynamic 2.0 GGUFs:

Dynamic 2.0 GGUF (zum Ausführen)
1M Context Dynamic 2.0 GGUF

🖥️ Qwen3-Coder ausführen

Unten sind Anleitungen für die 30B-A3B und 480B-A35B Varianten des Modells.

⚙️ Empfohlene Einstellungen

Qwen empfiehlt für beide Modelle diese Inferenz-Einstellungen:

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 Standardwert in llama.cpp ist 0,1)

  • Top_P von 0,8

  • Wiederholungsstrafe von 1,05

  • Chat-Vorlage:

    <|im_start|>user
    Hey da!<|im_end|>
    <|im_start|>assistant
    Was ist 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 nicht gerenderten Zeilenumbrüchen

Chat-Vorlage für Tool-Calling (Aktuelle Temperatur für San Francisco abrufen). Weitere Details dazu, wie Tool-Aufrufe formatiert werden.

Zur Erinnerung: Dieses Modell unterstützt nur den Nicht-Denkmodus und erzeugt keine <think></think> Blöcke in seiner Ausgabe. Inzwischen 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 unsere dynamische 4-Bit-Quantisierung zu erreichen, solltet ihr mindestens 18 GB Unified Memory (kombinierter VRAM und RAM) oder 18 GB Systemspeicher allein haben. Als Faustregel gilt: Euer verfügbarer Speicher sollte der Größe des verwendeten Modells entsprechen oder sie übertreffen. Z. B. benötigt die UD_Q8_K_XL-Quantisierung (volle Präzision), die 32,5 GB groß ist, mindestens 33 GB Unified Memory (VRAM + RAM) oder 33 GB RAM für optimale Leistung.

HINWEIS: Das Modell kann mit weniger Speicher als seiner Gesamtgröße ausgeführt werden, aber das verlangsamt die Inferenz. Der maximale Speicher wird nur für die höchste Geschwindigkeit benötigt.

Da dies ein Nicht-Denk-Modell ist, muss man thinking=False nicht setzen, und das Modell erzeugt keine <think> </think> Blöcke.

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

🦙 Ollama: Tutorial zum Ausführen von Qwen3-Coder-30B-A3B-Instruct

  1. Installieren ollama falls ihr das noch nicht getan habt! Ihr könnt nur Modelle bis zu einer Größe von 32B ausführen.

  1. Führt das Modell aus! Beachtet, dass ihr ollama servein einem anderen Terminal aufrufen könnt, falls es fehlschlägt! Wir enthalten alle unsere Korrekturen und vorgeschlagenen Parameter (Temperatur usw.) in params in unserem Hugging-Face-Upload!

Llama.cpp: Tutorial zum Ausführen von Qwen3-Coder-30B-A3B-Instruct

  1. Erhalten Sie das neueste llama.cpp standardmäßig GitHub hier. Sie können auch die Build-Anweisungen unten befolgen. Ändern Sie -DGGML_CUDA=ON auf -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz möchten. Für Apple Mac / Metal-Geräte, setzen Sie -DGGML_CUDA=OFF und fahren Sie dann wie üblich fort - Metal-Unterstützung ist standardmäßig aktiviert.

  1. Ihr könnt direkt von HuggingFace ziehen über:

  2. Ladet das Modell herunter über (nach der Installation von pip install huggingface_hub hf_transfer ). Ihr könnt UD_Q4_K_XL oder andere quantisierte Versionen auswählen. Falls 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 unsere 1-Bit-Quantisierung zu erreichen, empfehlen wir mindestens 150 GB Unified Memory (kombinierter VRAM und RAM) oder 150 GB Systemspeicher allein. Als Faustregel gilt: Euer verfügbarer Speicher sollte der Größe des verwendeten Modells entsprechen oder sie übertreffen. Z. B. benötigt die Q2_K_XL-Quantisierung, die 180 GB groß ist, mindestens 180 GB Unified Memory (VRAM + RAM) oder 180 GB RAM für optimale Leistung.

HINWEIS: Das Modell kann mit weniger Speicher als seiner Gesamtgröße ausgeführt werden, aber das verlangsamt die Inferenz. Der maximale Speicher wird nur für die höchste Geschwindigkeit benötigt.

Befolgt die oben genannten Best Practices. Sie sind dieselben wie beim 30B-Modell.

📖 Llama.cpp: Tutorial zum Ausführen von Qwen3-Coder-480B-A35B-Instruct

Für Coder-480B-A35B verwenden wir speziell Llama.cpp für optimierte Inferenz und eine Fülle von Optionen.

  1. Erhalten Sie das neueste llama.cpp standardmäßig GitHub hier. Sie können auch die Build-Anweisungen unten befolgen. Ändern Sie -DGGML_CUDA=ON auf -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz möchten.

  2. Ihr könnt llama.cpp direkt verwenden, um das Modell herunterzuladen, aber ich empfehle normalerweise die Verwendung von huggingface_hub Um llama.cpp direkt zu verwenden, macht Folgendes:

  3. Oder ladet das Modell herunter über (nach der Installation von pip install huggingface_hub hf_transfer ). Ihr könnt UD-Q2_K_XL oder andere quantisierte Versionen auswählen..

  4. Führt das Modell im Gesprächsmodus aus und probiert irgendeinen Prompt aus.

  5. Bearbeiten Sie --threads -1 für die Anzahl der CPU-Threads, --ctx-size 262114 für die Kontextlänge, --n-gpu-layers 99 für GPU-Offloading, wie viele Schichten. Versucht, dies anzupassen, falls euer GPU-Speicher voll läuft. Entfernt es außerdem, wenn ihr nur CPU-Inferenz habt.

🛠️ Die Generierungsgeschwindigkeit verbessern

Wenn ihr mehr VRAM habt, könnt ihr versuchen, mehr MoE-Schichten auszulagern oder ganze Schichten selbst auszulagern.

Normalerweise -ot ".ffn_.*_exps.=CPU" werden alle MoE-Schichten auf die CPU ausgelagert! Dadurch könnt ihr effektiv alle Nicht-MoE-Schichten auf 1 GPU unterbringen und die Generierungsgeschwindigkeiten verbessern. Ihr könnt den Regex-Ausdruck anpassen, um mehr Schichten auszulagern, wenn ihr mehr GPU-Kapazität habt.

Wenn ihr etwas mehr GPU-Speicher habt, versucht -ot ".ffn_(up|down)_exps.=CPU" Dies lagert die Up- und Down-Projektions-MoE-Schichten aus.

Versucht -ot ".ffn_(up)_exps.=CPU" wenn ihr noch mehr GPU-Speicher habt. Dies lagert nur die Up-Projektions-MoE-Schichten aus.

Ihr könnt 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, aber nur ab der 6. Schicht.

Der neueste llama.cpp-Version führt auch einen Hochdurchsatzmodus ein. Verwendet llama-parallel. Lest mehr darüber hier. Ihr könnt auch den KV-Cache auf 4 Bit quantisieren zum Beispiel, um die VRAM-/RAM-Bewegung zu reduzieren, was den Generierungsprozess ebenfalls beschleunigen kann.

📐So passt langer Kontext hinein (256K bis 1M)

Um längeren Kontext unterzubringen, könnt ihr KV-Cache-Quantisierung verwenden, um die K- und V-Caches auf niedrigere Bitbreiten zu quantisieren. Dies kann auch die Generierungsgeschwindigkeit erhöhen, da weniger RAM-/VRAM-Datenbewegung anfällt. Die zulässigen Optionen für die 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

Ihr solltet die _1 Varianten verwenden, um etwas höhere Genauigkeit zu erhalten, auch wenn es etwas langsamer ist. Zum Beispiel q4_1, q5_1

Ihr könnt auch den V-Cache quantisieren, aber dafür müsst ihr llama.cpp mit Unterstützung für Flash Attention kompilieren über -DGGML_CUDA_FA_ALL_QUANTS=ON, und verwendet --flash-attn aktivieren.

Wir haben über YaRN-Scaling außerdem GGUFs mit 1 Million Kontextlänge hochgeladen hier.

🧰 Korrekturen für Tool-Calling

Wir haben Tool-Calling über llama.cpp --jinja speziell für das Bereitstellen über llama-serverreparieren können! Wenn ihr unsere 30B-A3B-Quantisierungen herunterladet, müsst ihr euch keine Sorgen machen, da diese unsere Korrekturen bereits enthalten. Für das 480B-A35B-Modell bitte:

  1. Ladet 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 ersetzt eure aktuelle Datei

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

  3. Verwendet die neue Chat-Vorlage über --chat-template-file. Siehe GGUF-Chat-Vorlage oder chat_template.jinja

  4. Als Zusatz haben wir auch eine einzelne 150GB große UD-IQ1_M-Datei erstellt (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

Das sollte Probleme wie dieses 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 an einem Beispiel.

Ich habe eine Python-Funktion erstellt namens get_current_temperature die die aktuelle Temperatur für einen Ort abrufen soll. Derzeit haben wir eine Platzhalterfunktion erstellt, die immer 21,6 Grad Celsius zurückgibt. Das solltet ihr in eine echte Funktion ändern!!

Dann verwendet den Tokenizer, um den gesamten Prompt zu erstellen:

💡Leistungs-Benchmarks

Diese offiziellen Benchmarks gelten für den vollständigen BF16-Checkpoint. Um dies zu verwenden, nutzt einfach die Q8_K_XL, Q8_0, BF16 Checkpoints, die wir hochgeladen haben - ihr könnt für diese Versionen ebenfalls weiterhin Tricks wie MoE-Offloading verwenden!

Hier sind die Benchmarks für das 480B-Modell:

Agentisches Programmieren

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 Verified mit OpenHands (500 Turns)

69.6

70.4

SWE‑bench Verified mit OpenHands (100 Turns)

67.0

65.4

38.8

68.0

48.6

SWE‑bench Verified mit Private Scaffolding

65.8

72.7

63.8

SWE‑bench Live

26.3

22.3

13.0

27.7

SWE‑bench Multilingual

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

Agentische Browser‑Nutzung

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

Agentische Tool‑Nutzung

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 Einzelhandel

77.5

70.7

59.1

80.5

TAU‑Bench Fluggesellschaft

60.0

53.5

40.0

60.0

Zuletzt aktualisiert

War das hilfreich?