Model Overview
- Model architecture: GLM-5.3-Flash
- Input: text and images
- Output: text
- Source checkpoint: zai-org/GLM-5.3-Flash-BF16
- Validated hardware: 4× AMD Instinct MI350 GPUs (gfx950)
- Validated software:
- ROCm 7.2.4
- PyTorch 2.11.0+rocm7.2
- Transformers 5.12.1
- SGLang 0.5.18 development image with PR #36607
- AMD Quark 0.12.post1 checkpoint format
- Inference engine: SGLang
- KV cache used for validation: BF16
This is the OneNexus V29 mixed-precision MXFP4 checkpoint of GLM-5.3-Flash. It was quantized from the BF16 checkpoint, not from the published FP8 checkpoint.
The checkpoint contains 227,496,639,296 bytes (211.87 GiB) of indexed model weights. The published GLM-5.3-Flash FP8 checkpoint contains 328,337,455,672 bytes (305.79 GiB) of model weights, so this checkpoint reduces weight storage by 30.71%.
Model Quantization
AMD Quark applies OCP MXFP4 E2M1 quantization to the routed MoE expert weights. Weights use static 1×32 block scaling with E8M0 scales; expert activations are quantized dynamically with the same 1×32 block layout. The Hugging Face quantization metadata uses normalized model.layers.* module names, consistent with the convention used by amd/GLM-5.2-MXFP4.
The following paths remain in BF16:
- attention and DSA projections;
- router gates, dense/shared MLP projections, and
lm_head;
- routed experts in layers 3, 5, and 6;
- routed experts in MTP layer 45.
Layer 4 remains MXFP4. Fifteen layer-4 experts use a checkpoint-only, folded intermediate SmoothQuant transform selected from held-out BF16 activation traces. This transform does not require a custom runtime operation.
The baseline Quark recipe is:
cd Quark/examples/torch/language_modeling/llm_ptq/
python quantize_quark.py \
--model_dir zai-org/GLM-5.3-Flash-BF16 \
--output_dir GLM-5.3-Flash-MXFP4 \
--quant_scheme mxfp4 \
--exclude_layers "*self_attn*" "*mlp.gate" "*lm_head" \
"*mlp.gate_proj" "*mlp.up_proj" "*mlp.down_proj" \
"*layers.45.*" \
--file2file_quantization
V29 adds the mixed-precision expert protections and folded SmoothQuant refinement described above. The exact machine-readable exclusions and quantization parameters are stored in config.json; the refinement summaries are stored in mixed_precision_correction.json, quantization_correction.json, and mxfp4_smoothquant_optimization.json.
Deployment
SGLang on AMD MI350/MI355
The checkpoint was validated with the GLM-5.3-Flash ROCm support introduced by SGLang PR #36607, native AITER MXFP4 MoE kernels, TileLang DSA backends, and a BF16 KV cache. PR #36607 has been merged; when using the validated SGLang v0.5.18 ROCm image, mount a checkout containing that change as shown below. A newer image that already contains the merged change does not need the source overlay.
git clone https://github.com/sgl-project/sglang.git
cd sglang
git fetch origin pull/36607/head:pr-36607
git checkout pr-36607
docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-v "$PWD/python/sglang:/sgl-workspace/sglang/python/sglang:ro" \
--env SGLANG_USE_AITER=1 \
--env SGLANG_OPT_DEEPGEMM_HC_PRENORM=0 \
--ipc=host \
lmsysorg/sglang-rocm:v0.5.18-rocm724-mi35x-20260822 \
python3 -m sglang.launch_server \
--model-path OneNexus/GLM-5.3-Flash-MXFP4 \
--tp-size 4 \
--quantization quark \
--trust-remote-code \
--disable-cuda-graph \
--context-length 65536 \
--mem-fraction-static 0.80 \
--max-running-requests 32 \
--chunked-prefill-size 4096 \
--max-prefill-tokens 16384 \
--dsa-prefill-backend tilelang \
--dsa-decode-backend tilelang \
--kv-cache-dtype bfloat16 \
--moe-runner-backend aiter \
--reasoning-parser glm45 \
--tool-call-parser glm47 \
--mm-feature-transport cpu \
--host 0.0.0.0 \
--port 30000
The validation server dispatched native AITER FP4 MoE kernels (torch.float4_e2m1fn_x2, 1×32 quantization) rather than dequantizing the checkpoint to BF16 GEMMs.
Evaluation
The checkpoint and its BF16 oracle were evaluated with sgl-eval using temperature=0, seed=0, and reasoning_effort=max. “8192” and “16384” below are maximum output-token limits, not input-context limits.
Definitions:
- Completed: requests with a recorded evaluator result.
- Raw accuracy: correct ÷ completed.
- Truncated: requests ending because the maximum output-token limit was reached.
- Excluding truncation: correct ÷ (completed − truncated).
- Recovery: MXFP4 accuracy ÷ BF16 accuracy.
Accuracy
Table with columns: Benchmark, Model, Completed, Correct, Raw accuracy, Truncated, Excluding truncation, Recovery (raw / excl. trunc.)| Benchmark | Model | Completed | Correct | Raw accuracy | Truncated | Excluding truncation | Recovery (raw / excl. trunc.) |
|---|
| GSM8K, 8192, flexible extract | BF16 oracle | 500/500 | 486 | 486/500 = 97.20% | 3 | 486/497 = 97.79% | — |
| GSM8K, 8192, flexible extract | MXFP4 V29 | 500/500 |
On the exactly matched GSM8K rows, MXFP4 and BF16 correctness agree on 487/500 questions (97.4%). On the exactly matched MMLU rows, correctness agrees on 474/500 questions (94.8%); among the 442 questions for which both models produce a parsed answer, the selected answer agrees on 440/442 (99.55%). On GPQA, the two models choose the same answer on all 114 questions for which both produce a parsed answer; most raw-score differences are caused by which requests reach the output-token cap.
Reproduction
After starting the SGLang endpoint, install sgl-eval and run:
sgl-eval run gsm8k \
--num-examples 500 \
--num-threads 32 \
--max-tokens 8192 \
--temperature 0 \
--seed 0 \
--reasoning-effort max \
--base-url http://localhost:30000/v1 \
--model OneNexus/GLM-5.3-Flash-MXFP4
sgl-eval run mmlu \
--num-examples 500 \
--num-threads 32 \
--max-tokens 8192 \
--temperature 0 \
--seed 0 \
--reasoning-effort max \
--base-url http://localhost:30000/v1 \
--model OneNexus/GLM-5.3-Flash-MXFP4
sgl-eval run gpqa \
--num-examples 198 \
--num-threads 32 \
--max-tokens 16384 \
--temperature 0 \
--seed 0 \
--reasoning-effort max \
--base-url http://localhost:30000/v1 \
--model OneNexus/GLM-5.3-Flash-MXFP4
For benchmark and leaderboard reproduction, keep GLM-5.3-Flash at reasoning_effort=max. For chat use, follow the source model’s guidance on clear_thinking.
Limitations
- This is a post-training mixed-precision quantization. It can differ numerically and behaviorally from BF16, especially on long reasoning traces near an output-token limit.
- Validation used the SGLang ROCm/AITER path described above. Other inference engines and kernel implementations require separate compatibility and accuracy checks.
- The accuracy results are deterministic single runs on the stated subsets and settings; they are not claims for every evaluation protocol.
License
This checkpoint is distributed under the source model’s MIT License. See LICENSE and the GLM-5.3-Flash-BF16 model card for source-model details and citation information.