Bonsai 2 2B
Bonsai 2 2B doesn't use the standard quantization ladder; it ships as fixed builds needing 0.6 GB at Ternary (PTQ1_0) or 0.7 GB at Ternary (PQ2_0) or 0.7 GB at Ternary (Q2_0). 117 GPUs we track can run at least one build fully in VRAM at 8k context.
117 GPUs run this natively · 1 with CPU offload
- Ternary (PQ2_0) total
- 0.7 GB
- at 8k context
- Smallest GPU
- 4 GB
- Intel Arc A310 4GB, at Ternary (PQ2_0)
- KV cache, full context
- 3.2 GB
- 6 of 24 layers cache
- Inputs
- Text · Image
- Apache 2.0, released October 2026
- Knowledge retention
- 82.9%
- PrismML's own suite vs Qwen3.5-2B
- Instruction retention
- 121.5%
- base model scores low in this harness
Bonsai 2 2B is a 2B parameter dense model developed by PrismML. Released October 15, 2026 by PrismML as the smallest of the Bonsai 2 family: a ternary requantization of Alibaba's Qwen3.5-2B, same architecture, not a retrain. Apache 2.0, text plus image input, 262,144-token context inherited from the base model. Three packings of the same weights: PTQ1_0 (0.43 GB, the 'as small as 0.43GB' headline figure), PQ2_0 (0.52 GB, PrismML's default) and Q2_0 (0.55 GB). Unlike the 4B and 9B it has no MTP variant or drafter.
To run Bonsai 2 2B locally: At 0.52 GB of weights (0.7 GB in total at 8k context) it fits almost anything, including wearables and phones; PrismML reports up to 276 tok/s on an RTX 4090 or M5 Pro and up to 120 tok/s on an iPhone 18 Pro Max, its own figures. Even here the full 262,144-token window needs 3.2 GB of KV cache, several times the weights. PTQ1_0 and PQ2_0 need PrismML's llama.cpp fork; Q2_0 is the file PrismML's model card points Ollama and Docker Model Runner at.
PrismML's own table shows the 2B level with or ahead of full-precision Qwen3.5-2B on instruction following (IFEval 85.77 vs 75.79), coding (HumanEval+ 50.0 vs 45.12) and GSM8K (80.74 vs 65.96), though gains that large over a base model usually say more about that base model's weak showing in this harness than about quantization improving anything. Knowledge is where it pays: GPQA Diamond 39.6 vs 58.48 (67.7% retained) and MMLU-Redux 67.6 vs 79.39 (85.1%). All vendor-reported, not yet independently reproduced.
Even a 0.5 GB model needs gigabytes at long context
Ternary quantization shrinks the weights and nothing else: the KV cache stays 16-bit. For a half-gigabyte model, the full context window is the whole story.
KV cache only, at FP16. Weights and activation overhead sit on top of these figures.
Only 6 of the 24 layers keep a KV cache, so the full 262,144-token window costs 3.2 GB of cache, against 12.9 GB if every layer cached. That is about six times the 0.52 GB of PQ2_0 weights: a full-window session needs 4.2 GB in total, versus 0.7 GB at 8k context. For the short-context jobs a 2B suits, the weights are the whole bill; for long documents, plan around the cache.
Available builds
Bonsai 2 2B doesn't offer the standard quantization ladder; instead there are 3 fixed builds to choose from. Sizes assume 8k context throughout.
| Build | Bits/weight | Weights | KV cache | Total | Quality vs FP16 |
|---|---|---|---|---|---|
| Ternary (PTQ1_0) | 1.83 | 0.4 GB | 0.10 GB | 0.6 GB | N/A |
| Ternary (PQ2_0) | 2.2 | 0.5 GB | 0.10 GB | 0.7 GB | N/A |
| Ternary (Q2_0) | 2.33 | 0.6 GB | 0.10 GB | 0.7 GB | N/A |
*These quality figures come from the vendor's own benchmarks and haven't been confirmed by an independent leaderboard yet. KV cache is shown at 8k context (FP16).
Benchmarks
Estimated, not measured: derived from the base model's real score times the best build's vendor-reported quality retention (see the chart above), not independently verified, and not a leaderboard result for Bonsai 2 2B itself.
PrismML's own benchmark table: what ternary weights cost a 2B
PrismML's launch table runs the ternary 2B and full-precision Qwen3.5-2B through the same harness. A sample of eight of its 19 benchmarks, spanning every category it reports:
PrismML, Bonsai 2 family announcement (prismml.com/news/bonsai-2-family), 15 October 2026. PrismML's own harness, run on the ternary build and on full-precision Qwen3.5-2B side by side; not yet listed on any independent leaderboard or independently reproduced.
Instruction following, coding and some math beat the base model outright (IFEval 85.77 vs 75.79, GSM8K 80.74 vs 65.96). Treat those gains with suspicion: a 2B base model that scores 65.96 on GSM8K in this harness is probably failing to follow the answer format, which a requantized build can happen to fix, and PrismML does not explain the effect. What is not in doubt is the other side of the table: GPQA Diamond keeps 67.7% (39.6 vs 58.48), MMLU-Redux 85.1%, and document-style vision (Omni_doc) 77.5%. At this size, ternary weights cost real knowledge.
GPUs that run Bonsai 2 2B natively (117)
- NVIDIA RTX 5090Ternary (Q2_0) · 539.8 t/s
- NVIDIA RTX 5080Ternary (Q2_0) · 452.4 t/s
- NVIDIA RTX 5070 TiTernary (Q2_0) · 441.5 t/s
- NVIDIA RTX 5070Ternary (Q2_0) · 393.7 t/s
- NVIDIA RTX 5060 Ti 16GBTernary (Q2_0) · 323.6 t/s
Show 112 more
- NVIDIA RTX 5060 Ti 8GBTernary (Q2_0) · 323.6 t/s
- NVIDIA RTX 5060Ternary (Q2_0) · 323.6 t/s
- NVIDIA RTX 5050Ternary (Q2_0) · 266.6 t/s
- NVIDIA RTX 4090Ternary (Q2_0) · 460.1 t/s
- NVIDIA RTX 4080Ternary (Q2_0) · 404.7 t/s
- NVIDIA RTX 4070 Ti SUPERTernary (Q2_0) · 393.7 t/s
- NVIDIA RTX 4070 TiTernary (Q2_0) · 344 t/s
- NVIDIA RTX 4070 SUPERTernary (Q2_0) · 344 t/s
- NVIDIA RTX 4070Ternary (Q2_0) · 344 t/s
- NVIDIA RTX 4060 Ti 16GBTernary (Q2_0) · 249.5 t/s
- NVIDIA RTX 4060Ternary (Q2_0) · 240.5 t/s
- NVIDIA RTX 3090Ternary (Q2_0) · 448.4 t/s
- NVIDIA RTX 3090 TiTernary (Q2_0) · 460.1 t/s
- NVIDIA RTX 3080 10GBTernary (Q2_0) · 414.4 t/s
- NVIDIA RTX 3060 12GBTernary (Q2_0) · 286.2 t/s
- NVIDIA B300 288GBTernary (Q2_0) · 561 t/s
- NVIDIA B200 180GBTernary (Q2_0) · 561 t/s
- NVIDIA H200 141GBTernary (Q2_0) · 542.2 t/s
- NVIDIA H100 80GBTernary (Q2_0) · 523.3 t/s
- NVIDIA A100 80GBTernary (Q2_0) · 487.1 t/s
- NVIDIA A100 40GBTernary (Q2_0) · 461.7 t/s
- NVIDIA L40STernary (Q2_0) · 392.8 t/s
- NVIDIA RTX A6000Ternary (Q2_0) · 416.2 t/s
- NVIDIA RTX 4000 AdaTernary (Q2_0) · 266.6 t/s
- NVIDIA RTX 4500 AdaTernary (Q2_0) · 317.3 t/s
- NVIDIA RTX 5000 AdaTernary (Q2_0) · 367.2 t/s
- NVIDIA RTX 6000 AdaTernary (Q2_0) · 452.4 t/s
- NVIDIA RTX Pro 6000Ternary (Q2_0) · 539.8 t/s
- NVIDIA DGX Spark (128GB)Ternary (Q2_0) · 241.1 t/s
- AMD Radeon RX 9070 XTTernary (Q2_0) · 385.3 t/s
- AMD Radeon RX 7900 XTXTernary (Q2_0) · 452.4 t/s
- AMD Radeon RX 7900 XTTernary (Q2_0) · 423 t/s
- AMD Radeon RX 7900 GRETernary (Q2_0) · 367.2 t/s
- AMD Radeon RX 7800 XTTernary (Q2_0) · 381 t/s
- AMD Radeon RX 6800 XTTernary (Q2_0) · 346.7 t/s
- AMD Radeon PRO W7800Ternary (Q2_0) · 367.2 t/s
- AMD Radeon PRO W7900Ternary (Q2_0) · 435.6 t/s
- AMD Instinct MI300XTernary (Q2_0) · 546.5 t/s
- AMD Radeon AI PRO R9700 32GBTernary (Q2_0) · 385.3 t/s
- AMD Strix Halo (128GB)Ternary (Q2_0) · 231 t/s
- AMD Strix Halo (96GB)Ternary (Q2_0) · 231 t/s
- AMD Strix Halo (64GB)Ternary (Q2_0) · 231 t/s
- AMD Strix Halo (32GB)Ternary (Q2_0) · 231 t/s
- Apple M5 Ultra (512GB)Ternary (Q2_0) · 1475.4 t/s
- Apple M5 Ultra (256GB)Ternary (Q2_0) · 1475.4 t/s
- Apple M5 Ultra (96GB)Ternary (Q2_0) · 1475.4 t/s
- Apple M5 Max (128GB)Ternary (Q2_0) · 754.9 t/s
- Apple M5 Max (64GB)Ternary (Q2_0) · 754.9 t/s
- Apple M5 Max (48GB)Ternary (Q2_0) · 754.9 t/s
- Apple M5 Max (36GB)Ternary (Q2_0) · 565.6 t/s
- Apple M5 Pro (64GB)Ternary (Q2_0) · 377.5 t/s
- Apple M5 Pro (48GB)Ternary (Q2_0) · 377.5 t/s
- Apple M5 Pro (24GB)Ternary (Q2_0) · 377.5 t/s
- Apple M5 (32GB)Ternary (Q2_0) · 188.1 t/s
- Apple M5 (16GB)Ternary (Q2_0) · 188.1 t/s
- Apple M6 (32GB)Ternary (Q2_0) · 209 t/s
- Apple M6 (16GB)Ternary (Q2_0) · 209 t/s
- Apple M4 Max (128GB)Ternary (Q2_0) · 671.3 t/s
- Apple M4 Max (64GB)Ternary (Q2_0) · 671.3 t/s
- Apple M4 Max (48GB)Ternary (Q2_0) · 671.3 t/s
- Apple M4 Max (36GB)Ternary (Q2_0) · 504.1 t/s
- Apple M4 Pro (48GB)Ternary (Q2_0) · 335.7 t/s
- Apple M4 Pro (24GB)Ternary (Q2_0) · 335.7 t/s
- Apple M4 (32GB)Ternary (Q2_0) · 147.5 t/s
- Apple M4 (16GB)Ternary (Q2_0) · 147.5 t/s
- Apple M3 Ultra (512GB)Ternary (Q2_0) · 1007 t/s
- Apple M3 Ultra (256GB)Ternary (Q2_0) · 1007 t/s
- Apple M3 Ultra (96GB)Ternary (Q2_0) · 1007 t/s
- Apple M3 Max (128GB)Ternary (Q2_0) · 491.8 t/s
- Apple M3 Max (96GB)Ternary (Q2_0) · 368.9 t/s
- Apple M3 Max (64GB)Ternary (Q2_0) · 491.8 t/s
- Apple M3 Max (48GB)Ternary (Q2_0) · 491.8 t/s
- Apple M3 Max (36GB)Ternary (Q2_0) · 368.9 t/s
- Apple M3 Pro (36GB)Ternary (Q2_0) · 184.4 t/s
- Apple M3 Pro (18GB)Ternary (Q2_0) · 184.4 t/s
- Apple M3 (24GB)Ternary (Q2_0) · 123 t/s
- Apple M3 (16GB)Ternary (Q2_0) · 123 t/s
- Apple M2 Ultra (192GB)Ternary (Q2_0) · 983.6 t/s
- Apple M2 Ultra (64GB)Ternary (Q2_0) · 983.6 t/s
- Apple M2 Max (96GB)Ternary (Q2_0) · 491.8 t/s
- Apple M2 Max (64GB)Ternary (Q2_0) · 491.8 t/s
- Apple M2 Max (32GB)Ternary (Q2_0) · 491.8 t/s
- Apple M2 Pro (32GB)Ternary (Q2_0) · 245.9 t/s
- Apple M2 Pro (16GB)Ternary (Q2_0) · 245.9 t/s
- Apple M2 (24GB)Ternary (Q2_0) · 123 t/s
- Apple M2 (16GB)Ternary (Q2_0) · 123 t/s
- Apple M1 Ultra (128GB)Ternary (Q2_0) · 983.6 t/s
- Apple M1 Ultra (64GB)Ternary (Q2_0) · 983.6 t/s
- Apple M1 Max (64GB)Ternary (Q2_0) · 491.8 t/s
- Apple M1 Max (32GB)Ternary (Q2_0) · 491.8 t/s
- Apple M1 Pro (32GB)Ternary (Q2_0) · 245.9 t/s
- Apple M1 Pro (16GB)Ternary (Q2_0) · 245.9 t/s
- Apple M1 (16GB)Ternary (Q2_0) · 83.6 t/s
- Intel Arc B580 12GBTernary (Q2_0) · 326.6 t/s
- Intel Arc B570 10GBTernary (Q2_0) · 295.4 t/s
- Intel Arc Pro B70 32GBTernary (Q2_0) · 376.5 t/s
- Intel Arc Pro B60 24GBTernary (Q2_0) · 295.4 t/s
- Intel Arc Pro B50 16GBTernary (Q2_0) · 210.9 t/s
- Intel Arc A770 16GBTernary (Q2_0) · 362.3 t/s
- Intel Arc A770 8GBTernary (Q2_0) · 346.7 t/s
- Intel Arc A750 8GBTernary (Q2_0) · 346.7 t/s
- Intel Arc A580 8GBTernary (Q2_0) · 346.7 t/s
- Intel Arc A380 6GBTernary (Q2_0) · 184.7 t/s
- Intel Arc A310 4GBTernary (Q2_0) · 135.1 t/s
- Intel Arc Pro A60 12GBTernary (Q2_0) · 297.1 t/s
- Intel Arc Pro A50 6GBTernary (Q2_0) · 189 t/s
- Intel Arc Pro A40 6GBTernary (Q2_0) · 189 t/s
- Intel Data Center GPU Max 1550Ternary (Q2_0) · 521.9 t/s
- Intel Data Center GPU Max 1100Ternary (Q2_0) · 436.3 t/s
- Intel Arc 140V (32GB)Ternary (Q2_0) · 146.3 t/s
- Intel Arc 140V (16GB)Ternary (Q2_0) · 146.3 t/s
- Intel Arc 130V (16GB)Ternary (Q2_0) · 146.3 t/s
Plus 1 GPU that runs it with CPU offload (slower)
- CPU only (system RAM)Ternary (Q2_0) · 61.5 t/s
No GPU? Rent an RTX 3080 10GB from $0.17/hr ↗
Prices as of Oct 13, 2026. Rates change; check RunPod for current pricing. Affiliate link: CanItRun may earn a commission. Doesn't affect the fit calculation above.
Notes
Third-party ternary requantization of Qwen3.5-2B by PrismML, same architecture, not a retrain, and part of the Bonsai 2 small-model release of 15 October 2026 (2B, 4B, 9B). Doesn't use the standard FP32-Q2_K ladder shown for other models; it ships as three fixed packings of the same ternary weights (see the quantization table on this page): PTQ1_0 and PQ2_0 need PrismML's own llama.cpp fork, while Q2_0 runs on upstream llama.cpp b11555 or newer. File sizes are the language model only; the Q8_0 vision projector adds 0.36 GB. GPQA Diamond and IFEval are PrismML's own measurements of this build in its in-house harness, not independently verified.
Compare Bonsai 2 2B with other models
How to run Bonsai 2 2B locally
PrismML's llama.cpp fork (PQ2_0 packing, PrismML's own sampling)
./llama-server -m Ternary-Bonsai-2-2B-PQ2_0.gguf \
--mmproj Ternary-Bonsai-2-2B-mmproj-Q8_0.gguf \
-ngl 99 -fa on -c 32768 --jinja --port 8080 \
--temp 1.0 --top-p 0.95 --top-k 20 --min-p 0 \
--presence-penalty 1.0 --repeat-penalty 1.0 --repeat-last-n 64llama.cpp
# Build PrismML's llama.cpp fork (needed for PTQ1_0 and PQ2_0; Q2_0 also runs on upstream b11555+)
git clone https://github.com/PrismML-Eng/llama.cpp && cd llama.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON # drop the flag on macOS (Metal is default)
cmake --build build -j
# Download the weights and the Q8_0 vision projector (not the BF16 one, it can crash llama-server under concurrent image requests)
hf download prism-ml/Ternary-Bonsai-2-2B-gguf Ternary-Bonsai-2-2B-PQ2_0.gguf Ternary-Bonsai-2-2B-mmproj-Q8_0.gguf --local-dir .
# The Q2_0 file also loads on upstream llama.cpp b11555+ and, per PrismML's model card, through Ollama:
ollama run hf.co/prism-ml/Ternary-Bonsai-2-2B-gguf:Q2_0LM Studio: Stock LM Studio bundles upstream llama.cpp, so only the Q2_0 file (0.55 GB) is a candidate and it needs a runtime based on llama.cpp b11555 or newer; PTQ1_0 and PQ2_0 will be rejected. On Apple Silicon the MLX build (prism-ml/Ternary-Bonsai-2-2B-mlx-2bit, 1.34 GB on disk) is the other supported route.
Why this quantization? PQ2_0 is the packing PrismML's own run commands use: 0.52 GB of weights and 0.7 GB in total at 8k context, against 0.43 GB (0.6 GB total) for the denser PTQ1_0 file that needs the same fork. Q2_0 (0.55 GB, 0.7 GB total) is the one to pick if you want stock upstream llama.cpp, Ollama or Docker Model Runner. All three hold the same ternary weights, so the choice is file size against runtime support. The 2B has no MTP variant or drafter. Set -c explicitly: the full 262,144-token window adds 3.2 GB of KV cache, many times the weights.
Who is Bonsai 2 2B for?
Anyone running a language model somewhere memory is genuinely scarce: wearables, phones, microcontroller-class Linux boards, or as a tiny always-resident helper next to something much bigger.
Best for
- Fast on-device instruction following, formatting and extraction (PrismML reports up to 120 tok/s on an iPhone 18 Pro Max)
- Simple tool calling and routing, where a tiny model decides which bigger one to call
- Lightweight image captioning through the Q8_0 vision projector (the projector is 0.36 GB, almost as large as the weights)
- A draft or triage model in front of a larger one
Not ideal for
- Knowledge and reasoning: PrismML's own GPQA Diamond is 39.6 against 58.48 for full-precision Qwen3.5-2B
- Document-heavy vision tasks (Omni_doc 55.64 vs 71.78)
- Anything that needs claims independently verified; released the same day this page was written
What is the 2B actually for?
It is for places where nothing bigger fits: wearables, phones, or a helper that sits permanently in memory next to a larger model. It needs only 0.52 GB of weights and 0.7 GB in total at 8k context, and PrismML's own numbers show instruction following and simple tool calling holding up (IFEval 85.77, BFCLv3 60.53 vs 62.06 for the base). It is the wrong tool for knowledge or reasoning questions, where PrismML's own GPQA Diamond is 39.6. If a few hundred megabytes of extra weights are available, the 4B is a much stronger model for 1.15 GB.
Frequently asked questions
- What are the VRAM requirements for Bonsai 2 2B?
- Bonsai 2 2B doesn't use the standard quantization ladder; it ships as 3 fixed builds: Ternary (PTQ1_0) (0.6 GB), Ternary (PQ2_0) (0.7 GB), and Ternary (Q2_0) (0.7 GB). These figures assume 8k of context; VRAM scales linearly with context length due to the KV cache.
- How many parameters does Bonsai 2 2B have?
- Bonsai 2 2B has 2 billion parameters.
- What quantization levels does Bonsai 2 2B come in?
- Bonsai 2 2B skips the usual FP16-to-Q2_K ladder entirely. It's only available as: Ternary (PTQ1_0) at 1.83 bits/weight (0.6 GB total); Ternary (PQ2_0) at 2.2 bits/weight (0.7 GB total); Ternary (Q2_0) at 2.33 bits/weight (0.7 GB total).
- Can Bonsai 2 2B run on a small GPU?
- Yes. The Ternary (PTQ1_0) build needs only 0.6 GB, which fits on most 8 GB+ GPUs, entry-level Apple Silicon, and even high-end phones per the vendor's own claims.
- What GPU do I need to run Bonsai 2 2B locally?
- Every build is small enough for almost any GPU released in the last several years. The Ternary (Q2_0) build (0.7 GB) needs a bit more headroom for better quality, but all of them fit comfortably on an 8 GB card or larger.
- Can I run Bonsai 2 2B in the cloud?
- Yes. The cheapest RunPod setup we found that holds Bonsai 2 2B entirely in GPU memory at 8k context is 1× RTX 3080 10GB at Ternary (Q2_0), at roughly 414.4 tokens per second and from $0.17 per hour for the whole pod. Prices as of Oct 13, 2026; RunPod rates change, so check their pricing page for the current figure.
- Which Bonsai 2 2B file should I download?
- The PQ2_0 file (0.52 GB) is the default in PrismML's docs and needs PrismML's llama.cpp fork, as does the smaller PTQ1_0 (0.43 GB, the 'as small as 0.43GB' headline figure). Q2_0 (0.55 GB) runs on stock upstream llama.cpp b11555 or newer, and PrismML's model card points Ollama and Docker Model Runner at it. All three hold the same ternary weights.
- Does the 2B have vision and thinking mode?
- Yes to both: it takes image input through a separate 0.36 GB Q8_0 projector file, and like the rest of the Qwen3.5 family it thinks by default. PrismML recommends allowing at least 8,192 output tokens with thinking on, and switching thinking off for short answers.