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 bei Codierungs- und Agenten-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 355B-Parameter-Modell benötigt 400GB Festplattenspeicher, während das Unsloth Dynamic 2-bit GGUF die Größe 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-Leistungen, das heißt, Sie können quantisierte GLM-LLMs mit minimalem Genauigkeitsverlust ausführen und feinabstimmen.

Tutorial-Navigation:

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

🐛Unsloth Chat-Vorlage & Fehlerbehebungen

Eine der bedeutenden 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 Fixes. Zum Beispiel funktioniert bei der Verwendung eines beliebigen nicht-Unsloth GLM-4.6 GGUF das erste Gespräch problemlos, aber das zweite bricht zusammen.

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

🔎Eigenarten und Fixes von GLM 4.6V Flash

circle-info

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

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

Durch die Verwendung eines System-Prompts "Reason in English" via --system-prompt "Respond in English" in llama.cpp, z. B. wie unten:

Wir erhalten Reasoning in Chinesisch, aber Ausgaben auf Englisch. Wir fragen auch nach einer Nachfolgefrage "What is 1+1" und erhalten nur Englisch:

Und schließlich, durch die Verwendung eines System-Prompts "Respond in English and reason in English" via --system-prompt "Respond in English and reason in English" in llama.cpp, z. B. wie unten:

Wir erhalten Reasoning auf Englisch und Ausgaben auf Englisch! Wir fragen auch nach einer Nachfolgefrage "What is 1+1" und erhalten nur Englisch:

⚙️ Nutzungsanleitung

Die 2-Bit-dynamische Quantisierung UD-Q2_K_XL verwendet 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 korrekte Vorlage! Sie könnten falsche Ergebnisse erhalten, wenn Sie nicht --jinja

Die 4-Bit-Quants passen in eine 1x40GB-GPU (mit MoE-Schichten, die in den RAM ausgelagert werden). Erwarten Sie mit diesem Setup etwa 5 Tokens/s, wenn Sie zusätzlich 165GB RAM haben. Es wird empfohlen, mindestens 205GB RAM zu haben, um dieses 4-Bit auszuführen. Für optimale Leistung benötigen Sie mindestens 205GB einheitlichen Speicher oder 205GB kombinierter RAM+VRAM für 5+ Tokens/s. Um zu erfahren, wie Sie die Generationsgeschwindigkeit erhöhen und längere Kontexte unterbringen, 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 Codierung)

top_k = 2 (empfohlen)

top_k = 40 (empfohlen für Codierung)

Kontextlänge 128K oder weniger

200K Kontextlänge oder weniger

repeat_penalty = 1.1

max_generate_tokens = 16.384

max_generate_tokens = 16.384

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

GLM-4.6 Tutorials ausführen:

Siehe 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

Holen Sie sich 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 Sie keine GPU haben oder nur CPU-Inferenz wünschen.

2

Wenn Sie 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 herunterladen (Punkt 3). Dies ist ähnlich zu ollama run . Verwenden Sie export LLAMA_CACHE="folder" um zu erzwingen, dass llama.cpp an einem bestimmten Ort speichert. Denken Sie daran, dass das Modell nur eine maximale Kontextlänge von 128K hat.

3

Laden Sie das Modell herunter über (nach Installation von pip install huggingface_hub hf_transfer ). Sie können wählen UD-Q4_K_XL (dynamische 4-Bit-Quantisierung) oder andere quantisierte Versionen wie Q8_K_XL .

GLM-4.6

🦙 In Ollama ausführen

1

Installieren Sie ollama falls Sie es noch nicht getan haben! Um weitere Varianten des Modells auszuführen, siehe hier.

2

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.) in params in unserem Hugging Face-Upload hinzu!

3

Um andere Quants auszuführen, müssen Sie zuerst die GGUF-Split-Dateien zu einer Datei wie im folgenden Code zusammenführen. Dann müssen Sie das Modell lokal ausführen.

✨ In llama.cpp ausführen

1

Holen Sie sich die neueste llama.cpp auf GitHub hierarrow-up-right. Sie können auch den unten stehenden Build-Anweisungen folgen. Ändern Sie -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz wünschen.

2

Wenn Sie 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 herunterladen (Punkt 3). Dies ist ähnlich wie ollama run . Verwenden Sie export LLAMA_CACHE="folder" um zu erzwingen, dass llama.cpp an einem bestimmten Ort speichert. Denken Sie daran, dass das Modell nur eine maximale Kontextlänge von 128K hat.

circle-check
3

Laden Sie das Modell herunter über (nach Installation von pip install huggingface_hub hf_transfer ). Sie können wählen UD-Q2_K_XL (dynamische 2-Bit-Quantisierung) oder andere quantisierte Versionen wie Q4_K_XL . Wir empfehlen die Verwendung unserer 2,7-Bit-dynamischen Quantisierung UD-Q2_K_XL um Größe und Genauigkeit auszugleichen.

4

Sie können --threads 32 für die Anzahl der CPU-Threads bearbeiten, --ctx-size 16384 für die Kontextlänge, --n-gpu-layers 2 fü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.

✨ Mit llama-server und OpenAIs Completion-Bibliothek bereitstellen

Um llama-server für die Bereitstellung zu verwenden, benutzen Sie den folgenden Befehl:

Verwenden Sie anschließend die OpenAI-Python-Bibliothek nachdem Sie pip install openai :

💽Model-Uploads

ALLE unsere Uploads - einschließlich jener, die nicht imatrix-basiert oder dynamisch sind, nutzen unseren Kalibrierungs-Datensatz, der speziell für Konversation, Programmierung 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
Platten-/Festplattengröße
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

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

Llama.cpp führt auch einen Hochdurchsatzmodus ein. Verwenden Sie llama-parallel. Lesen Sie mehr darüber hierarrow-up-right. 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 anpasst (vollständige 200K)

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. Dann können Sie es zusammen mit --cache-type-k :

--cache-type-v f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1

Zuletzt aktualisiert

War das hilfreich?