GLM 5.3 Flash-sauhard

Benchmark report · glm-reap153-76-lsq · October 2026

What GLM 5.3 Flash-sauhard scores.
Everything we ran, with the error bars.

All numbers on this page were measured on one MacBook Pro M5 Max with 128 GB, on the exact weights people download. Two kinds of test: fidelity, which compares every next-token prediction against the full-precision GLM-5.3-Flash, and tasks, which grade answers to coding, math and tool-calling problems.

95.0%HumanEval+ pass@1
97.5%MATH-500 accuracy
84.8%BFCL function calling
92.4%next-token agreement with the original
01 · Tasks

Coding, math and tool calls

Graded by running the code against the tests, matching the final answer, or checking the function call. Thinking on, temperature 1.0, top-p 0.95 (GLM's recommended sampling), one sample per problem. Subsets are small, so read the range, not the point.

BenchmarkProblemsFlash-sauhard95% rangeDWQ variant
HumanEval+
164-problem set, first 40; extra EvalPlus tests
4095.0%83–99%92.5%
MBPP+
first 40; EvalPlus tests
4092.5%80–97%87.5%
MBPP (base tests)
same 40, original tests
40100.0%91–100%97.5%
MATH-500
first 40, exact answer match
4097.5%87–100%100.0%
BFCL function calling
7 categories × 15
10584.8%77–90%85.7%

The DWQ variant is the same build after an extra distillation pass. It matched the original slightly better on fidelity but lost 3.75 points on code, so it was not shipped. Average answer length: 2,549 tokens on HumanEval+, 2,502 on MATH-500; no answer hit the thinking budget.

Function calling by category

BFCL, 15 cases each, parsed with GLM's native tool format

  • Simplen=15100%
  • Pick one of severaln=1587%
  • Parallel callsn=1593%
  • Parallel + pickn=15100%
  • Decline when no tool fitsn=1573%
  • Live, simplen=1580%
  • Live, pick onen=1560%

Weakest: declining when no tool fits, and the "live" user-written cases, where 20% of answers made no call at all.

What these numbers are not

Read before quoting

These are subsets, not full leaderboard runs: 40 problems per dataset and 105 tool cases. A 95% score on 40 problems is anything from about 83–99%.

We could not run the original GLM-5.3-Flash on the same harness: it does not fit in 128 GB. That is the job of the fidelity tests below.

HumanEval and MATH are old and likely seen in training. They show the build still works, not how it ranks against frontier models.

02 · Fidelity

How close it stays to the original

48 held-out conversations (521,901 tokens) were run through full-precision GLM-5.3-Flash once, keeping its top-64 predictions at every position. Each build is scored against that. Lower KL divergence is closer; top-1 is how often both pick the same next token.

Assistant KL, every candidate build

On the tokens the model writes itself. Lower is better.

  • REAP 153, plain rounding76 GB budget0.121
  • Mass-scored 153, plain rounding76 GB budget0.123
  • Mass-scored 162, plain rounding80 GB budget0.118
  • Mass-scored 162, LSQ80 GB budget0.112
  • REAP 153, LSQ (shipped)76 GB budget0.108
  • Shipped + DWQ (KL loss)76 GB budget0.106
  • Shipped + DWQ (MSE loss)76 GB budget0.107

Why "assistant" tokens

Splitting by who wrote the text

On positions where the model writes its own answer, GLM 5.3 Flash-sauhard diverges by 0.108 and agrees on the top token 92.4% of the time.

On text a user or a tool wrote, KL is large (2.8 and 6.9) for every build, including near-lossless ones: neither model can predict a user's next word. It still moves with pruning, so we track it as a comprehension signal rather than a quality score.

BuildGBAssistant KLTop-1Reasoning KLTool-text KLUser-text KL
REAP 153, plain rounding760.12192.4%0.0696.982.85
Mass-scored 153, plain rounding760.12392.3%0.0866.732.78
Mass-scored 162, plain rounding800.11892.6%0.0816.692.66
Mass-scored 162, LSQ800.11292.8%0.0796.722.64
REAP 153, LSQ (shipped)760.10892.4%0.0666.922.81
Shipped + DWQ (KL loss)760.10692.6%0.0687.333.26
Shipped + DWQ (MSE loss)760.10792.9%0.0607.093.07

LSQ rounding (refitting each quantization scale against calibration data) cut assistant KL by 11% at the same size. The two DWQ rows are slightly lower on assistant KL but higher on tool and user text, and worse on code.

The shipped build, by workload

All positions. Medians show the typical token; means are pulled up by user and tool text.

WorkloadSamplesTokensMedian KLMean KLTop-1
Code1227,9500.4003.22760.1%
Agentic, multi-turn tools1280,5571.2804.82445.3%
Reasoning / math1253,1190.0030.06693.1%
Long documents, 16K–64K12360,2750.5932.78555.0%
03 · Speed and memory

How fast, and how much room it leaves

Measured on the MLX server people run (one request at a time, 2048-token prefill steps), and on the bare model at fixed prompt lengths. Speculative decoding is off: GLM's draft head ships in the weights but has not been verified yet.

Through the server

Real requests to the OpenAI-compatible API

Prompt tokensGeneratedPrefill tok/sDecode tok/s
10847810841.5 peak
7512005224.4
880120024028.2
6,795120044938.4
27,130120051826.8

Bare model, by prompt length

256 tokens decoded after each prompt

PromptPrefill tok/sFirst tokenDecode tok/sPeak
1,0246261.6 s31.672.1 GB
8,19251715.8 s29.374.3 GB
32,76841379.2 s25.877.5 GB

Memory on a 128 GB Mac

The server is capped at 84 GB; the rest stays with the system and your apps

Weights 69.22 GBDraft head 1.57 GBKV cache and runtime, to the 84 GB cap44 GB for everything else

3.476 bits per weight on average. Resident size while serving: 71.6 GB.

04 · Not measured yet

Open items

Public leaderboard scores. The original GLM-5.3-Flash scores 42 on the Artificial Analysis index at medium effort, one point above Claude Sonnet 5.5. GLM 5.3 Flash-sauhard has not been run on that suite; from its fidelity we expect 40–41, but that is an estimate.

Long context at 64K to 128K. Fidelity was measured on documents up to 64K tokens. Retrieval at 128K has not been tested.

Speculative decoding. The draft head is in the weights; until it is verified, all speeds above are plain decoding.

Software: MLX 0.32.4, mlx-lm 0.32.2, mlx-vlm 0.7.9, Python 3.12.15. Raw summaries: bench.json. Harness code: evals/.