pipenetwork commited on
Commit
ea3c0f0
·
verified ·
1 Parent(s): 5cea7ac

Add files using upload-large-folder tool

Browse files
.gitattributes CHANGED
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ GLM-5.2-REAP50-Q2_K-00002-of-00004.gguf filter=lfs diff=lfs merge=lfs -text
37
+ GLM-5.2-REAP50-Q2_K-00004-of-00004.gguf filter=lfs diff=lfs merge=lfs -text
38
+ GLM-5.2-REAP50-Q2_K-00001-of-00004.gguf filter=lfs diff=lfs merge=lfs -text
39
+ GLM-5.2-REAP50-Q2_K-00003-of-00004.gguf filter=lfs diff=lfs merge=lfs -text
GLM-5.2-REAP50-Q2_K-00001-of-00004.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0033c3dd3524e847b523adf5b0a0d55d8dc6dbb151e160affad941731e524bc7
3
+ size 44999739520
GLM-5.2-REAP50-Q2_K-00002-of-00004.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be72c34ca6f9b04646b47a0cf081d18f3387d4a8f87553b0b57e685ede66ebc0
3
+ size 44581813248
GLM-5.2-REAP50-Q2_K-00003-of-00004.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c1ad8c6df976317a96f3a57b1a020ef27e153008e65711cfa20a130a2083939
3
+ size 44677711424
GLM-5.2-REAP50-Q2_K-00004-of-00004.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:313a335f1fad23a8ee6944060c0e44e01e6ea7acec7b6e316a16ab9edcd54469
3
+ size 4731875104
README.md ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ base_model: zai-org/GLM-5.2
4
+ base_model_relation: quantized
5
+ pipeline_tag: text-generation
6
+ library_name: gguf
7
+ tags: [gguf, llama.cpp, moe, glm, reap, pruned]
8
+ ---
9
+
10
+ # GLM-5.2-REAP50-Q2_K-GGUF
11
+
12
+ GGUF of GLM-5.2, **REAP expert-pruned (50%)** + **Q2_K** (~129 GB) — the **maximum-context** option for **2× 96 GB GPUs (192 GB)**, leaving ~60 GB for KV cache (≈2.5× the context room of the Q3_K build).
13
+
14
+ ## ⚠️ Quality: fragile — most-degraded variant
15
+ This stacks REAP-50 (~+37.5% perplexity vs full GLM-5.2) **with 2-bit Q2_K**. It **works but is delicate**:
16
+ - ✅ Coherent with sampling: *"The capital city of France … is Paris."*
17
+ - ❌ **Collapses into repetition (`* * * *`) with greedy / temp 0 decoding.**
18
+
19
+ **Use these sampler settings** (or it may loop):
20
+ ```
21
+ --temp 0.6 --repeat-penalty 1.1 --top-p 0.95
22
+ ```
23
+ If you can spare the VRAM, the **[Q3_K_M build](https://huggingface.co/pipenetwork/GLM-5.2-REAP50-Q3_K_M-GGUF)** (~169 GB) is noticeably more robust. For real quality, use the MLX REAP-25 (+2.3% PPL) or full GLM-5.2.
24
+
25
+ ## Requires a patched llama.cpp
26
+ Stock llama.cpp can't load GLM-5.2 GGUFs yet (DSA indexer required on every layer; GLM-5.2 ships it on only some). Apply the included `llama.cpp-glm-dsa-indexer-optional.patch` (or wait for [ggml-org/llama.cpp#24770](https://github.com/ggml-org/llama.cpp/pull/24770)), rebuild, then:
27
+ ```bash
28
+ ./build/bin/llama-cli -m GLM-5.2-REAP50-Q2_K-00001-of-00004.gguf --jinja -ngl 99 \
29
+ --temp 0.6 --repeat-penalty 1.1 -p "..."
30
+ ```
31
+
32
+ REAP-50 = top-128 of 256 experts/layer by saliency; runs as full MLA attention. Smoke-tested on Metal (~20 tok/s).
llama.cpp-glm-dsa-indexer-optional.patch ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ diff --git a/src/models/glm-dsa.cpp b/src/models/glm-dsa.cpp
2
+ index 11d9131..32fe6de 100644
3
+ --- a/src/models/glm-dsa.cpp
4
+ +++ b/src/models/glm-dsa.cpp
5
+ @@ -101,11 +101,11 @@ void llama_model_glm_dsa::load_arch_tensors(llama_model_loader &) {
6
+ layer.ffn_norm = create_tensor(tn(LLM_TENSOR_FFN_NORM, "weight", i), {n_embd}, flags);
7
+
8
+ // DSA indexer
9
+ - layer.indexer_k_norm = create_tensor(tn(LLM_TENSOR_INDEXER_K_NORM, "weight", i), {hparams.indexer_head_size}, flags);
10
+ - layer.indexer_k_norm_b = create_tensor(tn(LLM_TENSOR_INDEXER_K_NORM, "bias", i), {hparams.indexer_head_size}, flags);
11
+ - layer.indexer_proj = create_tensor(tn(LLM_TENSOR_INDEXER_PROJ, "weight", i), {n_embd, hparams.indexer_n_head}, flags);
12
+ - layer.indexer_attn_k = create_tensor(tn(LLM_TENSOR_INDEXER_ATTN_K, "weight", i), {n_embd, hparams.indexer_head_size}, flags);
13
+ - layer.indexer_attn_q_b = create_tensor(tn(LLM_TENSOR_INDEXER_ATTN_Q_B, "weight", i), {q_lora_rank, hparams.indexer_n_head * hparams.indexer_head_size}, flags);
14
+ + layer.indexer_k_norm = create_tensor(tn(LLM_TENSOR_INDEXER_K_NORM, "weight", i), {hparams.indexer_head_size}, flags | TENSOR_NOT_REQUIRED);
15
+ + layer.indexer_k_norm_b = create_tensor(tn(LLM_TENSOR_INDEXER_K_NORM, "bias", i), {hparams.indexer_head_size}, flags | TENSOR_NOT_REQUIRED);
16
+ + layer.indexer_proj = create_tensor(tn(LLM_TENSOR_INDEXER_PROJ, "weight", i), {n_embd, hparams.indexer_n_head}, flags | TENSOR_NOT_REQUIRED);
17
+ + layer.indexer_attn_k = create_tensor(tn(LLM_TENSOR_INDEXER_ATTN_K, "weight", i), {n_embd, hparams.indexer_head_size}, flags | TENSOR_NOT_REQUIRED);
18
+ + layer.indexer_attn_q_b = create_tensor(tn(LLM_TENSOR_INDEXER_ATTN_Q_B, "weight", i), {q_lora_rank, hparams.indexer_n_head * hparams.indexer_head_size}, flags | TENSOR_NOT_REQUIRED);
19
+ if (i < (int) hparams.n_layer_dense_lead) {
20
+ layer.ffn_gate = create_tensor(tn(LLM_TENSOR_FFN_GATE, "weight", i), {n_embd, n_ff}, flags);
21
+ layer.ffn_down = create_tensor(tn(LLM_TENSOR_FFN_DOWN, "weight", i), { n_ff, n_embd}, flags);