GLM-5.3 Int4-Int8Mix (743B) β the quant that fits 4x NVIDIA DGX Spark
16
12 commits
3 linked in READMEs
updated Aug 29, 2026
β Live β all 282 shards uploaded, fully open (2026-08-29)
The complete model is here: 282 safetensors shards + config + tokenizer, ~378 GB, public and ungated. Everything below is verified on our own hardware. Recipe + launchers + benchmarks: github.com/tonyd2wild/GLM-5.3-Int4-Int8Mix-TP4-4x-DGX-Spark.
An Int4-Int8 mixed-precision quantization of the full zai-org/GLM-5.3 (743B total / ~40B active MoE, glm5_next, 78 layers, 1M context), in the compressed-tensors format for vLLM. Produced with the QuantTrio-style recipe (data-free, mixed W4A16 / W8A16), it is, as far as we can tell, the first quant of the big GLM-5.3 that actually serves on four DGX Spark (GB10) nodes with real KV-cache headroom.
The existing full-GLM-5.3 NVFP4 quants are all ~465 GB because they keep the entire attention stack at bf16. Across 4 Sparks that is ~116 GB/rank, leaving only ~12 GB/rank, which is not enough for the KV pool plus framework, so they OOM in practice.
This quant takes the attention to Int8 instead of bf16. That single change drops the footprint to ~378 GB (~94.5 GB/rank at TP4), leaving ~33 GB/rank for a real KV pool. It is the difference between "loads on paper" and "serves under real traffic."
| weights | GB/rank (TP4) | KV headroom/rank | serves on 4 Sparks? | |
|---|---|---|---|---|
| NVFP4 (attention bf16) | ~465 GB | ~116 | ~12 GB | no (OOM) |
| This β Int4-Int8Mix | ~378 GB | ~94.5 | ~33 GB | yes |
Static, symmetric, weight-only, compressed-tensors / pack-quantized, group size 128. No calibration data. Per-layer map:
self_attn.*, mlp.gate_up/gate/up/down, shared_experts.*.mlp.gate (the MoE router), self_attn.indexer / indexers_proj (the DSA sparse-attention selector), the MTP eh_proj/enorm/hnorm, and shared_head.norm / shared_head.head (the LM head).The trick in one line: Int4 only the bulky experts, Int8 the dense and attention, and leave the routing, indexer, and head alone.
vllm serve <path-to-this-model> \
--quantization compressed-tensors \
--kv-cache-dtype fp8 \
--tensor-parallel-size 4 --enable-expert-parallel \
--served-model-name glm-5.3 \
--max-model-len 131072 # raise per your KV pool
--quantization compressed-tensors is all you need.kv_cache_scheme: None in the config β KV precision is a serve-time choice (--kv-cache-dtype), not baked into the weights.--decode-context-parallel-size 4) to split the KV across all four nodes for a ~600K single-request context (the tradeoff is a small cross-node cost per decode step).Produced by a shard-streaming RTN quantizer (reads one BF16 shard at a time, quantizes with compressed_tensors' own calculate_qparams / quantize / pack_to_int32, writes a 1:1 output shard; peak RAM ~10 GiB, runtime 28.2 min). NOT llmcompressor.oneshot β accelerate disk-offload would need ~1.4 TB of scratch this fleet doesn't have.
Proven:
mlp.gate, indexer, lm_head, MTP norms) all plain BF16, zero packed leaks. 282 shards, none missing.down_proj.weight_packed I32 [6144,256], weight_scale BF16 [6144,16], MTP scale BF16 [6144,1] β all identical.Performance (measured β TP4, 200K ctx, fp8_ds_mla KV, MTP k=4, thinking off, all four ranks clocking correctly):
| concurrency | 1 | 2 | 3 | 4 | 6 |
|---|---|---|---|---|---|
| aggregate tok/s | 12.12 | 21.71 | 28.30 | 33.11 | 46.03 |
Single-stream is ~12 tok/s; 46 is the peak at 6 concurrent streams. For reference, the GLM-5.2 QuantTrio recipe on the same four nodes reports 32.5 mean / 36 peak.
NOT yet done (honest):
fp8_e4m3 KV, method dflash, num_speculative_tokens 7) and is the next speed step.We stand on a lot of other people's work here, so to be precise about who did what:
compressed-tensors format and llm-compressor are by Neural Magic (now Red Hat). Mixed-precision weight quantization (some layers 4-bit, some 8-bit) is a general, well-established technique, not any one group's invention.Inherits the GLM-5.3 license from the base model. Quantization changes weights only, not the license terms.
GLM-5.3 Int4-Int8Mix (743B) β the quant that fits 4x NVIDIA DGX Spark
16
12 commits
3 linked in READMEs
updated Aug 29, 2026
β Live β all 282 shards uploaded, fully open (2026-08-29)
The complete model is here: 282 safetensors shards + config + tokenizer, ~378 GB, public and ungated. Everything below is verified on our own hardware. Recipe + launchers + benchmarks: github.com/tonyd2wild/GLM-5.3-Int4-Int8Mix-TP4-4x-DGX-Spark.
An Int4-Int8 mixed-precision quantization of the full zai-org/GLM-5.3 (743B total / ~40B active MoE, glm5_next, 78 layers, 1M context), in the compressed-tensors format for vLLM. Produced with the QuantTrio-style recipe (data-free, mixed W4A16 / W8A16), it is, as far as we can tell, the first quant of the big GLM-5.3 that actually serves on four DGX Spark (GB10) nodes with real KV-cache headroom.
The existing full-GLM-5.3 NVFP4 quants are all ~465 GB because they keep the entire attention stack at bf16. Across 4 Sparks that is ~116 GB/rank, leaving only ~12 GB/rank, which is not enough for the KV pool plus framework, so they OOM in practice.
This quant takes the attention to Int8 instead of bf16. That single change drops the footprint to ~378 GB (~94.5 GB/rank at TP4), leaving ~33 GB/rank for a real KV pool. It is the difference between "loads on paper" and "serves under real traffic."
| weights | GB/rank (TP4) | KV headroom/rank | serves on 4 Sparks? | |
|---|---|---|---|---|
| NVFP4 (attention bf16) | ~465 GB | ~116 | ~12 GB | no (OOM) |
| This β Int4-Int8Mix | ~378 GB | ~94.5 | ~33 GB | yes |
Static, symmetric, weight-only, compressed-tensors / pack-quantized, group size 128. No calibration data. Per-layer map:
self_attn.*, mlp.gate_up/gate/up/down, shared_experts.*.mlp.gate (the MoE router), self_attn.indexer / indexers_proj (the DSA sparse-attention selector), the MTP eh_proj/enorm/hnorm, and shared_head.norm / shared_head.head (the LM head).The trick in one line: Int4 only the bulky experts, Int8 the dense and attention, and leave the routing, indexer, and head alone.
vllm serve <path-to-this-model> \
--quantization compressed-tensors \
--kv-cache-dtype fp8 \
--tensor-parallel-size 4 --enable-expert-parallel \
--served-model-name glm-5.3 \
--max-model-len 131072 # raise per your KV pool
--quantization compressed-tensors is all you need.kv_cache_scheme: None in the config β KV precision is a serve-time choice (--kv-cache-dtype), not baked into the weights.--decode-context-parallel-size 4) to split the KV across all four nodes for a ~600K single-request context (the tradeoff is a small cross-node cost per decode step).Produced by a shard-streaming RTN quantizer (reads one BF16 shard at a time, quantizes with compressed_tensors' own calculate_qparams / quantize / pack_to_int32, writes a 1:1 output shard; peak RAM ~10 GiB, runtime 28.2 min). NOT llmcompressor.oneshot β accelerate disk-offload would need ~1.4 TB of scratch this fleet doesn't have.
Proven:
mlp.gate, indexer, lm_head, MTP norms) all plain BF16, zero packed leaks. 282 shards, none missing.down_proj.weight_packed I32 [6144,256], weight_scale BF16 [6144,16], MTP scale BF16 [6144,1] β all identical.Performance (measured β TP4, 200K ctx, fp8_ds_mla KV, MTP k=4, thinking off, all four ranks clocking correctly):
| concurrency | 1 | 2 | 3 | 4 | 6 |
|---|---|---|---|---|---|
| aggregate tok/s | 12.12 | 21.71 | 28.30 | 33.11 | 46.03 |
Single-stream is ~12 tok/s; 46 is the peak at 6 concurrent streams. For reference, the GLM-5.2 QuantTrio recipe on the same four nodes reports 32.5 mean / 36 peak.
NOT yet done (honest):
fp8_e4m3 KV, method dflash, num_speculative_tokens 7) and is the next speed step.We stand on a lot of other people's work here, so to be precise about who did what:
compressed-tensors format and llm-compressor are by Neural Magic (now Red Hat). Mixed-precision weight quantization (some layers 4-bit, some 8-bit) is a general, well-established technique, not any one group's invention.Inherits the GLM-5.3 license from the base model. Quantization changes weights only, not the license terms.