Downloads · 30 days
0
cfontes/GLM-5.3-Flash-EXL3-TP4-Spark
GLM-5.3-Flash-EXL3-TP4-Spark is a machine learning model from cfontes. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Serving stack, quantization findings, drafter training evidence, and full negative-results ladder for running GLM-5.3-Flash with EXL3 quantization + DFlash2 speculative decoding on a 4-node NVIDIA DGX Spark (GB10) clu…
Downloads · 30 days
0
Access
Public
Updated Sep 5, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.json536 KB · 97%
From the Hugging Face model README
Serving stack, quantization findings, drafter training evidence, and full negative-results ladder for running GLM-5.3-Flash with EXL3 quantization + DFlash2 speculative decoding on a 4-node NVIDIA DGX Spark (GB10) cluster over Mellanox SN2700 RoCE, vLLM TP4.
Champion result: 31.7 tok/s single-stream (c=1), 57.7 tok/s @ c=4, temp=0.
Drafter weights: cfontes/GLM-5.3-Flash-DFlash2-TR3-v3
This is the EXL3 lane of our two-lane GLM-5.3-Flash TP4 project. The NVFP4 lane champion is documented at cfontes/GLM-5.3-Flash-DFlash2-TP4-Spark (37.9 tok/s c1 / 94.2 c4). This repo documents how close EXL3 gets, why the remaining gap exists, and everything that didn't work.
| Component | Setting |
|---|---|
| Base model | zai-org/GLM-5.3-Flash |
| Quantization | EXL3 2bpw routed-experts-only, 16-bit head (scope: glm53_routed_experts_only, codebook mcg, exl3 v0.0.43) |
| Runtime | vcruz305 vllm-exl3 native kernels on the ZJY0516 vLLM fork |
| Speculative decoding | DFlash2 drafter (our TR3-retrained v3), K=2, TRITON_ATTN, probabilistic draft / standard rejection |
| Parallelism | TP4 across 4 nodes (mp backend, head + 3 --headless workers) |
| CUDA graphs | ON (CUDA_GRAPHS=1, no --enforce-eager) — +11% free |
| KV cache | fp8 |
| MNBT | 7168 (Mia's production default) |
| Context | 262,144 |
| Interconnect | RoCE, NCCL_IB_HCA=rocep1s0f1, NVLS off, CROSS_NIC on |
Launcher: launch-exl3-tr3-tp4.sh — set
EXL3_MODEL, DFLASH_K, DFLASH_DRAFT, CUDA_GRAPHS env vars; run
head on rank 0 and worker <1|2|3> on the rest.
| Concurrency | tok/s aggregate | accept len |
|---|---|---|
| 1 | 31.7 | 1.78 |
| 2 | 50.6 | 1.66 |
| 4 | 57.7 | 1.66 |
| 8 | 59.5 | 1.72 |
| 16 | 60.9 (saturated) | 1.72 |
See results.tsv and results/ for the raw bench
JSONs. Highlights:
--enforce-eager removed): 30.7 (+11%, the single
biggest serving-side win)The served drafter (v3) is a retrain of the vendor
incoai/GLM-5.3-Flash-DFlash2
checkpoint on 427,444 capture files (160 GB) of hidden-state data captured
from the live EXL3-TR3-4bpw TP4 stack via the fork's DFLASH_SAVE_HIDDEN
capture hook — i.e. trained on exactly the quantized target it serves against,
no capture/target mismatch.
5-component loss (Phase-1 plan): 1.0·L_block_CE + 0.5·L_KL + 2.0·L_sel + 0.5·L_anchor + 0.1·L_hid, stage-A (train fc/hidden_norm/projection/codebooks,
decoder frozen), position-weighted CE 0.85^k.
Results: 4-epoch retrain lifted served accept 1.71 → 1.83 (+7%) vs the v2 drafter at K2 (+68% throughput vs vendor v1 drafter). A 32-epoch run (val loss 4.21) moved served accept by only +0.02 — teacher-forcing saturates.
A noise-augmented variant (σ=5% gaussian noise on input hidden states, 8 epochs) scored 31.1 tok/s / accept 1.75 — no gain. Retraining cannot close the gap to NVFP4; see findings below.
We measured the drafter's information ceiling directly: reconstructing target
logits from the captured spec_hidden_states via the frozen lm_head (a linear
probe of exactly what the drafter sees) yields only 30% top-1 agreement
with the target's actual token. The v3 drafter's pos-0 accept is 53–58% —
already +23–28 points beyond its own linear input ceiling. The NVFP4 lane's
drafter hits 73% pos-0. The drafter is not the bottleneck; the quantized
mid-layer hidden states are.
EXL3-4bpw and EXL3-2bpw have identical steps/s in eager mode (15.3–15.4). Quantizing routed experts from 4→2 bits buys nothing until CUDA graphs remove launch overhead — then 2bpw pulls ahead (17.9 vs 17.0 steps/s). If you're CPU-launch-bound, quantize lighter; if you're NCCL-bound, quantizing is free acceptance loss.
--enforce-eager was costing 11%The proven EXL3 recipe shipped with eager mode. Removing it (CUDA_GRAPHS=1
in our launcher) is a free +11% tok/s on this fork. (Note: this contradicts
our NVFP4-lane PIECEWISE-graphs falsification — different fork, different
graph implementation. Test both ways on your stack.)
tok/s = accept × steps/s. At the measured 17.9 steps/s ceiling, 80 tok/s single-stream would need accept length 4.5 — 1.5× what the NVFP4 champion's drafter achieves on cleaner states. 80 tok/s is not reachable on EXL3 with any drafter trained on its hidden states. The honest comparison: EXL3-2bpw delivers ~84% of the NVFP4 lane's c1 throughput in under half the memory footprint.
launch-exl3-tr3-tp4.sh — champion launcher (env-driven: EXL3_MODEL, DFLASH_K, DFLASH_DRAFT, CUDA_GRAPHS)results.tsv — machine-readable results ladderresults/*.json — every bench run cited above (llm-inference-bench format)MODEL_CARD.md — HuggingFace model card for the serving stackWe did not do this alone:
Original work (this cluster): 4-node TP4 capture/training harness for DFlash2 on EXL3, the TR3 drafter retrains (v3 champion, v4 falsification), the 2bpw-routed-experts quant config evaluation, CUDA-graphs result on this fork, the hidden-state ceiling analysis, and all benchmark evidence.
4× NVIDIA DGX Spark (GB10, 128 GB unified), rank 0–3, RoCE over Mellanox
SN2700 (NCCL_IB_HCA=rocep1s0f1), vLLM fork runtime image (sm121a).