zGLM-4.7: Anleitung zum lokalen Betrieb

Eine Anleitung, wie man das Z.ai GLM-4.7-Modell auf dem eigenen lokalen Gerät ausführt!

GLM-4.7 ist Z.ais neuestes Denkmodell und liefert stärkere Leistungen bei Codierung, Agenten und Chat als GLM-4.6. Es erreicht SOTA-Leistungen in SWE-bench (73,8 %, +5,8), SWE-bench Multilingual (66,7 %, +12,9) und Terminal Bench 2.0 (41,0 %, +16,5).

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

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.

⚙️ Gebrauchsanleitung

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

Verwenden Sie unterschiedliche Einstellungen für verschiedene Anwendungsfälle. Empfohlene Einstellungen für Standard- und Multi-Turn-Agenten-Anwendungsfälle:

Standardeinstellungen (die meisten Aufgaben)
Terminal Bench, SWE Bench verifiziert

temperature = 1.0

temperature = 0.7

top_p = 0.95

top_p = 1.0

131072 max new tokens

16384 max new tokens

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

  • Maximales Kontextfenster: 131,072

GLM-4.7 Tutorials ausführen:

Siehe unsere Schritt-für-Schritt-Anleitungen zum Ausführen von GLM-4.7 in Ollama und llama.cpp.

✨ In llama.cpp ausführen

1

Holen Sie sich das neueste llama.cpp auf GitHub hierarrow-up-right. Sie können auch den untenstehenden Build-Anweisungen folgen. Ändern Sie -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn Sie keine GPU haben oder einfach 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-info

Verwenden Sie --fit on eingeführt am 15. Dez. 2025 für maximale Nutzung Ihrer GPU und CPU.

Optional können Sie versuchen -ot ".ffn_.*_exps.=CPU" um alle MoE-Schichten auf die CPU auszulagern! 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.

Und schließlich alle Schichten auslagern über -ot ".ffn_.*_exps.=CPU" Dies verwendet am wenigsten VRAM.

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.

3

Laden Sie das Modell herunter via (nach der 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.

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

✨ 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 :

🔨Tool-Aufrufe mit GLM 4.7

Siehe Tool Calling Guide für weitere Details zur Durchführung von Tool-Aufrufen. In einem neuen Terminal (wenn Sie tmux verwenden, drücken Sie STRG+B+D) erstellen wir einige Tools wie das Addieren von 2 Zahlen, Ausführen von Python-Code, Ausführen von Linux-Funktionen und vieles mehr:

Dann verwenden wir die unten stehenden Funktionen (kopieren, einfügen und ausführen), die Funktionsaufrufe automatisch parsen und den OpenAI-Endpunkt für jedes Modell aufrufen:

Nach dem Start von GLM 4.7 über llama-server wie in GLM-4.7 oder siehe Tool Calling Guide für weitere Details, können wir dann einige Tool-Aufrufe durchführen:

Tool-Aufruf für mathematische Operationen für GLM 4.7

Tool-Aufruf zum Ausführen generierten Python-Codes für GLM 4.7

🏂 Generationsgeschwindigkeit verbessern

Verwenden Sie --fit on eingeführt am 15. Dez. 2025 für maximale Nutzung Ihrer GPU und CPU. Siehe https://github.com/ggml-org/llama.cpp/pull/16653arrow-up-right --fit on auto lagert so viel des Modells wie möglich auf die GPU aus und legt den Rest auf die CPU.

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 unterbringt (vollständig 128K)

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?