GLM-4.7: Anleitung zur lokalen Ausführung
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 Thinking-Modell und bietet stärkere Coding-, Agenten- und Chat-Leistung als GLM-4.6. Es erreicht SOTA-Leistungen im 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 Modell mit 355B Parametern benötigt 400GB Festplattenspeicher, während das Unsloth Dynamic 2-bit GGUF die Größe reduziert auf 134GB (-75%). GLM-4.7-GGUF
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.
⚙️ 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!
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.
Obwohl es nicht zwingend erforderlich ist: Für beste Leistung sollten VRAM + RAM zusammen der Größe des heruntergeladenen Quants entsprechen. Falls nicht, funktioniert Offloading auf Festplatte/SSD mit llama.cpp, nur wird die Inferenz langsamer. Verwenden Sie außerdem --fit on in llama.cpp um die maximale GPU-Auslastung automatisch zu aktivieren!
Empfohlene Einstellungen
Verwenden Sie unterschiedliche Einstellungen für verschiedene Anwendungsfälle. Empfohlene Einstellungen für Standard- und mehrteilige agentische Anwendungsfälle:
temperature = 1.0
temperature = 0.7
top_p = 0.95
top_p = 1.0
131072 max new tokens
16384 max new tokens
Verwenden Sie
--jinjafür llama.cpp-Varianten – wir haben einige Probleme mit Chat-Vorlagen behoben!Maximales Kontextfenster:
131,072
GLM-4.7-Tutorials ausführen:
Sehen Sie unsere Schritt-für-Schritt-Anleitungen zum Ausführen von GLM-4.7 in Ollama und llama.cpp.
✨ In llama.cpp ausführen
Holen Sie sich das neueste llama.cpp auf GitHub hier. Sie können auch den untenstehenden Build-Anweisungen folgen. Ändern Sie -DGGML_CUDA=ON zu -DGGML_CUDA=OFF wenn Sie keine GPU haben oder nur CPU-Inferenz wünschen. Für Apple Mac / Metal-Geräte, setzen Sie -DGGML_CUDA=OFF und fahren dann wie gewohnt fort – Metal-Unterstützung ist standardmäßig aktiviert.
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 (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.
Verwenden Sie --fit on eingeführt am 15. Dez. 2025 für maximale Nutzung Ihrer GPU und CPU.
Optional versuchen Sie -ot ".ffn_.*_exps.=CPU" um alle MoE-Schichten auf die CPU auszulagern! 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.
Wenn Sie etwas mehr GPU-Speicher haben, versuchen Sie -ot ".ffn_(up|down)_exps.=CPU" Dies lagert Up- und Down-Projection-MoE-Schichten aus.
Versuchen Sie -ot ".ffn_(up)_exps.=CPU" wenn Sie noch mehr GPU-Speicher haben. Dies lagert nur Up-Projection-MoE-Schichten aus.
Und schließlich lagern Sie alle Schichten über -ot ".ffn_.*_exps.=CPU" aus.
Dies verwendet am wenigsten VRAM. 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, jedoch nur ab der 6. Schicht. Laden Sie das Modell herunter via (nach der Installation von pip install huggingface_hub hf_transfer ). Sie können auswählenUD- Q2_K_XL (dynamic 2bit quant) oder andere quantisierte Versionen wie Q4_K_XL . Wir empfehlen die Verwendung unseres 2,7-Bit Dynamic Quant UD-Q2_K_XL.
--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
🦙 --seed 3407 \
In Ollama ausführen Installieren Sie ollama falls Sie es noch nicht getan haben! Um weitere Varianten des Modells auszuführen,.
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
OLLAMA_MODELS=unsloth ollama run hf.co/unsloth/GLM-4.7-GGUF:TQ1_0
OLLAMA_MODELS=unsloth ollama run merged_file.gguf
✨ Mit llama-server und OpenAIs Completion-Bibliothek bereitstellen
--port 8001 \ Verwenden Sie danach die Python-Bibliothek von OpenAI nach :
🔨print(completion.choices[0].message.content)
Tool Calling mit GLM 4.7 Tool Calling Guide Siehe
"required": ["code"],
return messages Nach dem Start von GLM 4.7 via llama-server GLM-4.7 wie in Tool Calling Guide oder siehe
für weitere Details, können wir dann einige Tool-Aufrufe durchführen:

unsloth_inference(messages, temperature = 0.7, top_p = 1.0, top_k = -1, min_p = 0.00)

🏂 "content": [{"type": "text", "text": "Erstelle eine Fibonacci-Funktion in Python und finde fib(20)."}],
Verwenden Sie --fit on Verbesserung der Generationsgeschwindigkeit eingeführt am 15. Dez. 2025 zur maximalen Nutzung Ihrer GPU und CPU. Siehe --fit on https://github.com/ggml-org/llama.cpp/pull/16653
auto offloads so viel des Modells wie möglich auf die GPU 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. -ot ".ffn_.*_exps.=CPU" Normalerweise
Wenn Sie etwas mehr GPU-Speicher haben, versuchen Sie -ot ".ffn_(up|down)_exps.=CPU" Dies lagert Up- und Down-Projection-MoE-Schichten aus.
Versuchen Sie -ot ".ffn_(up)_exps.=CPU" wenn Sie noch mehr GPU-Speicher haben. Dies lagert nur Up-Projection-MoE-Schichten aus.
Dies verwendet am wenigsten VRAM. 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"
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.cpp führt außerdem einen Hochdurchsatzmodus ein. Verwenden Siellama-parallel . Lesen Sie mehr dazuhier . Sie können auch den KV-Cache auf 4 Bit quantisieren
zum Beispiel, um VRAM-/RAM-Bewegungen zu reduzieren, was den Generationsprozess ebenfalls beschleunigen kann.
📐Wie man langen Kontext einpasst (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 aufgrund reduzierter RAM-/VRAM-Datenbewegungen auch die Generationsgeschwindigkeit erhöhen. Die erlaubten Optionen für K-Quantisierung (Standard istf16
) beinhalten die folgenden.
--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 _1 Sie sollten die 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 Sie --flash-attn um es zu aktivieren. Dann können Sie es zusammen mit :
--cache-type-k verwenden, und
Zuletzt aktualisiert
War das hilfreich?

