zGLM-4.6: Anleitung zum lokalen Betrieb

Eine Anleitung, wie man Z.ai GLM-4.6 und GLM-4.6V-Flash auf dem eigenen lokalen Gerät ausführt!

GLM-4.6 und GLM-4.6V-Flash sind die neuesten Reasoning-Modelle von Z.ai, die SOTA-Leistung in Coding- und Agent-Benchmarks erreichen und gleichzeitig verbesserte konversationelle Chats bieten. GLM-4.6V-Flash Das kleinere 9B-Modell wurde im Dezember 2025 veröffentlicht und Sie können es jetzt ebenfalls ausführen.

Das vollständige Modell mit 355B Parametern benötigt 400GB Festplattenspeicher, während das Unsloth Dynamic 2-bit GGUF die Größe reduziert auf 135GB (-75%). GLM-4.6-GGUFarrow-up-right

circle-check

Alle Uploads verwenden Unsloth Dynamic 2.0 für SOTA 5-shot MMLU- und Aider-Leistung, was bedeutet, dass Sie quantisierte GLM-LLMs mit minimalem Genauigkeitsverlust ausführen und feinabstimmen können.

Tutorial-Navigation:

GLM-4.6V-Flash ausführenGLM-4.6 ausführen

🐛Unsloth Chat-Vorlage & Fehlerbehebungen

Eine der wichtigen Korrekturen, die wir vorgenommen haben, betrifft ein Problem beim Prompting von GGUFs, bei dem der zweite Prompt nicht funktionierte. Wir haben dieses Problem behoben; dieses Problem besteht jedoch weiterhin in GGUFs ohne unsere Korrekturen. Zum Beispiel funktioniert bei Verwendung eines beliebigen Nicht-Unsloth-GLM-4.6-GGUF die erste Konversation einwandfrei, aber die zweite bricht ab.

Wir haben dies in unserer Chat-Vorlage behoben, sodass bei Verwendung unserer Version Konversationen über die zweite hinaus (dritte, vierte usw.) ohne Fehler funktionieren. Es gibt noch einige Probleme mit Tool-Calling, die wir aufgrund von Bandbreitenbeschränkungen noch nicht vollständig untersucht haben. Wir haben das GLM-Team bereits über diese verbleibenden Probleme informiert.

🔎Eigenheiten und Korrekturen von GLM 4.6V Flash

circle-info

GLM-4.6V-Flash kann auf Chinesisch denken und ausgeben. Das ist nicht einzigartig für unsere Quants, sondern eine Eigenheit des Modells. Verwenden Sie einen System-Prompt wie "Respond in English and reason in English", um Denken und Ausgaben auf Englisch zu erzwingen!

Wir haben die BF16- und Q8_0-Quants anderer Quant-Anbieter getestet, und alle scheinen auf Chinesisch zu denken. Zum Beispiel zeigen 2 separate Quants mit Seed 3407 und demselben Prompt "Create a Flappy Bird game in Python" das Denken auf Chinesisch:

Indem man einen System-Prompt "Reason in English" verwendet über --system-prompt "Respond in English" in llama.cpp, also zum Beispiel wie unten:

Wir erhalten Gedanken/Begründungen auf Chinesisch, aber Ausgaben auf Englisch. Wir fragen auch nach einer Folgefrage "What is 1+1" und erhalten nur Englisch:

Und schließlich, indem man einen System-Prompt "Respond in English and reason in English" verwendet über --system-prompt "Respond in English and reason in English" in llama.cpp, also zum Beispiel wie unten:

Erhalten wir Denken/Begründungen auf Englisch und Ausgaben auf Englisch! Wir fragen auch nach einer Folgefrage "What is 1+1" und erhalten nur Englisch:

⚙️ Gebrauchsanleitung

Das 2-Bit Dynamic Quant UD-Q2_K_XL benötigt 135GB Festplattenspeicher – das funktioniert gut in einer 1x24GB-Karte und 128GB RAM mit MoE-Offloading. Das 1-Bit UD-TQ1 GGUF funktioniert auch nativ in Ollama!

circle-info

Sie müssen --jinja für llama.cpp-Quants verwenden – dies nutzt unsere festen Chat-Vorlagen und aktiviert die richtige Vorlage! Sie könnten falsche Ergebnisse erhalten, wenn Sie nicht --jinja

Die 4-Bit-Quants passen auf eine 1x40GB-GPU (mit MoE-Schichten ausgelagert in den RAM). Rechnen Sie bei dieser Konfiguration mit etwa 5 Token/s, wenn Sie zusätzlich 165GB RAM haben. Es wird empfohlen, mindestens 205GB RAM zu haben, um dieses 4-Bit-Modell zu betreiben. Für optimale Leistung benötigen Sie mindestens 205GB Unified Memory oder 205GB kombinierter RAM+VRAM für 5+ Token/s. Um zu erfahren, wie man die Generationsgeschwindigkeit erhöht und längere Kontexte unterbringt, hier lesen.

circle-check

Empfohlene Einstellungen

Laut Z.ai gibt es unterschiedliche Einstellungen für die Inferenz von GLM-4.6V-Flash & GLM-4.6:

