Image-Text-to-Text
MLX
Safetensors
English
Chinese
glm5_next
gbx-lm
apple-silicon
expert-paging
mixture-of-experts
multimodal
conversational
4-bit precision
Instructions to use GreenBitAI/GLM-5.3-Flash-4bit-paged with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use GreenBitAI/GLM-5.3-Flash-4bit-paged with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("GreenBitAI/GLM-5.3-Flash-4bit-paged") config = load_config("GreenBitAI/GLM-5.3-Flash-4bit-paged") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use GreenBitAI/GLM-5.3-Flash-4bit-paged with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "GreenBitAI/GLM-5.3-Flash-4bit-paged"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "GreenBitAI/GLM-5.3-Flash-4bit-paged" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use GreenBitAI/GLM-5.3-Flash-4bit-paged with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "GreenBitAI/GLM-5.3-Flash-4bit-paged"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default GreenBitAI/GLM-5.3-Flash-4bit-paged
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use GreenBitAI/GLM-5.3-Flash-4bit-paged with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "GreenBitAI/GLM-5.3-Flash-4bit-paged"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "GreenBitAI/GLM-5.3-Flash-4bit-paged" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
|
Download README.md from GreenBitAI/GLM-5.3-Flash-4bit-paged: direct link, hf CLI and curl.
- Browser
- Download file 8.36 kB
-
https://huggingface.co/GreenBitAI/GLM-5.3-Flash-4bit-paged/resolve/main/README.md
- Command line
-
hf download hf://GreenBitAI/GLM-5.3-Flash-4bit-paged/README.md
-
curl -L -o README.md https://huggingface.co/GreenBitAI/GLM-5.3-Flash-4bit-paged/resolve/main/README.md
8.36 kB
| language: | |
| - en | |
| - zh | |
| license: mit | |
| base_model: pipenetwork/GLM-5.3-Flash-MLX-4bit | |
| library_name: mlx | |
| pipeline_tag: image-text-to-text | |
| tags: | |
| - mlx | |
| - gbx-lm | |
| - apple-silicon | |
| - expert-paging | |
| - mixture-of-experts | |
| - multimodal | |
| # 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 | |
| **Mac** | |
| | | | | |
| | --- | --- | | |
| | macOS | **15.0 or later** | | |
| | chip | **Apple Silicon** (arm64). There is no Intel build. | | |
| | Python | none -- the binary carries what it needs | | |
| **Linux** (gbx-lm v0.8.1 or later) | |
| | | | | |
| | --- | --- | | |
| | machine | **NVIDIA DGX Spark** (GB10). Other Linux machines are not supported yet. | | |
| | system | arm64, glibc 2.39 or later (DGX OS / Ubuntu 24.04) | | |
| | driver | an NVIDIA driver with CUDA 13 support. No CUDA toolkit is needed: the binary carries the CUDA libraries it uses. | | |
| | Python | none | | |
| On a DGX Spark (128 GB) the model does not fit, so its experts are paged from the SSD. | |
| 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 | |
| ```bash | |
| # upgrading? clear the previous version's unpack directory first | |
| rm -rf ~/.libra/cache/onefile/gbx_lm | |
| # on a DGX Spark, use gbx_lm-linux-arm64.tar.gz in place of gbx_lm-darwin-arm64.tar.gz | |
| 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 | |
| ``` | |
| The Mac build is signed with a Developer ID and notarised, so macOS runs it | |
| without the usual detour for a downloaded binary. | |
| **`command not found`** -- `$HOME/.local/bin` is not on your `PATH`: | |
| ```bash | |
| echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc # zsh | |
| echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile && source ~/.bash_profile # bash | |
| ``` | |
| **`Killed: 9`** (Mac) -- a previous version's files are still in the unpack directory, | |
| and macOS refuses to mix two builds. Run the `rm -rf` line above, then try again. | |
| ## Run | |
| ```bash | |
| 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. | |
| ```bash | |
| 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`. | |
| ### Images | |
| The model reads images as well as text. Send them as OpenAI `image_url` parts -- | |
| an http(s) URL or a base64 `data:` URL: | |
| ```bash | |
| 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":[ | |
| {"type":"text","text":"What is in this picture?"}, | |
| {"type":"image_url","image_url":{"url":"https://example.com/photo.jpg"}}]}]}' | |
| ``` | |
| From the command line, `--images` takes one or more files: | |
| `gbx_lm generate --model GreenBitAI/GLM-5.3-Flash-4bit-paged --images photo.jpg --prompt "What is in this picture?" --max-tokens 2048`. | |
| ### From the command line | |
| From `gbx_lm` v0.7.1, the binary also runs the model without a server -- one | |
| prompt, or an interactive chat: | |
| ```bash | |
| GBX_GLM53_MTP=on gbx_lm generate --model GreenBitAI/GLM-5.3-Flash-4bit-paged --prompt "Hello" --max-tokens 2048 | |
| GBX_GLM53_MTP=on gbx_lm chat --model GreenBitAI/GLM-5.3-Flash-4bit-paged --max-tokens 2048 | |
| ``` | |
| `gbx_lm generate -h` and `gbx_lm chat -h` list their options. Keep | |
| `--max-tokens` generous: the default is 100 for `generate` and 256 for `chat`, | |
| and the model's reasoning before it answers counts against it. Leave out | |
| `GBX_GLM53_MTP=on` to run without the draft head. | |
| ## 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`: | |
| ```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`: | |
| ```toml | |
| model_provider = "gbx" | |
| model = "GreenBitAI/GLM-5.3-Flash-4bit-paged" | |
| model_context_window = 1048576 | |
| ``` | |
| **Claude Code** -- `~/.claude/gbx.settings.json`: | |
| ```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: | |
| ```bash | |
| GBX_GLM53_MTP=on gbx_lm --model GreenBitAI/GLM-5.3-Flash-4bit-paged | |
| ``` | |
| **Up to 1.4x, more as the context grows.** | |
| Measured 2026-10-13 with `gbx_lm` v0.8.0 on a 512 GB Mac Studio (M3 Ultra), weights | |
| resident, greedy, thinking off, 256 tokens a reply, decode timed from the first token. | |
| Short prompts: three each of code, prose and chat, three runs each, the median per kind. | |
| Long contexts: a slice of source code and a question about it, the median of three runs. | |
| | prompt | head off | head on | speedup | | |
| |---|---|---|---| | |
| | short, code | 39.5 tok/s | **55.5** | 1.41x | | |
| | short, prose | 39.5 | **45.8** | 1.16x | | |
| | short, chat | 39.5 | **50.8** | 1.29x | | |
| | 3,400-token context | 32.6 | **40.0** | 1.23x | | |
| | 14,000-token context | 32.2 | **43.8** | 1.36x | | |
| | 29,000-token context | 31.4 | **42.5** | 1.35x | | |
| Code gains most and prose least. With more context behind it the head proposes | |
| better -- it accepts about 63% of what it proposes on short prompts and 75-77% | |
| from 14k tokens on. | |
| Every token the head proposes is checked by the model itself, so the reply is the | |
| model's own either way; the head only saves passes over the weights. | |