Bonsai-27B — CMF q1 (4.75 GB, runs on a 24 GB MacBook)
Bonsai-27B — a
1-bit-trained 27B hybrid (16 full-attention + 48 GatedDeltaNet
layers, 248K vocabulary) — packed into a single
CMF file with q1 encoding:
1.5 bits per weight, 6 bytes per 32 weights.
Because the model was trained at 1 bit, q1 is its native
representation, not a lossy afterthought: generation is
token-for-token identical to the same model stored at q8. The whole
model is one 4.75 GB file that memory-maps straight off disk and
decodes at 9–11 tok/s on an Apple M4 MacBook (24 GB) through a
whole-token Metal graph.
What is CMF?
CMF (Cortiq Model Format) is a single-file LLM container with a small
pure-Rust runtime — no Python, no torch, no C++ toolchain, no CUDA
install:
One file carries the weights, tokenizer and chat template, and
checks its own integrity.
mmap-first: pages load lazily on first touch; start-up is fast
and RAM stays near the file size.
1# download the model file (~4.75 GB)
2huggingface-cli download infosave/Bonsai-27Bcmf bonsai-27b-q1.cmf --local-dir .
34# chat (the file carries its own chat template)
5cortiq run bonsai-27b-q1.cmf --prompt "Explain mmap in one sentence."
67# Apple Silicon: run the whole-token Metal graph (9-11 tok/s on an M4)
8CMF_GPU=1 cortiq run bonsai-27b-q1.cmf --prompt "Explain mmap in one sentence."
910# raw completion mode (no chat template)
11cortiq run bonsai-27b-q1.cmf --prompt "The capital of France is" --raw --greedy
Run as a server
cortiq serve speaks the OpenAI API, so existing clients and SDKs work
unchanged:
CMF_GPU=1 cortiq serve bonsai-27b-q1.cmf --port 8080 # + web dashboard on /
Streaming ("stream": true), /v1/models, /v1/completions and
/healthz work too. Note the scope honestly: requests are serialized
(one at a time per model) and there is no authentication — a
local-first server, not a multi-tenant gateway.
Performance (Apple M4, 24 GB MacBook)
Mode
Speed
decode, CMF_GPU=1 (whole-token Metal graph)
9–11.4 tok/s
decode, CPU only
~3.2 tok/s
resident memory
≈ file size (mmap)
The GPU decode is distribution-equivalent to the CPU path (reduction
order differs — the usual GPU tolerance class).
q1 is intended for 1-bit-trained checkpoints (Bonsai / BitNet
class). As post-training quantization of an ordinary model it destroys
quality — the converter exposes it only as an explicit opt-in.