GLM-5.3-Flash-4bit-paged

Expert-paged build of pipenetwork/GLM-5.3-Flash-MLX-4bit. The weights that are read a fraction at a time live in their own containers, so a machine loads what it needs rather than all of it.

file size holds
model.safetensors 5.89 GiB resident weights
experts.bin 159.47 GiB routed experts
mtp/ 3.90 GiB draft head, off by default

Total 169.27 GiB. Of that, 165.37 GiB is the source build, whose bytes moved into

These containers are not a format mlx-lm reads. The model runs on gbx_lm, a single signed binary for Apple Silicon; there is nothing to pip install. containers rather than being copied, and 3.90 GiB is the draft head, which no published build of this model carries.

Requirements

macOS 15.0 or later
chip Apple Silicon (arm64). There is no Intel build.
Python none -- the binary carries what it needs

Memory is not a fixed figure for a paged build, and that is the point of one: it fills what fits and streams the rest from disk. On a 512 GB Mac Studio with room to spare this model settles at about 172 GB resident. A smaller machine holds less and reads more from disk -- slower, but it runs.

How much slower depends on how far the machine is from holding the experts, and on how fast its disk is. Each token routes to a few experts; the ones already in memory cost nothing to reach, and the ones that are not have to be read before that token can finish. A machine holding most of them waits rarely, one holding few waits often. We have not measured this across machine sizes and will not guess a figure: what we can say is that the model answers either way, and that the wait is the SSD's, not the model's.

Install

curl -fL -o gbx_lm-darwin-arm64.tar.gz 'https://github.com/GreenBitAI/gbx-lm/releases/latest/download/gbx_lm-darwin-arm64.tar.gz' \
  && tar -xzf gbx_lm-darwin-arm64.tar.gz gbx_lm \
  && mkdir -p "$HOME/.local/bin" \
  && mv gbx_lm "$HOME/.local/bin/gbx_lm" \
  && chmod +x "$HOME/.local/bin/gbx_lm"

gbx_lm -h

command not found means $HOME/.local/bin is not on your PATH: add it, or call the binary by its full path. The build is signed with a Developer ID and notarised, so macOS runs it without the usual detour for a downloaded binary.

Run

gbx_lm --model GreenBitAI/GLM-5.3-Flash-4bit-paged

That serves an OpenAI-compatible API on port 11688, which is its default. The weights download on first use into ~/.libra/cache/models; set HF_HOME to put them elsewhere, and HF_TOKEN if you meet the Hub's rate limits for anonymous downloads.

curl http://127.0.0.1:11688/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"GreenBitAI/GLM-5.3-Flash-4bit-paged","messages":[{"role":"user","content":"Hello"}]}'

Where the weights fit they are filled from experts.bin and the model runs the stock path at stock speed; where they do not, they stream from disk. Reading the machine decides that, not a flag.

To override that: GBX_PAGING=off holds the experts resident.

Checked at build time, while the source checkpoint was still there to compare against:

  • PASS layer-wise vs resident — 42 layers x 2 draws exact, 60.93 GiB peak for this gate

Quantization, tokenizer, chat template and licence are unchanged from pipenetwork/GLM-5.3-Flash-MLX-4bit.

Coding agents

The server speaks three wire protocols on the same port, so the tools that expect a hosted API can be pointed at this one:

path for
/v1/chat/completions anything written against the OpenAI API
/v1/responses Codex
/v1/messages Claude Code

Codex -- a provider in ~/.codex/config.toml:

[model_providers.gbx]
name = "gbx-lm"
base_url = "http://127.0.0.1:11688/v1"
wire_api = "responses"

and a profile in ~/.codex/gbx.config.toml:

model_provider = "gbx"
model = "GreenBitAI/GLM-5.3-Flash-4bit-paged"
model_context_window = 1048576

Claude Code -- ~/.claude/gbx.settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:11688",
    "ANTHROPIC_AUTH_TOKEN": "local",
    "ANTHROPIC_MODEL": "GreenBitAI/GLM-5.3-Flash-4bit-paged",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "GreenBitAI/GLM-5.3-Flash-4bit-paged"
  }
}

Both clients ask for a small model for their own background work, so every name in the settings has to be one this server is serving.

The draft head

The mtp/ folder carries the model's own multi-token prediction head, converted from zai-org/GLM-5.3-Flash, so speculative decoding works from this repository alone. It is off unless asked for:

GBX_GLM53_MTP=on gbx_lm --model GreenBitAI/GLM-5.3-Flash-4bit-paged
GBX_GLM53_MTP=on gbx_lm --model GreenBitAI/GLM-5.3-Flash-4bit-paged

It grows with the context. Measured 2026-09-18 on a 512 GB Mac Studio (M3 Ultra), greedy, decode timed from the first token, both columns from the same build:

context head off head on speedup accepted
11,317 27.1 tok/s 38.3 1.41x 78%
2,854 27.5 35.7 1.30x 76%
715 31.6 31.8 1.01x 65%

A short context has little to go on, so the head proposes less well and the win is small; by 11k it accepts 78% of what it proposes. Through the server on chat-shaped questions it accepts 63-75%.

Every token the head proposes is verified by the model itself, so the reply is the model's own either way; the head only saves passes over the weights.

Downloads last month
885
Safetensors
Model size
9B params
Tensor type
U32
·
F32
·
BF16
·
MLX
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for GreenBitAI/GLM-5.3-Flash-4bit-paged

Quantized
(1)
this model

Collection including GreenBitAI/GLM-5.3-Flash-4bit-paged