Imagine you only have 16GB of VRAM and still want 27B-class daily work on-box. You need usable speed, long documents that do not die on the wire, and tool calls that actually fire. This is not a single-file endorsement. It is a repeatable promote-to-default method.
Bottom line first
Only after short-task capability tied, long-context needles passed on a fair local path, and tool loops went green did we point the stable alias default at Ternary. Speed is a bonus, not the sole reason.
What this model is
The primary anchor is prism-ml/Ternary-Bonsai-2-27B-gguf. It is derived from Qwen3.8-27B with ternary g128 weights. The card ships two GGUF packs: PTQ1_0 at about 5.95 GB and PQ2_0 at about 7.21 GB. Our seat used PQ2_0 on a Prism-maintained llama.cpp server, not a stock Ollama drop-in tag.
Do you know why that distinction matters? Many “2-bit” labels hide a higher true average bit-width. Bonsai’s card stresses end-to-end ternary coverage, which is the real gap versus ordinary IQ2-family builds.
How the bakeoff stayed fair
The comparator was the same workstation’s Qwen3.8 dense daily model on the Ollama path. Thinking was off on both arms. Temperature and length knobs matched. VRAM was exclusive: stop the Ollama resident before Ternary, and the reverse. Like one centrifuge in a lab, not two motors fighting the same circuit.

Layers 0–1: smoke and functional gates
On smoke tasks Ternary generated around 33 tok/s versus about 22 tok/s on the comparator, roughly 1.5×. Functional gates used mechanical typist tasks (JSON contracts, bug fixes, Traditional Chinese technical prose, ultra-strict length packs) across 7 items. Pass/fail patterns matched exactly: 4 pass, 3 fail, same failure classes. Same exam paper, overlapping score curves, one student just finishes faster.
Layer 2: long-context needles
Hidden needles at 12k / 28k / 48k characters passed on both arms. Ternary wall-clock was often 1.4–2.2× faster. Stressing 80k / 120k still passed on the fair local path. The public reverse-proxy path returned HTTP 524 on the comparator at 120k. That is first-byte timeout on the channel, not “the model cannot read long docs.”
Task-shape layer: tool loops
Through an OpenAI-compatible proxy, morning-brief drafts, protocol cards, Chinese polish, bash tool calls, multi-turn write, and a strict JSON gate scored 9/9 green. Why add this layer? Short ties prove exam skill. They do not prove the daily agent plumbing connects.
When to try, when not to
Try it when you have a 16GB-class CUDA seat, will maintain a Prism runtime, need stable long context plus an OpenAI-shaped API, and can switch backends behind a stable alias.
Skip it when you expect stock Ollama create to just work, need Ollama and Ternary coresident on one card, treat a public-proxy 524 as a model death sentence, or send sensitive data to this workstation.
Decision and limits
As of 2026-09-19, clients pin default and the backend points at Ternary; the dense Ollama arm remains a switchable fallback. The study scope is still one 16GB card and one multi-layer day, not a public leaderboard. Limits include VRAM mutual exclusion, custom-kernel dependency, and long-horizon multi-file agents not yet used as the sole separator. On the fair local path the comparator can even win wall-clock on some 120k needles, so “always faster” is not a slogan we keep.