CoolFace
Modelpublic

Bizuayeu/GLM-5.3-Flash-NVFP4-attn-lmhead-W4A16

sourceHugging Facemitupdated 2d agoView on Hugging Face
0likes78downloads
Model Card

NVFP4 BIZ AXL: GLM-5.3-Flash-NVFP4, attention + lm_head in W4A16

Short name: NVFP4 BIZ AXL (AXL: the attention projections and lm_head in W4A16). It is the published option of the serving stack NVFP4 BIZ (Bizuayeu/GLM-5.3-Flash-NVFP4-2x-DGX-Sparks-BIZ); this repository's name describes the contents and stays as it is. Cite a revision as "NVFP4 BIZ AXL (<revision>)".

A derived checkpoint of `nvidia/GLM-5.3-Flash-NVFP4`. The attention-side linears and lm_head, which NVIDIA leaves in BF16, are repacked weight-only to W4A16 NVFP4; every other tensor is byte-identical to the source. It is not an NVIDIA or Z.AI release.

Use it for generation-heavy serial work, Japanese prose in particular, on the two-node GB10 (DGX Spark class) setup of Bizuayeu/GLM-5.3-Flash-NVFP4-2x-DGX-Sparks-BIZ: decode is about 40% faster than the source checkpoint at the same draft depth, prefill is a few percent faster, and about 4.4 GiB less is loaded per rank. That saving is what pays for a second sequence: the setup's AXL example profile serves two active sequences from 6 GiB of KV per rank, accepted there for routine use on 2026-09-23 at up to about 200K tokens each. Do not use it where the pinned weights must be matched exactly (code, tool use): it is not lossless — teacher-forced NLL is 1 to 6% higher on three of four test corpora.

At a glance

