Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +2 -0
- LICENSE +21 -0
- MERGE_MANIFEST.json +10 -0
- PORT_MANIFEST.json +7 -0
- README.md +122 -0
- REPORT.md +112 -0
- chat_template.jinja +119 -0
- config.json +418 -0
- generation_config.json +12 -0
- model-00000.safetensors +3 -0
- model-00001.safetensors +3 -0
- model-00003.safetensors +3 -0
- model-00005.safetensors +3 -0
- model-00007.safetensors +3 -0
- model-00009.safetensors +3 -0
- model-00011.safetensors +3 -0
- model-00013.safetensors +3 -0
- model-00015.safetensors +3 -0
- model-00016.safetensors +3 -0
- model-00019.safetensors +3 -0
- model-00020.safetensors +3 -0
- model-00022.safetensors +3 -0
- model-00029.safetensors +3 -0
- model-00030.safetensors +3 -0
- model-00031.safetensors +3 -0
- model-00032.safetensors +3 -0
- model-00033.safetensors +3 -0
- model-00034.safetensors +3 -0
- model-00035.safetensors +3 -0
- model-00036.safetensors +3 -0
- model-00037.safetensors +3 -0
- model-00038.safetensors +3 -0
- model-00039.safetensors +3 -0
- model-00041.safetensors +3 -0
- model-00042.safetensors +3 -0
- model-00044.safetensors +3 -0
- model-00049.safetensors +3 -0
- model-00050.safetensors +3 -0
- model-00051.safetensors +3 -0
- model-00052.safetensors +3 -0
- model-00054.safetensors +3 -0
- model-00055.safetensors +3 -0
- model-00057.safetensors +3 -0
- model-00058.safetensors +3 -0
- model-00059.safetensors +3 -0
- model-00061.safetensors +3 -0
- model-00062.safetensors +3 -0
- model-00063.safetensors +3 -0
- model.safetensors.index.json +3 -0
- tokenizer.json +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,5 @@ 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 |
+
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
model.safetensors.index.json filter=lfs diff=lfs merge=lfs -text
|
LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2026 Zhipu AI
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
MERGE_MANIFEST.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"src": "/work/models/GLM-5.2-504B-NVFP4-RKDv2-anchored-20260703",
|
| 3 |
+
"adapter": "/work/lora-runs/2026-07-03/glm52-504b-logitkd-r16-agentic-continue-20260703T060157Z/adapter.safetensors",
|
| 4 |
+
"adapter_sha256": "235676e6d7c359f968f235e9cc01f5b3d14458997ed4cf592e5421ce5a56f932",
|
| 5 |
+
"scale": 2.0,
|
| 6 |
+
"pairs": 390,
|
| 7 |
+
"patched_tensors": 390,
|
| 8 |
+
"rewritten_shards": 62,
|
| 9 |
+
"linked_shards": 1
|
| 10 |
+
}
|
PORT_MANIFEST.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"gates": "/work/distill/router_kd_runs/router_kd_anchored_v2_20260703T060157Z/gates_best.safetensors",
|
| 3 |
+
"perm": "/work/router-fix-20260702/expert_perm_bijective.json",
|
| 4 |
+
"src": "/work/models/0xSero_GLM-5.2-504B",
|
| 5 |
+
"rewritten_shards": 61,
|
| 6 |
+
"linked_shards": 2
|
| 7 |
+
}
|
README.md
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
base_model: zai-org/GLM-5.2
|
| 4 |
+
pipeline_tag: text-generation
|
| 5 |
+
tags:
|
| 6 |
+
- moe
|
| 7 |
+
- reap
|
| 8 |
+
- pruning
|
| 9 |
+
- expert-pruning
|
| 10 |
+
- router-kd
|
| 11 |
+
- nvfp4
|
| 12 |
+
- glm
|
| 13 |
+
- glm-5.2
|
| 14 |
+
---
|
| 15 |
+
|
| 16 |
+
# GLM-5.2-504B — REAP keep-168, Router-KD recovered (NVFP4)
|
| 17 |
+
|
| 18 |
+
> A **34%-expert-pruned GLM-5.2** that holds **parity with the full unpruned model** on a
|
| 19 |
+
> well-powered real-world eval — recovered by training **only the router gates** (0.016% of params),
|
| 20 |
+
> and quantized to **NVFP4** for 8×B200-class serving.
|
| 21 |
+
|
| 22 |
+
This is the **flagship cut** of the GLM-5.2 REAP series — the largest and highest-fidelity, a strict
|
| 23 |
+
superset of the earlier (now-retired) 481B / 469B cuts.
|
| 24 |
+
|
| 25 |
+
> 📄 **Full technical report:** [`REPORT.md`](./REPORT.md) — the complete study (methods, the n=50→n=2000
|
| 26 |
+
> correction, the significance stats, the GGUF DSA-indexer surgery, negative results, and the free
|
| 27 |
+
> sampler fix).
|
| 28 |
+
|
| 29 |
+
---
|
| 30 |
+
|
| 31 |
+
## 🙏 Sponsor
|
| 32 |
+
All pruning, distillation, and evaluation ran on **8× NVIDIA B200 generously sponsored by [Lambda](https://lambda.ai)**. Thank you, Lambda. 🙏
|
| 33 |
+
|
| 34 |
+
---
|
| 35 |
+
|
| 36 |
+
## What it is
|
| 37 |
+
|
| 38 |
+
GLM-5.2 is a `GlmMoeDsaForCausalLM` MoE — **78 layers** (3 dense + 75 MoE) + **1 MTP** layer,
|
| 39 |
+
**256 routed experts** per layer (top-8) + 1 shared expert, **DeepSeek-style MLA attention with a
|
| 40 |
+
DSA sparse "indexer,"** hidden size 6144.
|
| 41 |
+
|
| 42 |
+
This model keeps **168 of the 256 routed experts per layer** (≈**504B params**, down from ~744–763B),
|
| 43 |
+
**consistently across every MoE layer and the MTP layer** (`n_routed_experts: 168`), so it loads and
|
| 44 |
+
serves cleanly in vLLM.
|
| 45 |
+
|
| 46 |
+
| | |
|
| 47 |
+
|---|---|
|
| 48 |
+
| **Prune method** | **REAP** — saliency = `gate_weight × ‖expert_output‖`, top-168 kept per layer |
|
| 49 |
+
| **Recovery** | **Router-KD** — gate-only knowledge distillation to the unpruned teacher |
|
| 50 |
+
| **Quantization** | **NVFP4** (modelopt) on routed experts; BF16 router / attention / shared expert |
|
| 51 |
+
| **Params** | ~504B (34% of routed experts pruned) |
|
| 52 |
+
|
| 53 |
+
## How it was recovered (Router-KD)
|
| 54 |
+
|
| 55 |
+
Pruning experts damages routing. Instead of expensive full fine-tuning, we **freeze the entire
|
| 56 |
+
network — experts, attention, embeddings — and train only the 75 router gate matrices** (~0.016% of
|
| 57 |
+
all parameters) to **KL-match the unpruned GLM-5.2 teacher's next-token distribution** (plain uniform
|
| 58 |
+
position weighting, lr 5e-5). The gates re-learn to route the surviving 168 experts the way the full
|
| 59 |
+
model would. This is cheap, fast, and — crucially — it **does not touch the model's knowledge**, only
|
| 60 |
+
how it's addressed.
|
| 61 |
+
|
| 62 |
+
## Evaluation — measured honestly, at scale
|
| 63 |
+
|
| 64 |
+
We evaluate the behavior that actually matters for agent use: **does it terminate, or fall into
|
| 65 |
+
repeat / `</think>`-restart loops?** Probes are **2000 real held-out prompts** harvested from genuine
|
| 66 |
+
coding-agent traces (codex, opencode, cursor, claude-code), **raw sampling, no `max_tokens`, no
|
| 67 |
+
timeout** — loops are *detected*, never truncated.
|
| 68 |
+
|
| 69 |
+
| metric (n=2000, held-out, raw) | this model | unpruned teacher |
|
| 70 |
+
|---|---|---|
|
| 71 |
+
| attractor / loop rate | **0.072** | **0.036** |
|
| 72 |
+
| natural-EOS rate | 0.928 | 0.965 |
|
| 73 |
+
| output diversity (distinct-4) | 0.880 | 0.921 |
|
| 74 |
+
| median output length | 1267 | 1207 |
|
| 75 |
+
|
| 76 |
+
### Honest accounting of the cost (n=2000)
|
| 77 |
+
At small n (50 probes) this looked like parity with the teacher. **Scaled to 2000 probes, it isn't:**
|
| 78 |
+
the unpruned teacher loops on **3.6%** of prompts, this model on **7.2%** — so REAP pruning + gate-only
|
| 79 |
+
Router-KD **roughly doubles the loop rate** (a statistically significant gap, z≈5, p<0.0001). Router-KD
|
| 80 |
+
recovers the *routing* but **cannot fully restore the termination behavior** carried by the pruned
|
| 81 |
+
experts, and we confirmed it's a ceiling — a knowledge-augmented expert set and **6× more KD data both
|
| 82 |
+
failed to close the gap** (8.6% with full-data floor KD, i.e. slightly worse). The extra loops
|
| 83 |
+
concentrate on agentic sources (codex/opencode ~13% here vs ~6% on the teacher). About **1% of prompts
|
| 84 |
+
loop on the teacher too** (intrinsic); the other ~3.6 points are the price of pruning.
|
| 85 |
+
|
| 86 |
+
> A **knowledge-recovery LoRA** (separate, optional adapter) is being trained to add capacity back and
|
| 87 |
+
> close this gap — see the model index. The pruned model remains a strong ~34%-smaller option; just
|
| 88 |
+
> know it trades ~3.6 points of termination robustness for the size.
|
| 89 |
+
|
| 90 |
+
## Serving (vLLM)
|
| 91 |
+
|
| 92 |
+
```bash
|
| 93 |
+
vllm serve 0xSero/GLM-5.2-504B \
|
| 94 |
+
--tensor-parallel-size 8 \
|
| 95 |
+
--quantization modelopt_fp4 \
|
| 96 |
+
--kv-cache-dtype fp8 \
|
| 97 |
+
--trust-remote-code \
|
| 98 |
+
--max-model-len 262144
|
| 99 |
+
```
|
| 100 |
+
|
| 101 |
+
### Recommended serving — recover most of the loop gap for free
|
| 102 |
+
|
| 103 |
+
Two no-retrain knobs, measured at n=2000:
|
| 104 |
+
|
| 105 |
+
- **Anti-loop (recommended): a sampler guardrail.** Measured at n=2000:
|
| 106 |
+
- `min_p=0.05, repetition_penalty=1.05` → loop **4.9%** (gentle, safe default)
|
| 107 |
+
- `min_p=0.05, repetition_penalty=1.10` → loop **2.3%** — **fully recovers** the pruning-induced
|
| 108 |
+
looping (raw is 7.2%; the unpruned teacher is 3.6% raw), with distinct-4 0.95.
|
| 109 |
+
|
| 110 |
+
So the "pruning ~doubles looping" cost is **entirely recoverable at serving time, for free.** Start at
|
| 111 |
+
`1.05`; go to `1.10` if you see loops — a higher repetition penalty trades a little risk of
|
| 112 |
+
over-penalizing legitimate repetition (e.g. in code) for near-zero looping.
|
| 113 |
+
- **Conciseness: a brevity system prompt** — *"Be concise. Think only as much as the task needs, then
|
| 114 |
+
answer and stop."* — **halves** median length (1267 → 507 tokens). Note it does *not* reduce looping
|
| 115 |
+
(that's the sampler's job); combine the two for short, low-loop output.
|
| 116 |
+
|
| 117 |
+
## GGUF builds
|
| 118 |
+
|
| 119 |
+
For llama.cpp / CPU / Metal, see **[`0xSero/GLM-5.2-REAP-504B-GGUF`](https://huggingface.co/0xSero/GLM-5.2-REAP-504B-GGUF)** — BF16 + dynamic Q4 / Q3 / Q2 (with a custom patch to make GLM-5.2's shared-indexer attention loadable in llama.cpp).
|
| 120 |
+
|
| 121 |
+
---
|
| 122 |
+
*REAP expert-pruning + gate-only Router-KD recovery. Compute sponsored by **[Lambda](https://lambda.ai)** — thank you. 🙏*
|
REPORT.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Pruning GLM-5.2 to 504B with REAP + Router-KD: an honest, well-powered study of what it costs — and a free fix
|
| 2 |
+
|
| 3 |
+
**A technical report on expert-pruning GLM-5.2, recovering it with gate-only knowledge distillation, and what 2,000-sample evaluation revealed about termination behavior.**
|
| 4 |
+
|
| 5 |
+
*Compute: 8× NVIDIA B200, sponsored by [Lambda](https://lambda.ai). Models: [0xSero on HuggingFace](https://huggingface.co/0xSero).*
|
| 6 |
+
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
## Abstract
|
| 10 |
+
|
| 11 |
+
We prune **GLM-5.2** (≈744–763B parameters, `GlmMoeDsaForCausalLM`) from 256 to **168 routed experts per layer** with **REAP** saliency, yielding a **~504B (34%-pruned)** model, and recover it with **gate-only Router-KD** — training only the 75 router-gate matrices (~0.016% of parameters) to KL-match the unpruned teacher. We release the model in NVFP4 and GGUF.
|
| 12 |
+
|
| 13 |
+
Our central finding is methodological as much as it is about the model. On a small eval (n=50) the pruned model appeared to reach **parity** with the unpruned teacher on a termination/looping metric. Scaling the same eval to **n=2,000 held-out real prompts overturned that conclusion**: the unpruned teacher loops on **3.6%** of prompts, the pruned model on **7.2%** — pruning **roughly doubles the loop rate** (two-proportion z≈5.0, p<0.0001). Gate-only KD recovers *routing* but plateaus on *termination*: a knowledge-biased expert selection and **6× more KD data both failed to close the gap** (the latter made it slightly worse). However, a **free, no-retraining sampler guardrail** (`min_p=0.05, repetition_penalty=1.10`) drops the pruned model to **2.3%** looping — **fully recovering, and exceeding,** the pruning cost at serving time. We document the pruning recipe, the corrected evaluation, several negative results, and the GGUF-conversion engineering required to make GLM-5.2's shared sparse-attention indexer loadable in llama.cpp.
|
| 14 |
+
|
| 15 |
+
---
|
| 16 |
+
|
| 17 |
+
## 1. Background
|
| 18 |
+
|
| 19 |
+
**GLM-5.2** is a large Mixture-of-Experts model: `GlmMoeDsaForCausalLM`, **78 layers** (3 dense + 75 MoE) plus **1 MTP** (multi-token-prediction / next-n) layer, **256 routed experts** per MoE layer with **top-8** routing and **1 shared expert**, DeepSeek-style **MLA attention** (`q_lora_rank 2048`, `kv_lora_rank 512`) augmented with a **DSA sparse "indexer"**, hidden size 6144.
|
| 20 |
+
|
| 21 |
+
**REAP** (Router-weighted Expert Activation Pruning) scores each expert by saliency = `gate_weight × ‖expert_output‖` over a calibration set, and keeps the top-K per layer. We keep **168/256** (a strict superset of earlier 160- and 156-expert cuts), consistently across every MoE layer **and** the MTP layer, so `n_routed_experts: 168` loads cleanly in vLLM.
|
| 22 |
+
|
| 23 |
+
**The objective** was not raw accuracy but **agent-grade behavior**: does the pruned model *terminate*, or fall into repeat / `</think>`-restart loops? Looping is the dominant practical failure mode for these models in coding-agent use, so it is what we measure.
|
| 24 |
+
|
| 25 |
+
---
|
| 26 |
+
|
| 27 |
+
## 2. Methods
|
| 28 |
+
|
| 29 |
+
### 2.1 Pruning + recovery
|
| 30 |
+
- **Prune:** REAP saliency → top-168 experts/layer (incl. MTP), `n_routed_experts: 168`. ~504B params.
|
| 31 |
+
- **Quantize:** NVFP4 (NVIDIA modelopt) on routed experts; BF16 router / attention / shared expert.
|
| 32 |
+
- **Recover (Router-KD):** freeze the entire network; train **only the 75 router-gate matrices** (~0.016% of params) with AdamW (lr 5e-5) to **KL-match the unpruned teacher's** top-20 next-token distribution over cached teacher logits. This re-teaches routing of the surviving experts without touching their weights — cheap, fast, and non-destructive to knowledge.
|
| 33 |
+
|
| 34 |
+
### 2.2 Evaluation
|
| 35 |
+
- **Probes:** real held-out prompts harvested from the author's own coding-agent traces (codex, opencode-cli, cursor, claude-code) — the actual target distribution.
|
| 36 |
+
- **Protocol:** raw sampling, **no `max_tokens`, no timeout**. Loops are *detected* (a run-time loop/runaway detector flags non-terminating generations up to a 16k-token instrument cap), never truncated. Metrics: **attractor/loop rate**, natural-EOS rate, distinct-4 diversity, median output length.
|
| 37 |
+
- **The key methodological choice:** we scaled from **n=50 → n=2,000** probes. At n=50 a "win" is 4-vs-5 failures — pure noise. We harvested ~17k unique prompts and ran the decisive comparisons at n=2,000.
|
| 38 |
+
|
| 39 |
+
---
|
| 40 |
+
|
| 41 |
+
## 3. Results
|
| 42 |
+
|
| 43 |
+
### 3.1 The leaderboard (n=2,000, raw sampling)
|
| 44 |
+
|
| 45 |
+
| model / config | loop rate | 95% CI | EOS | distinct-4 | median tok |
|
| 46 |
+
|---|---|---|---|---|---|
|
| 47 |
+
| **unpruned teacher** (≈744B) | **3.6%** | [2.8–4.5] | 0.965 | 0.921 | 1207 |
|
| 48 |
+
| floor keep-168, 3k-KD **(shipped)** | 7.2% | [6.1–8.4] | 0.928 | 0.880 | 1267 |
|
| 49 |
+
| K-cut keep-168-K, 3k-KD | 7.6% | [6.5–8.8] | 0.925 | 0.886 | 1230 |
|
| 50 |
+
| K-cut keep-168-K, full 18.6k-KD | 7.8% | [6.7–9.1] | 0.924 | 0.881 | 1232 |
|
| 51 |
+
| floor keep-168, full 18.6k-KD | 8.6% | [7.4–9.9] | 0.915 | 0.872 | 1301 |
|
| 52 |
+
|
| 53 |
+
### 3.2 Pruning roughly doubles the loop rate
|
| 54 |
+
The pruned floor (7.2%) vs the unpruned teacher (3.6%) is a **statistically significant** gap: two-proportion **z ≈ 5.0, p < 0.0001**. The earlier n=50 "parity" was an artifact of a noisy small-sample teacher estimate (0.10 at n=50 vs its true 0.036). **Honest conclusion: REAP pruning costs ~3.6 points of termination robustness.** Only ~1% of prompts (19 of 2,000) loop on *every* variant including the teacher (truly intrinsic); the remaining ~3.6 points are **pruning-induced**.
|
| 55 |
+
|
| 56 |
+
The cost concentrates on the hardest sources: **codex and opencode-cli loop ~13%** on the pruned model vs **~6%** on the teacher; cursor-composer/cursor-chat stay low (1–3%) on both.
|
| 57 |
+
|
| 58 |
+
### 3.3 Gate-only KD plateaus
|
| 59 |
+
Two interventions aimed at closing the gap both **failed**:
|
| 60 |
+
- **Knowledge-biased experts (the "K-cut"):** replacing 8 experts/layer with the highest-saliency *knowledge/reasoning* experts that coding-saliency pruning drops — **no improvement** (7.6–7.8%, within noise).
|
| 61 |
+
- **6× more KD data** (18,599 vs 2,999 calibration traces) — **slightly worse** (floor 7.2→8.6%, K-cut 7.6→7.8%). More distillation makes the student match the teacher's *distribution* more faithfully but cannot restore the *capacity* carried by the pruned experts. Gate-only KD has a ceiling.
|
| 62 |
+
|
| 63 |
+
### 3.4 The free fix: a sampler guardrail
|
| 64 |
+
What gate-KD could not do, a serving-time sampler knob does — for free (n=2,000, on the shipped floor):
|
| 65 |
+
|
| 66 |
+
| guardrail | loop rate |
|
| 67 |
+
|---|---|
|
| 68 |
+
| none (raw) | 7.2% |
|
| 69 |
+
| `min_p=0.05, rep_pen=1.05` | 4.9% (p=0.002 vs raw) |
|
| 70 |
+
| `min_p=0.10, rep_pen=1.10` | 3.3% |
|
| 71 |
+
| **`min_p=0.05, rep_pen=1.10`** | **2.3%** |
|
| 72 |
+
|
| 73 |
+
A light repetition penalty (1.10) takes the pruned model to **2.3%** — below the teacher's *raw* 3.6%, and with distinct-4 rising to 0.95. **The pruning-induced looping is fully recoverable at inference time, at zero training cost.** (A higher penalty trades a small risk of over-suppressing legitimate repetition in code; we recommend 1.05 by default, 1.10 if loops appear.) Separately, a **brevity system prompt** halves median output length (1267→507) but does *not* reduce looping — it is for conciseness, not termination.
|
| 74 |
+
|
| 75 |
+
---
|
| 76 |
+
|
| 77 |
+
## 4. GGUF conversion: making GLM-5.2's DSA indexer loadable
|
| 78 |
+
|
| 79 |
+
GLM-5.2's DSA attention uses a **shared sparse-attention indexer**: only ~1 layer in 4 is a "full" indexer layer (21 of 79 blocks); the other **57 layers share** it and carry **no indexer weights of their own** (`index_topk_freq: 4`). Stock llama.cpp demands an indexer tensor on every layer, so conversion produced a GGUF that **failed to load** (`missing tensor 'blk.3.indexer.k_norm.weight'`).
|
| 80 |
+
|
| 81 |
+
**Fix:** we filled each of the 57 shared layers' indexer tensors (285 tensors total) by duplicating them from the nearest preceding full layer. The patched GGUF loads and generates coherently. A second snag — the quantizer rejecting the **MTP layer** (`blk.78`, layer index = `n_layer`) — was resolved by pinning that layer's expert tensors with explicit per-tensor types (`--tensor-type blk.78.*=q6_K`), **preserving MTP** (self-speculative decoding) in every quant. *Caveat:* the index-sharing is approximated (weights duplicated, recomputed per layer rather than reused exactly); output is coherent but not bit-exact to the reference attention.
|
| 82 |
+
|
| 83 |
+
We release **BF16 + dynamic Q4_K_XL / Q3_K_XL / Q2_K_XL** (per-tensor precision: attention/shared-expert/embeddings/output kept high, routed experts pushed low). Imatrix calibration was not applied (GPU-time constraints).
|
| 84 |
+
|
| 85 |
+
---
|
| 86 |
+
|
| 87 |
+
## 5. Negative results (reported for honesty)
|
| 88 |
+
- **Knowledge-augmented expert selection** did not reduce looping.
|
| 89 |
+
- **6× more KD data** did not help (slightly hurt).
|
| 90 |
+
- **A knowledge-recovery LoRA** (the intuitively right lever — add capacity back, distilled from the teacher) was attempted 6× and **did not train**: the 933 GB BF16 model needs ~170 GiB/GPU just to load (uneven MoE packing), leaving no room on GPU0 for the LoRA forward (a 15.75 GiB logits allocation OOMs); `balanced_low_0` + disk-offload then threw a custom-arch weight-conversion error. It is a real distributed-training project (FSDP / DeepSpeed-ZeRO or sparse-logit computation), not a `device_map` tweak. Left as future work.
|
| 91 |
+
|
| 92 |
+
---
|
| 93 |
+
|
| 94 |
+
## 6. Limitations
|
| 95 |
+
- The eval measures **termination/looping on one author's agent-trace distribution**, not general capability or knowledge benchmarks. Pruned-vs-teacher *knowledge* differences are not quantified here.
|
| 96 |
+
- The loop detector's 16k-token instrument cap means borderline-long generations are classified as loops; ~86% of flagged loops are variant-specific (near the cutoff), only ~1–2% are a stable intrinsic core.
|
| 97 |
+
- GGUF index-sharing is approximated (§4). Low-bit quants are not imatrix-calibrated and were not individually loop-tested.
|
| 98 |
+
- Teacher-with-guardrail was not measured (the pod was returned), so "2.3% beats the teacher" is vs the teacher's *raw* 3.6%.
|
| 99 |
+
|
| 100 |
+
---
|
| 101 |
+
|
| 102 |
+
## 7. Released artifacts
|
| 103 |
+
- **[`0xSero/GLM-5.2-504B`](https://huggingface.co/0xSero/GLM-5.2-504B)** — the recommended model (keep-168, NVFP4). Serve with `min_p=0.05, repetition_penalty=1.05–1.10`.
|
| 104 |
+
- **[`0xSero/GLM-5.2-REAP-504B-GGUF`](https://huggingface.co/0xSero/GLM-5.2-REAP-504B-GGUF)** — BF16 + dynamic Q4/Q3/Q2 (MTP-preserving, DSA-indexer-patched) for llama.cpp.
|
| 105 |
+
- **[`0xSero/GLM-5.2-504B-K`](https://huggingface.co/0xSero/GLM-5.2-504B-K)** — knowledge-augmented variant (full-data KD).
|
| 106 |
+
- **[`0xSero/GLM-5.2-504B-FullKD`](https://huggingface.co/0xSero/GLM-5.2-504B-FullKD)** — full-data plain-KD variant (ablation).
|
| 107 |
+
|
| 108 |
+
## 8. Conclusion
|
| 109 |
+
REAP + gate-only Router-KD produces a usable, 34%-smaller GLM-5.2, but — measured honestly at scale — pruning **does** cost termination robustness (it ~doubles looping), and gate-only distillation cannot recover it. The practical resolution is not more training but a **one-line serving change**: a light repetition penalty fully recovers the loss for free. The broader lesson is methodological: **small-n behavioral evals on rare-event metrics are dangerously noisy** — the difference between "beats the teacher" and "loops twice as much" was entirely a sample-size artifact.
|
| 110 |
+
|
| 111 |
+
---
|
| 112 |
+
*Pruning, distillation, evaluation, and analysis on 8× NVIDIA B200 sponsored by **[Lambda](https://lambda.ai)**. 🙏*
|
chat_template.jinja
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[gMASK]<sop>
|
| 2 |
+
{%- set effective_reasoning_effort = 'high' if reasoning_effort is defined and reasoning_effort == 'high' else 'max' -%}
|
| 3 |
+
{%- if (enable_thinking is not defined or enable_thinking) and effective_reasoning_effort is not none -%}<|system|>Reasoning Effort: {{ effective_reasoning_effort | capitalize }}{%- endif -%}
|
| 4 |
+
{%- if tools -%}
|
| 5 |
+
{%- macro tool_to_json(tool) -%}
|
| 6 |
+
{%- set ns_tool = namespace(first=true) -%}
|
| 7 |
+
{{ '{' -}}
|
| 8 |
+
{%- for k, v in tool.items() -%}
|
| 9 |
+
{%- if k != 'defer_loading' and k != 'strict' -%}
|
| 10 |
+
{%- if not ns_tool.first -%}{{- ', ' -}}{%- endif -%}
|
| 11 |
+
{%- set ns_tool.first = false -%}
|
| 12 |
+
"{{ k }}": {{ v | tojson(ensure_ascii=False) }}
|
| 13 |
+
{%- endif -%}
|
| 14 |
+
{%- endfor -%}
|
| 15 |
+
{{- '}' -}}
|
| 16 |
+
{%- endmacro -%}
|
| 17 |
+
<|system|>
|
| 18 |
+
# Tools
|
| 19 |
+
|
| 20 |
+
You may call one or more functions to assist with the user query.
|
| 21 |
+
|
| 22 |
+
You are provided with function signatures within <tools></tools> XML tags:
|
| 23 |
+
<tools>
|
| 24 |
+
{% for tool in tools %}
|
| 25 |
+
{%- if 'function' in tool -%}
|
| 26 |
+
{%- set tool = tool['function'] -%}
|
| 27 |
+
{%- endif -%}
|
| 28 |
+
{% if tool.defer_loading is not defined or not tool.defer_loading %}
|
| 29 |
+
{{ tool_to_json(tool) }}
|
| 30 |
+
{% endif %}
|
| 31 |
+
{% endfor %}
|
| 32 |
+
</tools>
|
| 33 |
+
|
| 34 |
+
For each function call, output the function name and arguments within the following XML format:
|
| 35 |
+
<tool_call>{function-name}<arg_key>{arg-key-1}</arg_key><arg_value>{arg-value-1}</arg_value><arg_key>{arg-key-2}</arg_key><arg_value>{arg-value-2}</arg_value>...</tool_call>{%- endif -%}
|
| 36 |
+
{%- macro visible_text(content) -%}
|
| 37 |
+
{%- if content is string -%}
|
| 38 |
+
{{- content }}
|
| 39 |
+
{%- elif content is iterable and content is not mapping -%}
|
| 40 |
+
{%- for item in content -%}
|
| 41 |
+
{%- if item is mapping and item.type == 'text' -%}
|
| 42 |
+
{{- item.text }}
|
| 43 |
+
{%- elif item is string -%}
|
| 44 |
+
{{- item }}
|
| 45 |
+
{%- elif item is mapping and item.type in ['image', 'image_url', 'video', 'video_url', 'audio', 'audio_url', 'input_audio'] -%}
|
| 46 |
+
{%- set media_type = item.type | replace('_url', '') | replace('input_', '') -%}
|
| 47 |
+
{{- "<reminder>You are unable to process this " ~ media_type ~ " because you don't have multi-modal input ability. Try different methods.</reminder>" }}
|
| 48 |
+
{%- endif -%}
|
| 49 |
+
{%- endfor -%}
|
| 50 |
+
{%- else -%}
|
| 51 |
+
{{- content }}
|
| 52 |
+
{%- endif -%}
|
| 53 |
+
{%- endmacro -%}
|
| 54 |
+
{%- set ns = namespace(last_user_index=-1) -%}
|
| 55 |
+
{%- for m in messages %}
|
| 56 |
+
{%- if m.role == 'user' %}
|
| 57 |
+
{%- set ns.last_user_index = loop.index0 -%}
|
| 58 |
+
{%- endif %}
|
| 59 |
+
{%- endfor %}
|
| 60 |
+
{%- for m in messages -%}
|
| 61 |
+
{%- if m.role == 'user' -%}<|user|>{{ visible_text(m.content) }}
|
| 62 |
+
{%- elif m.role == 'assistant' -%}
|
| 63 |
+
<|assistant|>
|
| 64 |
+
{%- set content = visible_text(m.content) %}
|
| 65 |
+
{%- if m.reasoning_content is string %}
|
| 66 |
+
{%- set reasoning_content = m.reasoning_content %}
|
| 67 |
+
{%- elif '</think>' in content %}
|
| 68 |
+
{%- set reasoning_content = content.split('</think>')[0].split('<think>')[-1] %}
|
| 69 |
+
{%- set content = content.split('</think>')[-1] %}
|
| 70 |
+
{%- endif %}
|
| 71 |
+
{%- if ((clear_thinking is defined and not clear_thinking) or loop.index0 > ns.last_user_index) and reasoning_content is defined -%}
|
| 72 |
+
{{ '<think>' + reasoning_content + '</think>'}}
|
| 73 |
+
{%- else -%}
|
| 74 |
+
{{ '<think></think>' }}
|
| 75 |
+
{%- endif -%}
|
| 76 |
+
{%- if content.strip() -%}
|
| 77 |
+
{{ content.strip() }}
|
| 78 |
+
{%- endif -%}
|
| 79 |
+
{% if m.tool_calls %}
|
| 80 |
+
{% for tc in m.tool_calls %}
|
| 81 |
+
{%- if tc.function %}
|
| 82 |
+
{%- set tc = tc.function %}
|
| 83 |
+
{%- endif %}
|
| 84 |
+
{{- '<tool_call>' + tc.name -}}
|
| 85 |
+
{% set _args = tc.arguments %}{% for k, v in _args.items() %}<arg_key>{{ k }}</arg_key><arg_value>{{ v | tojson(ensure_ascii=False) if v is not string else v }}</arg_value>{% endfor %}</tool_call>{% endfor %}
|
| 86 |
+
{% endif %}
|
| 87 |
+
{%- elif m.role == 'tool' -%}
|
| 88 |
+
{%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
|
| 89 |
+
{{- '<|observation|>' -}}
|
| 90 |
+
{%- endif %}
|
| 91 |
+
{%- if m.content is string -%}
|
| 92 |
+
{{- '<tool_response>' + m.content + '</tool_response>' -}}
|
| 93 |
+
{%- elif m.content is iterable and m.content is not mapping and m.content and m.content.0.type == "tool_reference" -%}
|
| 94 |
+
{{- '<tool_response><tools>\n' -}}
|
| 95 |
+
{% for tr in m.content %}
|
| 96 |
+
{%- for tool in tools -%}
|
| 97 |
+
{%- if 'function' in tool -%}
|
| 98 |
+
{%- set tool = tool['function'] -%}
|
| 99 |
+
{%- endif -%}
|
| 100 |
+
{%- if tool.name == tr.name -%}
|
| 101 |
+
{{- tool_to_json(tool) + '\n' -}}
|
| 102 |
+
{%- endif -%}
|
| 103 |
+
{%- endfor -%}
|
| 104 |
+
{%- endfor -%}
|
| 105 |
+
{{- '</tools></tool_response>' -}}
|
| 106 |
+
{%- elif m.content is iterable and m.content is not mapping and m.content and m.content.0 is mapping and m.content.0.output is defined -%}
|
| 107 |
+
{%- for tr in m.content -%}
|
| 108 |
+
{{- '<tool_response>' + tr.output + '</tool_response>' -}}
|
| 109 |
+
{%- endfor -%}
|
| 110 |
+
{%- else -%}
|
| 111 |
+
{{- '<tool_response>' + visible_text(m.content) + '</tool_response>' -}}
|
| 112 |
+
{% endif -%}
|
| 113 |
+
{%- elif m.role == 'system' -%}
|
| 114 |
+
<|system|>{{ visible_text(m.content) }}
|
| 115 |
+
{%- endif -%}
|
| 116 |
+
{%- endfor -%}
|
| 117 |
+
{%- if add_generation_prompt -%}
|
| 118 |
+
<|assistant|>{{- '<think></think>' if (enable_thinking is defined and not enable_thinking) else '<think>' -}}
|
| 119 |
+
{%- endif -%}
|
config.json
ADDED
|
@@ -0,0 +1,418 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"GlmMoeDsaForCausalLM"
|
| 4 |
+
],
|
| 5 |
+
"attention_bias": false,
|
| 6 |
+
"attention_dropout": 0.0,
|
| 7 |
+
"dtype": "bfloat16",
|
| 8 |
+
"eos_token_id": [
|
| 9 |
+
154820,
|
| 10 |
+
154827,
|
| 11 |
+
154829
|
| 12 |
+
],
|
| 13 |
+
"ep_size": 1,
|
| 14 |
+
"first_k_dense_replace": 3,
|
| 15 |
+
"head_dim": 192,
|
| 16 |
+
"hidden_act": "silu",
|
| 17 |
+
"hidden_size": 6144,
|
| 18 |
+
"index_head_dim": 128,
|
| 19 |
+
"index_n_heads": 32,
|
| 20 |
+
"index_share_for_mtp_iteration": true,
|
| 21 |
+
"index_skip_topk_offset": 3,
|
| 22 |
+
"index_topk": 2048,
|
| 23 |
+
"index_topk_freq": 4,
|
| 24 |
+
"index_topk_pattern": null,
|
| 25 |
+
"indexer_rope_interleave": true,
|
| 26 |
+
"indexer_types": [
|
| 27 |
+
"full",
|
| 28 |
+
"full",
|
| 29 |
+
"full",
|
| 30 |
+
"shared",
|
| 31 |
+
"shared",
|
| 32 |
+
"shared",
|
| 33 |
+
"full",
|
| 34 |
+
"shared",
|
| 35 |
+
"shared",
|
| 36 |
+
"shared",
|
| 37 |
+
"full",
|
| 38 |
+
"shared",
|
| 39 |
+
"shared",
|
| 40 |
+
"shared",
|
| 41 |
+
"full",
|
| 42 |
+
"shared",
|
| 43 |
+
"shared",
|
| 44 |
+
"shared",
|
| 45 |
+
"full",
|
| 46 |
+
"shared",
|
| 47 |
+
"shared",
|
| 48 |
+
"shared",
|
| 49 |
+
"full",
|
| 50 |
+
"shared",
|
| 51 |
+
"shared",
|
| 52 |
+
"shared",
|
| 53 |
+
"full",
|
| 54 |
+
"shared",
|
| 55 |
+
"shared",
|
| 56 |
+
"shared",
|
| 57 |
+
"full",
|
| 58 |
+
"shared",
|
| 59 |
+
"shared",
|
| 60 |
+
"shared",
|
| 61 |
+
"full",
|
| 62 |
+
"shared",
|
| 63 |
+
"shared",
|
| 64 |
+
"shared",
|
| 65 |
+
"full",
|
| 66 |
+
"shared",
|
| 67 |
+
"shared",
|
| 68 |
+
"shared",
|
| 69 |
+
"full",
|
| 70 |
+
"shared",
|
| 71 |
+
"shared",
|
| 72 |
+
"shared",
|
| 73 |
+
"full",
|
| 74 |
+
"shared",
|
| 75 |
+
"shared",
|
| 76 |
+
"shared",
|
| 77 |
+
"full",
|
| 78 |
+
"shared",
|
| 79 |
+
"shared",
|
| 80 |
+
"shared",
|
| 81 |
+
"full",
|
| 82 |
+
"shared",
|
| 83 |
+
"shared",
|
| 84 |
+
"shared",
|
| 85 |
+
"full",
|
| 86 |
+
"shared",
|
| 87 |
+
"shared",
|
| 88 |
+
"shared",
|
| 89 |
+
"full",
|
| 90 |
+
"shared",
|
| 91 |
+
"shared",
|
| 92 |
+
"shared",
|
| 93 |
+
"full",
|
| 94 |
+
"shared",
|
| 95 |
+
"shared",
|
| 96 |
+
"shared",
|
| 97 |
+
"full",
|
| 98 |
+
"shared",
|
| 99 |
+
"shared",
|
| 100 |
+
"shared",
|
| 101 |
+
"full",
|
| 102 |
+
"shared",
|
| 103 |
+
"shared",
|
| 104 |
+
"shared"
|
| 105 |
+
],
|
| 106 |
+
"initializer_range": 0.02,
|
| 107 |
+
"intermediate_size": 12288,
|
| 108 |
+
"kv_lora_rank": 512,
|
| 109 |
+
"max_position_embeddings": 1048576,
|
| 110 |
+
"mlp_layer_types": [
|
| 111 |
+
"dense",
|
| 112 |
+
"dense",
|
| 113 |
+
"dense",
|
| 114 |
+
"sparse",
|
| 115 |
+
"sparse",
|
| 116 |
+
"sparse",
|
| 117 |
+
"sparse",
|
| 118 |
+
"sparse",
|
| 119 |
+
"sparse",
|
| 120 |
+
"sparse",
|
| 121 |
+
"sparse",
|
| 122 |
+
"sparse",
|
| 123 |
+
"sparse",
|
| 124 |
+
"sparse",
|
| 125 |
+
"sparse",
|
| 126 |
+
"sparse",
|
| 127 |
+
"sparse",
|
| 128 |
+
"sparse",
|
| 129 |
+
"sparse",
|
| 130 |
+
"sparse",
|
| 131 |
+
"sparse",
|
| 132 |
+
"sparse",
|
| 133 |
+
"sparse",
|
| 134 |
+
"sparse",
|
| 135 |
+
"sparse",
|
| 136 |
+
"sparse",
|
| 137 |
+
"sparse",
|
| 138 |
+
"sparse",
|
| 139 |
+
"sparse",
|
| 140 |
+
"sparse",
|
| 141 |
+
"sparse",
|
| 142 |
+
"sparse",
|
| 143 |
+
"sparse",
|
| 144 |
+
"sparse",
|
| 145 |
+
"sparse",
|
| 146 |
+
"sparse",
|
| 147 |
+
"sparse",
|
| 148 |
+
"sparse",
|
| 149 |
+
"sparse",
|
| 150 |
+
"sparse",
|
| 151 |
+
"sparse",
|
| 152 |
+
"sparse",
|
| 153 |
+
"sparse",
|
| 154 |
+
"sparse",
|
| 155 |
+
"sparse",
|
| 156 |
+
"sparse",
|
| 157 |
+
"sparse",
|
| 158 |
+
"sparse",
|
| 159 |
+
"sparse",
|
| 160 |
+
"sparse",
|
| 161 |
+
"sparse",
|
| 162 |
+
"sparse",
|
| 163 |
+
"sparse",
|
| 164 |
+
"sparse",
|
| 165 |
+
"sparse",
|
| 166 |
+
"sparse",
|
| 167 |
+
"sparse",
|
| 168 |
+
"sparse",
|
| 169 |
+
"sparse",
|
| 170 |
+
"sparse",
|
| 171 |
+
"sparse",
|
| 172 |
+
"sparse",
|
| 173 |
+
"sparse",
|
| 174 |
+
"sparse",
|
| 175 |
+
"sparse",
|
| 176 |
+
"sparse",
|
| 177 |
+
"sparse",
|
| 178 |
+
"sparse",
|
| 179 |
+
"sparse",
|
| 180 |
+
"sparse",
|
| 181 |
+
"sparse",
|
| 182 |
+
"sparse",
|
| 183 |
+
"sparse",
|
| 184 |
+
"sparse",
|
| 185 |
+
"sparse",
|
| 186 |
+
"sparse",
|
| 187 |
+
"sparse",
|
| 188 |
+
"sparse"
|
| 189 |
+
],
|
| 190 |
+
"model_type": "glm_moe_dsa",
|
| 191 |
+
"moe_intermediate_size": 2048,
|
| 192 |
+
"moe_layer_freq": 1,
|
| 193 |
+
"n_group": 1,
|
| 194 |
+
"n_routed_experts": 168,
|
| 195 |
+
"n_shared_experts": 1,
|
| 196 |
+
"norm_topk_prob": true,
|
| 197 |
+
"num_attention_heads": 64,
|
| 198 |
+
"num_experts_per_tok": 8,
|
| 199 |
+
"num_hidden_layers": 78,
|
| 200 |
+
"num_key_value_heads": 64,
|
| 201 |
+
"num_nextn_predict_layers": 1,
|
| 202 |
+
"pad_token_id": 154820,
|
| 203 |
+
"pretraining_tp": 1,
|
| 204 |
+
"q_lora_rank": 2048,
|
| 205 |
+
"qk_head_dim": 256,
|
| 206 |
+
"qk_nope_head_dim": 192,
|
| 207 |
+
"qk_rope_head_dim": 64,
|
| 208 |
+
"rms_norm_eps": 1e-05,
|
| 209 |
+
"rope_interleave": true,
|
| 210 |
+
"rope_parameters": {
|
| 211 |
+
"rope_theta": 8000000,
|
| 212 |
+
"rope_type": "default"
|
| 213 |
+
},
|
| 214 |
+
"routed_scaling_factor": 2.5,
|
| 215 |
+
"scoring_func": "sigmoid",
|
| 216 |
+
"tie_word_embeddings": false,
|
| 217 |
+
"topk_group": 1,
|
| 218 |
+
"topk_method": "noaux_tc",
|
| 219 |
+
"transformers_version": "5.12.0",
|
| 220 |
+
"use_cache": true,
|
| 221 |
+
"v_head_dim": 256,
|
| 222 |
+
"vocab_size": 154880,
|
| 223 |
+
"quantization_config": {
|
| 224 |
+
"config_groups": {
|
| 225 |
+
"group_0": {
|
| 226 |
+
"input_activations": {
|
| 227 |
+
"dynamic": false,
|
| 228 |
+
"num_bits": 4,
|
| 229 |
+
"type": "float",
|
| 230 |
+
"group_size": 16
|
| 231 |
+
},
|
| 232 |
+
"weights": {
|
| 233 |
+
"dynamic": false,
|
| 234 |
+
"num_bits": 4,
|
| 235 |
+
"type": "float",
|
| 236 |
+
"group_size": 16
|
| 237 |
+
},
|
| 238 |
+
"targets": [
|
| 239 |
+
"Linear"
|
| 240 |
+
]
|
| 241 |
+
}
|
| 242 |
+
},
|
| 243 |
+
"ignore": [
|
| 244 |
+
"lm_head",
|
| 245 |
+
"model.layers.0.mlp*",
|
| 246 |
+
"model.layers.0.self_attn*",
|
| 247 |
+
"model.layers.0.self_attn.indexer*",
|
| 248 |
+
"model.layers.1.mlp*",
|
| 249 |
+
"model.layers.1.self_attn*",
|
| 250 |
+
"model.layers.1.self_attn.indexer*",
|
| 251 |
+
"*shared_experts*",
|
| 252 |
+
"model.layers.10.self_attn*",
|
| 253 |
+
"model.layers.10.self_attn.indexer*",
|
| 254 |
+
"model.layers.11.self_attn*",
|
| 255 |
+
"model.layers.11.self_attn.indexer*",
|
| 256 |
+
"model.layers.12.self_attn*",
|
| 257 |
+
"model.layers.12.self_attn.indexer*",
|
| 258 |
+
"model.layers.13.self_attn*",
|
| 259 |
+
"model.layers.13.self_attn.indexer*",
|
| 260 |
+
"model.layers.14.self_attn*",
|
| 261 |
+
"model.layers.14.self_attn.indexer*",
|
| 262 |
+
"model.layers.15.self_attn*",
|
| 263 |
+
"model.layers.15.self_attn.indexer*",
|
| 264 |
+
"model.layers.16.self_attn*",
|
| 265 |
+
"model.layers.16.self_attn.indexer*",
|
| 266 |
+
"model.layers.17.self_attn*",
|
| 267 |
+
"model.layers.17.self_attn.indexer*",
|
| 268 |
+
"model.layers.18.self_attn*",
|
| 269 |
+
"model.layers.18.self_attn.indexer*",
|
| 270 |
+
"model.layers.19.self_attn*",
|
| 271 |
+
"model.layers.19.self_attn.indexer*",
|
| 272 |
+
"model.layers.2.mlp*",
|
| 273 |
+
"model.layers.2.self_attn*",
|
| 274 |
+
"model.layers.2.self_attn.indexer*",
|
| 275 |
+
"model.layers.20.self_attn*",
|
| 276 |
+
"model.layers.20.self_attn.indexer*",
|
| 277 |
+
"model.layers.21.self_attn*",
|
| 278 |
+
"model.layers.21.self_attn.indexer*",
|
| 279 |
+
"model.layers.22.self_attn*",
|
| 280 |
+
"model.layers.22.self_attn.indexer*",
|
| 281 |
+
"model.layers.23.self_attn*",
|
| 282 |
+
"model.layers.23.self_attn.indexer*",
|
| 283 |
+
"model.layers.24.self_attn*",
|
| 284 |
+
"model.layers.24.self_attn.indexer*",
|
| 285 |
+
"model.layers.25.self_attn*",
|
| 286 |
+
"model.layers.25.self_attn.indexer*",
|
| 287 |
+
"model.layers.26.self_attn*",
|
| 288 |
+
"model.layers.26.self_attn.indexer*",
|
| 289 |
+
"model.layers.27.self_attn*",
|
| 290 |
+
"model.layers.27.self_attn.indexer*",
|
| 291 |
+
"model.layers.28.self_attn*",
|
| 292 |
+
"model.layers.28.self_attn.indexer*",
|
| 293 |
+
"model.layers.29.self_attn*",
|
| 294 |
+
"model.layers.29.self_attn.indexer*",
|
| 295 |
+
"model.layers.3.self_attn*",
|
| 296 |
+
"model.layers.3.self_attn.indexer*",
|
| 297 |
+
"model.layers.30.self_attn*",
|
| 298 |
+
"model.layers.30.self_attn.indexer*",
|
| 299 |
+
"model.layers.31.self_attn*",
|
| 300 |
+
"model.layers.31.self_attn.indexer*",
|
| 301 |
+
"model.layers.32.self_attn*",
|
| 302 |
+
"model.layers.32.self_attn.indexer*",
|
| 303 |
+
"model.layers.33.self_attn*",
|
| 304 |
+
"model.layers.33.self_attn.indexer*",
|
| 305 |
+
"model.layers.34.self_attn*",
|
| 306 |
+
"model.layers.34.self_attn.indexer*",
|
| 307 |
+
"model.layers.35.self_attn*",
|
| 308 |
+
"model.layers.35.self_attn.indexer*",
|
| 309 |
+
"model.layers.36.self_attn*",
|
| 310 |
+
"model.layers.36.self_attn.indexer*",
|
| 311 |
+
"model.layers.37.self_attn*",
|
| 312 |
+
"model.layers.37.self_attn.indexer*",
|
| 313 |
+
"model.layers.38.self_attn*",
|
| 314 |
+
"model.layers.38.self_attn.indexer*",
|
| 315 |
+
"model.layers.39.self_attn*",
|
| 316 |
+
"model.layers.39.self_attn.indexer*",
|
| 317 |
+
"model.layers.4.self_attn*",
|
| 318 |
+
"model.layers.4.self_attn.indexer*",
|
| 319 |
+
"model.layers.40.self_attn*",
|
| 320 |
+
"model.layers.40.self_attn.indexer*",
|
| 321 |
+
"model.layers.41.self_attn*",
|
| 322 |
+
"model.layers.41.self_attn.indexer*",
|
| 323 |
+
"model.layers.42.self_attn*",
|
| 324 |
+
"model.layers.42.self_attn.indexer*",
|
| 325 |
+
"model.layers.43.self_attn*",
|
| 326 |
+
"model.layers.43.self_attn.indexer*",
|
| 327 |
+
"model.layers.44.self_attn*",
|
| 328 |
+
"model.layers.44.self_attn.indexer*",
|
| 329 |
+
"model.layers.45.self_attn*",
|
| 330 |
+
"model.layers.45.self_attn.indexer*",
|
| 331 |
+
"model.layers.46.self_attn*",
|
| 332 |
+
"model.layers.46.self_attn.indexer*",
|
| 333 |
+
"model.layers.47.self_attn*",
|
| 334 |
+
"model.layers.47.self_attn.indexer*",
|
| 335 |
+
"model.layers.48.self_attn*",
|
| 336 |
+
"model.layers.48.self_attn.indexer*",
|
| 337 |
+
"model.layers.49.self_attn*",
|
| 338 |
+
"model.layers.49.self_attn.indexer*",
|
| 339 |
+
"model.layers.5.self_attn*",
|
| 340 |
+
"model.layers.5.self_attn.indexer*",
|
| 341 |
+
"model.layers.50.self_attn*",
|
| 342 |
+
"model.layers.50.self_attn.indexer*",
|
| 343 |
+
"model.layers.51.self_attn*",
|
| 344 |
+
"model.layers.51.self_attn.indexer*",
|
| 345 |
+
"model.layers.52.self_attn*",
|
| 346 |
+
"model.layers.52.self_attn.indexer*",
|
| 347 |
+
"model.layers.53.self_attn*",
|
| 348 |
+
"model.layers.53.self_attn.indexer*",
|
| 349 |
+
"model.layers.54.self_attn*",
|
| 350 |
+
"model.layers.54.self_attn.indexer*",
|
| 351 |
+
"model.layers.55.self_attn*",
|
| 352 |
+
"model.layers.55.self_attn.indexer*",
|
| 353 |
+
"model.layers.56.self_attn*",
|
| 354 |
+
"model.layers.56.self_attn.indexer*",
|
| 355 |
+
"model.layers.57.self_attn*",
|
| 356 |
+
"model.layers.57.self_attn.indexer*",
|
| 357 |
+
"model.layers.58.self_attn*",
|
| 358 |
+
"model.layers.58.self_attn.indexer*",
|
| 359 |
+
"model.layers.59.self_attn*",
|
| 360 |
+
"model.layers.59.self_attn.indexer*",
|
| 361 |
+
"model.layers.6.self_attn*",
|
| 362 |
+
"model.layers.6.self_attn.indexer*",
|
| 363 |
+
"model.layers.60.self_attn*",
|
| 364 |
+
"model.layers.60.self_attn.indexer*",
|
| 365 |
+
"model.layers.61.self_attn*",
|
| 366 |
+
"model.layers.61.self_attn.indexer*",
|
| 367 |
+
"model.layers.62.self_attn*",
|
| 368 |
+
"model.layers.62.self_attn.indexer*",
|
| 369 |
+
"model.layers.63.self_attn*",
|
| 370 |
+
"model.layers.63.self_attn.indexer*",
|
| 371 |
+
"model.layers.64.self_attn*",
|
| 372 |
+
"model.layers.64.self_attn.indexer*",
|
| 373 |
+
"model.layers.65.self_attn*",
|
| 374 |
+
"model.layers.65.self_attn.indexer*",
|
| 375 |
+
"model.layers.66.self_attn*",
|
| 376 |
+
"model.layers.66.self_attn.indexer*",
|
| 377 |
+
"model.layers.67.self_attn*",
|
| 378 |
+
"model.layers.67.self_attn.indexer*",
|
| 379 |
+
"model.layers.68.self_attn*",
|
| 380 |
+
"model.layers.68.self_attn.indexer*",
|
| 381 |
+
"model.layers.69.self_attn*",
|
| 382 |
+
"model.layers.69.self_attn.indexer*",
|
| 383 |
+
"model.layers.7.self_attn*",
|
| 384 |
+
"model.layers.7.self_attn.indexer*",
|
| 385 |
+
"model.layers.70.self_attn*",
|
| 386 |
+
"model.layers.70.self_attn.indexer*",
|
| 387 |
+
"model.layers.71.self_attn*",
|
| 388 |
+
"model.layers.71.self_attn.indexer*",
|
| 389 |
+
"model.layers.72.self_attn*",
|
| 390 |
+
"model.layers.72.self_attn.indexer*",
|
| 391 |
+
"model.layers.73.self_attn*",
|
| 392 |
+
"model.layers.73.self_attn.indexer*",
|
| 393 |
+
"model.layers.74.self_attn*",
|
| 394 |
+
"model.layers.74.self_attn.indexer*",
|
| 395 |
+
"model.layers.75.self_attn*",
|
| 396 |
+
"model.layers.75.self_attn.indexer*",
|
| 397 |
+
"model.layers.76.self_attn*",
|
| 398 |
+
"model.layers.76.self_attn.indexer*",
|
| 399 |
+
"model.layers.77.self_attn*",
|
| 400 |
+
"model.layers.77.self_attn.indexer*",
|
| 401 |
+
"model.layers.8.self_attn*",
|
| 402 |
+
"model.layers.8.self_attn.indexer*",
|
| 403 |
+
"model.layers.9.self_attn*",
|
| 404 |
+
"model.layers.9.self_attn.indexer*",
|
| 405 |
+
"model.layers.78.eh_proj*",
|
| 406 |
+
"model.layers.78.self_attn*",
|
| 407 |
+
"model.layers.78.self_attn.indexer*",
|
| 408 |
+
"model.layers.78.mlp.gate*",
|
| 409 |
+
"model.layers.78.mlp.shared_experts*"
|
| 410 |
+
],
|
| 411 |
+
"quant_algo": "NVFP4",
|
| 412 |
+
"producer": {
|
| 413 |
+
"name": "modelopt",
|
| 414 |
+
"version": "0.39.0.dev290+gf9d9a71de.d20260214"
|
| 415 |
+
},
|
| 416 |
+
"quant_method": "modelopt"
|
| 417 |
+
}
|
| 418 |
+
}
|
generation_config.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"_from_model_config": true,
|
| 3 |
+
"eos_token_id": [
|
| 4 |
+
154820,
|
| 5 |
+
154827,
|
| 6 |
+
154829
|
| 7 |
+
],
|
| 8 |
+
"pad_token_id": 154820,
|
| 9 |
+
"temperature": 1.0,
|
| 10 |
+
"top_p": 0.95,
|
| 11 |
+
"transformers_version": "5.12.0"
|
| 12 |
+
}
|
model-00000.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b1f558cdcfd51ad09b369060ee2697a6126f7baf377ed51e9738acaa5d4d5b33
|
| 3 |
+
size 5061128344
|
model-00001.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1490bb92142103de1bd70a761cd4f60aeeb60b7d6e77f50e53a852d1e48a316d
|
| 3 |
+
size 5000912520
|
model-00003.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:101e1d998612b019f1468b9be76e4f911d083772eee786f1ebb63d5954824330
|
| 3 |
+
size 5001422828
|
model-00005.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6212ae9565ac9df9674f7a926ac6ffef00d4af4ea34e7f22ab14b99b5e7f4b4a
|
| 3 |
+
size 5000910108
|
model-00007.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d5d07a87b62a3387c9e7e2959069c1b39f22aeccc6b959dbd6be60a619bf1e04
|
| 3 |
+
size 5001422756
|
model-00009.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c6077b9a0b439d87697bc2f76f1f59b63ecf7d89a335cf3678d0ed61bf9cee02
|
| 3 |
+
size 5000241880
|
model-00011.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dbeda0619afeaec0d7061ec6bde5c2bd37ce78e921c378d610fc6660078f153e
|
| 3 |
+
size 5006010804
|
model-00013.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:250a443c9b5299968a770d1a70dc608ecbc7ee3378abad0f19e8c72746630614
|
| 3 |
+
size 5005596120
|
model-00015.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:04647b42072b6a40485b605d10f581372649d800b20aaef3d1d35d22c9d406c5
|
| 3 |
+
size 5001422900
|
model-00016.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:06b08b74dc750fa6c34f240bdd1c2d930d1b61c4105490e1dbb4397f8438f04e
|
| 3 |
+
size 5001422748
|
model-00019.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:832dacdcdc53f08e880e3e49a705e8d70a8a220e52f278c6e511eb9d0cccda00
|
| 3 |
+
size 5001422900
|
model-00020.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6623fda88dfabd85a0b196f4385536462b82d8311b25d8ba1783699a325ad9c8
|
| 3 |
+
size 5002972352
|
model-00022.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7f22013311fd01ef90641508881b20dc2f5aa2f575781d9b346e5a10de091a6d
|
| 3 |
+
size 5001422900
|
model-00029.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c57ef5c063de4da5f191427c29b6c0a332a1f5a037f15ffc4e5286e2e7883a6d
|
| 3 |
+
size 5001422620
|
model-00030.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3f1ac2a4c51bc0089b1ab2cea205d7ef1f9e2dc285c67d897856b298a61eddf9
|
| 3 |
+
size 5001422988
|
model-00031.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:417fafd35e56ffa7448fa91d55f394bd5e210de0b754cba05253dd37ef8dbd52
|
| 3 |
+
size 5001422788
|
model-00032.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:37fd6b2158aa3eee9e304c4675b60645eb227311b903e6f9f3a2c368d14483bd
|
| 3 |
+
size 5003105764
|
model-00033.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c0a5b97b06ad82fa912e0bb9f4b9ca710a0139e51602f4590bac0bb49a52419e
|
| 3 |
+
size 5001422676
|
model-00034.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8bfd4663b6bf46b9d5b9187e7c702637451a26d40a4214bca66e7505db4ae76b
|
| 3 |
+
size 5001422060
|
model-00035.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a3ab9728ce6576667254704d8a4e55fcf138467f07dd7484d9ed48e68f9dff4a
|
| 3 |
+
size 5001422148
|
model-00036.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c2ad051750db0861bbe41630a1075a8be5620e4b60af976557bf282250d0fc11
|
| 3 |
+
size 5003105788
|
model-00037.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f6fc0a097d0ffcddc9b645ec63855e571c9d053fa790a83c2c3c580f3dea2a54
|
| 3 |
+
size 5001422748
|
model-00038.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:76daa497d45e3982697c7e685d98659b4174b12739c5d2199c36e6e27c54591d
|
| 3 |
+
size 5001422940
|
model-00039.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9ef57dbc0cfac521c406ca141703c188a39621043ef7fd9d3f0c6d41dab0bd89
|
| 3 |
+
size 5006010668
|
model-00041.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a63cc484df599f9bcbd4fe829e71af3fd55c055322e0063dfaa77af214df1065
|
| 3 |
+
size 5001422884
|
model-00042.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a540910db6b410b7da335993f0c9ab19d9e87781f38740f85034e9cb59f8cf8f
|
| 3 |
+
size 5006010756
|
model-00044.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f4ccc48c7bea4fe6506c9eb27004c0b9caa57260e2f4ccfb5f379d9caab8a81e
|
| 3 |
+
size 5003105716
|
model-00049.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d35c338c89535a366857937df999c58c9a142b086c9d6456f99ca94e6ee01b5c
|
| 3 |
+
size 5006010708
|
model-00050.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ae16d70ff0aa0967688ac4a9d2e1eccc6f098078a1cf5f0e1d24c199c95146c2
|
| 3 |
+
size 5001422948
|
model-00051.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d47f04fc032df73703af5236fb0eb8bf32ad7f3f4567814d7b2df4b61d98ecc5
|
| 3 |
+
size 5001925072
|
model-00052.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c69da30e474be7ae0c231ea04df217cb00d7d82b4df3d18eb7ae2f9748a02bec
|
| 3 |
+
size 5005091788
|
model-00054.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:95a58a903900d384af6b9607509222063a7b8e4bcf144ef5c3a80dd858dc2269
|
| 3 |
+
size 5001422908
|
model-00055.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1820c933e1e6ebd21a9e0bfb673c7ed6cdb3b37b2b0fe544a8bb0d53f9365b9c
|
| 3 |
+
size 5112282228
|
model-00057.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c0c15cde6105accd01c475cd3a6ae6e023010285b9639d7db338ea6bc1126bac
|
| 3 |
+
size 5001422940
|
model-00058.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:54db3c24bb2587323bbf509dac72a20d9b9f43e3f8b101727ffae472536bb59a
|
| 3 |
+
size 5001422804
|
model-00059.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bc44e1349206839b0ea3a4b227f1022783df414298caa70effb2248239d0fb59
|
| 3 |
+
size 1002980748
|
model-00061.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e01c73f4ea9b1600e48b5978dbc08db1013e7a6276861b0072fea36f15a2ae49
|
| 3 |
+
size 4575950984
|
model-00062.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f3bb30f591c100d653d9a2f53bd264904f06a93868811685c068a052fce826e4
|
| 3 |
+
size 5008224104
|
model-00063.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d07c8d923bbba0bb61e2afb8bf23a0ad0917a01dd574e9347c98c4d8425572d8
|
| 3 |
+
size 2515249728
|
model.safetensors.index.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bb5b4fa9782aea5ffc66f9145d6e630f1045d385c30437c531bebe422c075f3f
|
| 3 |
+
size 12706968
|
tokenizer.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:19e773648cb4e65de8660ea6365e10acca112d42a854923df93db4a6f333a82d
|
| 3 |
+
size 20217442
|