{−1, +1}) or ternary (weights in {−1, 0, +1} ).
The practical consequence: the 1-bit Bonsai 27B model fits in 3.8GB versus 54GB for a full-precision model and the 1-bit Bonsai 8B model fits in 1.16 GB versus 16.38 GB for the same architecture in FP16. That is a 14x reduction, which is what lets Bonsai run on hardware that could never load a full-precision model of the same class.
Bonsai (1-bit)
Weights packed to a single bit each
{−1, +1}. The smallest and fastest family.Ternary-Bonsai (1.58-bit)
Weights take one of three values
{−1, 0, +1}. Roughly 50% more the size of 1-bit and measurably higher quality.Why low-bit models
- They run where full-precision models can’t. 1-bit Bonsai 27B needs only 3.8GB. It loads and runs on an iPhone 17 Pro, while leaving some memory for KV Cache. A 16-bit 27B model needs 54GB for the weights alone.
- They generate faster. Token generation is memory-bandwidth-bound. Moving 1 to 1.58 bits per weight instead of 16 means each token requires a fraction of the memory traffic, so decode speed scales up accordingly on the same hardware.
- They use less energy. Measured at roughly 4 to 5x better energy per token than 16-bit counterparts (0.068 mWh/tok for 1-bit 8B on an iPhone 17 Pro Max versus 0.132 mWh/tok for 4-bit 8B model).
- They keep data local. Inference runs entirely on your machine. Nothing leaves it.
The lineup
Four sizes, each in both families, each under Apache-2.0:| Model | Parameters | Context | 1-bit on disk (GGUF) | Ternary on disk (GGUF) |
|---|---|---|---|---|
| Bonsai 27B | 27B | 262,144 tokens | 3.9 GB | 7.2 GB |
| Bonsai 8B | 8.2B | 65,536 tokens | 1.16 GB | 2.18 GB |
| Bonsai 4B | ~4B | 32,768 tokens | 0.57 GB | 1.07 GB |
| Bonsai 1.7B | ~1.7B | 32,768 tokens | 0.25 GB | 0.46 GB |
Where to go next
Quickstart
Clone the demo repo and chat with Bonsai locally in one command.
Try it without installing
Hosted GPU demo, in-browser WebGPU, Colab, and iOS apps.
Pick a model
Sizes, families, benchmarks, and what fits your hardware.
How the quantization works
What 1-bit and 1.58-bit actually mean, layer by layer.
Run locally
llama.cpp, MLX, the OpenAI-compatible server, and Open WebUI.