Sourcenvidia/GLM-5.3-Flash-NVFP4, revision 423acf37583782c51c142d145aef733d72943d93, checksum-verified snapshot
Upstreamzai-org/GLM-5.3-Flash (MIT, Copyright (c) 2026 Z.AI Co., Ltd)
Repacked to W4A16 NVFP4 (group 16, no calibration data)The KDA projections of the 34 linear-attention layers (q_proj, k_proj, v_proj, b_proj, f_a_proj, g_a_proj, f_b_proj, g_b_proj, o_proj); on the 11 MLA layers q_a_proj, kv_a_proj_with_mqa, q_b_proj, kv_b_proj, o_proj and the indexer wq_b; and lm_head
Left as shippedRouted experts (NVIDIA's NVFP4), router, norms, embeddings, shared experts, the vision tower, the indexer wk / weights_proj, the MTP draft layer
Files18 safetensors shards (195 GB, 182 GiB); config.json and hf_quant_config.json carry the quantization declarations; tokenizer and chat template from the source; NVIDIA's model card kept as README.nvidia.md
Conversionrequant/requant.py of tenhkspark/glm53-flash-nvfp4-2node at commit 8ee63a676c6e8550f49b52aec7c5c05b56eb5553 (Apache-2.0), locally extended to include lm_head; deterministic; about 5.5 minutes on one GB10 (CPU only). Recorded in config.json under quantization_config.producer (requant_target: "l", in_proj_layout: "split-qkv-bfg")
Tested onTwo GB10 systems (MSI EdgeXpert), TP=2 over QSFP/RoCE, vLLM 385dce36, Marlin W4A16 kernels, MTP draft depth 3, one or two active sequences (two with 6 GiB of KV per rank), 256K context with image input
LicenseMIT (NVIDIA's model card terms and the upstream Z.AI license, both preserved)

Requirements

The pinned vLLM (385dce36) does not route these modules through its NVFP4 path on its own, and this checkpoint declares the KDA input projection as q_proj / k_proj / v_proj plus one merged in_proj_bfg_a (b, f_a, g_a) instead of vLLM's six-in-one in_proj_qkvbfg_a. Loading therefore needs the two source overlays that the setup repository ships in its `overlays/` directory:

OverlayReplaces in vLLM `385dce36`SHA-256
kda-quant-split.pyvllm/models/glm5next/nvidia/kda.py144a835faa57c56f5257c05a5cf6742102a21e38a92d39c2a1e26cd4ada680fd
mla-quant-split.pyvllm/models/glm5next/nvidia/model.pya9b1ea5ce05983973bc79954147809a17e0e5aa0f96eae47c6011306f51b533d

An overlay pair belongs to one revision of this checkpoint (see Revisions); a mismatched pair fails at load. Plain vllm serve on this folder without the overlays does not start.

Loading

  • —With the setup repository (recommended): set runtime.derived_checkpoint in the server TOML — path to this folder, requant_target = "l", and the two overlays with their SHA-256 — and start through its launcher, which verifies the overlays and the manifest before every launch. `examples/server.axl.example.toml` carries all of it, with prefix-page dedup and two active sequences; replace its paths, image IDs and node details. Details: server configuration.
  • —Without it: copy the two overlays over the two files named above inside a vLLM 385dce36 installation, then vllm serve this folder; the declarations in config.json then reach the declared modules.

Measured against the source checkpoint

Two GB10, TP=2, MTP depth 3, temperature 0. This checkpoint is the profile the setup's reference pair serves (the AXL example: this checkpoint, prefix-page dedup, two active sequences, 6 GiB of KV per rank), measured on 2026-09-23 with one request in flight unless the row says otherwise; rows not re-measured that night keep the value of 2026-09-22, dated. The source checkpoint is the setup's distributed defaults (one sequence, 3 GiB of KV per rank), 2026-09-22 unless dated. Medians of three runs; ranges and conditions are in the setup repository's benchmarks (1.8.0, 1.10.2 and 1.10.4 sections).

CategoryMeasureSource checkpoint**This checkpoint**
Prefill38,962-token prompt (tok/s)1,2331,295 (2026-09-22)
DecodeAfter a 2,048-token prompt, counting / prose / code (tok/s)32.0 / 20.7 / 26.745.0 / 28.2 / 37.7
Decode512 tokens after a short prompt (tok/s)27.141.8 (2026-09-22)
DecodesparkDash DecodeBench, 128 tokens, structured / prose / code / json (tok/s)36.2 / 26.7 / 31.7 / 26.3 (setup 1.5.0)48.2 / 31.4 / 41.3 / 34.9
Long input~200K tokens, one passphrase at the midpoint (s, correct)173.5 (199,652 tokens)165.7 (199,649 tokens)
Long input255,950 tokens, one passphrase at the midpoint (s, correct)217.3220.9 (2026-09-22)
Long input261,461 tokens, three-position reference (s, correct 3 of 3)235.9227.2 (2026-09-22)
Long inputMaximum capacity, 262,080 input + 64 output tokens (s, finite logprobs)240.3245.7 (2026-09-22)
ConcurrencyTwo ~200K passphrase requests togethernot served (one sequence; requests queue)330.2 s, both correct, no preemption (166 s for one alone)
ConcurrencyDecode while another request runs, counting / prose (tok/s)not served32.1 / 21.8
Qualitytool-eval-bench, 69 standard scenarios90/100 (setup 1.0.0, 2026-09-14)88/100; the same three failures, so its Safety Gate is still not passed (TC-43)
RepeatabilityIdentical requests at temperature 0same completion nine times of nine within a launchsame across launches for a request alone, and always with max_num_seqs = 1 (concurrent requests queue); with max_num_seqs of 2 or more, a request that shares steps with another can get a different completion (measured on these weights and on the source checkpoint): the MoE kernel splits its sum along K by the number of expert blocks in the step, and a step shared with a prefill runs prefill-sized kernels
MemoryWeights loaded per rank / lowest free memory on the head95.8 GiB / 5.5 GiB (3 GiB of KV)91.3 GiB / 10.5 GiB at 3 GiB of KV (2026-09-22); 6.46 GiB at 6 GiB of KV with two 200K requests in flight

Quality, teacher-forced NLL on the setup's four fixed corpora (same inputs, the serving profile of 2026-09-25: two sequences, deterministic Inductor configs; the same on the setup's 1.12 and 1.13 images):

CorpusSource checkpoint**This checkpoint**Change
Japanese1.59631.6270+1.9%
English2.02411.9946−1.5%
Code0.94790.9601+1.3%
Mathematics0.59310.6275+5.8%

The earlier figures (2026-09-22, one-sequence profile before the setup's 1.12 launch-state fix) were 1.6645 / 2.0024 / 1.0031 / 0.6279.

Since the setup's 1.12.0 (deterministic Inductor configs on both ranks), every launch checked has computed in the same numerical state; before it, relaunches fell into one of three states that differed in how a near tie falls. The setup checks every launch after a switch (weight digest, decode check, kernel hashes on both ranks); see its validation. Decode speed under MTP depends on how predictable the text is (counting is faster than prose); the draft is the checkpoint's own MTP layer, no extra weights.

Revisions

DateChangeOverlay pair
2026-09-22 (current)config.json / hf_quant_config.json declare the KDA input projection split into q_proj / k_proj / v_proj + in_proj_bfg_a (producer.in_proj_layout = "split-qkv-bfg"). Weights unchanged. Removes the prefill cost of the fused layout (one wide W4A16 Marlin GEMM), so prefill is now faster than the source checkpointkda-quant-split.py 144a835f…, mla-quant-split.py a9b1ea5c…
2026-09-21Initial release; declarations for vLLM's fused in_proj_qkvbfg_a; prefill 1 to 3% slower than the source checkpointkda-quant.py 2e491a38…, mla-quant.py 88916cc1…

License and notices

The weights are redistributed under the MIT terms stated by the NVIDIA model card and by the upstream Z.AI license; both notices are preserved (README.nvidia.md, and the Z.AI license text in the setup repository's LICENSES/). This repackaging adds no training data and no new terms. The conversion tool is Apache-2.0 and its license applies to the tool, not to these weights. No warranty; see the source model cards for intended use and limitations.