GLM-4.6V-Flash
GLM-4.6

temperature = 0.8

temperature = 1.0

top_p = 0.6 (empfohlen)

top_p = 0.95 (empfohlen für Coding)

top_k = 2 (empfohlen)

top_k = 40 (empfohlen für Coding)

Kontextlänge 128K oder weniger

200K Kontextlänge oder weniger

repeat_penalty = 1.1

max_generate_tokens = 16.384

max_generate_tokens = 16.384

  • Verwende --jinja für llama.cpp-Varianten – wir haben einige Probleme mit Chat-Vorlagen behoben!

GLM-4.6 Tutorials ausführen:

Sieh dir unsere Schritt-für-Schritt-Anleitungen zum Ausführen von GLM-4.6V-Flash und dem großen GLM-4.6 Modelle.

GLM-4.6V-Flash

circle-check

✨ In llama.cpp ausführen

1

Hole dir die neueste llama.cpp auf GitHubarrow-up-right. Sie können auch die untenstehenden Build-Anweisungen verwenden. Ändern Sie -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.

2

Wenn du llama.cpp direkt zum Laden von Modellen, Sie können Folgendes tun: (:Q8_K_XL) ist der Quantisierungstyp. Sie können auch über Hugging Face (Punkt 3) herunterladen. Das ist ähnlich zu ollama run . Verwenden Sie export LLAMA_CACHE="folder" um llama.cpp zu zwingen, an einem bestimmten Ort zu speichern. Denken Sie daran, dass das Modell nur eine maximale Kontextlänge von 128K hat.

3

Laden Sie das Modell herunter (nach der Installation pip install huggingface_hub hf_transfer ). Sie können wählen ). Sie können auswählenQ4_K_XL (dynamische 4-Bit-Quantisierung) oder andere quantisierte Versionen wie Q8_K_XL .

GLM-4.6

🦙 --seed 3407 \

2

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

3

OLLAMA_MODELS=unsloth ollama run hf.co/unsloth/GLM-4.7-GGUF:TQ1_0

✨ In llama.cpp 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.

2

Wenn du llama.cpp direkt zum Laden von Modellen verwenden möchten, können Sie Folgendes tun: (:Q2_K_XL) ist der Quantisierungstyp. Sie können auch über Hugging Face (Punkt 3) herunterladen. Das ist ähnlich wie ollama run . Verwenden Sie export LLAMA_CACHE="folder" um llama.cpp zu zwingen, an einem bestimmten Ort zu speichern. Denken Sie daran, dass das Modell nur eine maximale Kontextlänge von 128K hat.

circle-check
3

Laden Sie das Modell herunter (nach der Installation pip install huggingface_hub hf_transfer ). Sie können wählen ). Sie können auswählenUD- Q4_K_XL Q4_K_XL . Wir empfehlen die Verwendung unseres 2,7-Bit Dynamic Quant UD-Q2_K_XL.

4

--include "*UD-Q2_K_XL*" # Verwenden Sie "*UD-TQ1_0*" für Dynamic 1bit Sie können --threads 32 für die Anzahl der CPU-Threads bearbeiten, --ctx-size 16384 für Kontextlänge, --n-gpu-layers 2

OLLAMA_MODELS=unsloth ollama run merged_file.gguf

✨ Mit llama-server und OpenAIs Completion-Bibliothek bereitstellen

--port 8001 \ pip install openai :

💽Model-Uploads

ALLE unsere Uploads - einschließlich derjenigen, die nicht imatrix-basiert oder dynamisch sind, nutzen unseren Kalibrierungsdatensatz, der speziell für Konversations-, Coding- und Sprachaufgaben optimiert ist.

  • Vollständige GLM-4.6 Modell-Uploads unten:

Wir haben außerdem hochgeladen IQ4_NLarrow-up-right und Q4_1arrow-up-right Quants, die speziell für ARM- bzw. Apple-Geräte jeweils schneller laufen.

MoE Bits
Typ + Link
Platzbedarf auf Datenträger
Details

1,66bit

84GB

1,92/1,56bit

1,78bit

96GB

2,06/1,56bit

1,93bit

107GB

2.5/2.06/1.56

2,42bit

115GB

2,5/2,06bit

2,71bit

135GB

3,5/2,5bit

3,12bit

145GB

3,5/2,06bit

3,5bit

158GB

4,5/3,5bit

4,5bit

204GB

5,5/4,5bit

5,5bit

252GB

6,5/5,5bit

🏂 "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.

lagert alle MoE-Schichten auf die CPU aus! Dadurch können Sie effektiv alle Nicht-MoE-Schichten auf einer GPU unterbringen, was die Generationsgeschwindigkeit verbessert. Sie können den Regex-Ausdruck anpassen, um mehr Schichten zu verschieben, wenn Sie mehr GPU-Kapazität haben. 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 einpasst (volle 200K)

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 --flash-attn um es zu aktivieren. Dann können Sie es zusammen mit :

--cache-type-k verwenden, und

Zuletzt aktualisiert

War das hilfreich?