APIUp to 28% cheaper than official pricesTry the API →
Hermes
Back to News

Prism ML Squeezes a 2B Vision Model Into 0.52 GB

Prism ML released Ternary-Bonsai-2-2B-gguf , a 2B vision-language model with ternary weights. Language model fits in ~0.52 GB, down from ~3.8 GB at FP16, via PTQ1_0, PQ2_0 or Q2_0 packings. Derived from Qwen3.5-2B with hybrid 3:1 linear/full attention and a 262K-token context window.

Prism ML Squeezes a 2B Vision Model Into 0.52 GB
Source
PrismML
Published
Author
PrismML
Read
2 min read

Takeaways

  • Prism ML released Ternary-Bonsai-2-2B-gguf , a 2B vision-language model with ternary weights.
  • Language model fits in ~0.52 GB, down from ~3.8 GB at FP16, via PTQ1_0, PQ2_0 or Q2_0 packings.
  • Derived from Qwen3.5-2B with hybrid 3:1 linear/full attention and a 262K-token context window.
  • Vision comes through an optional 0.36 GB Q8_0 mmproj file, loaded only when images arrive.
  • Requires the PrismML llama.cpp fork ; only the Q2_0 file runs on upstream llama.cpp b11556+.
  • Apache 2.0 licensed, targets on-device agents on phones, laptops, smart glasses and WebGPU.

Prism ML has released Ternary-Bonsai-2-2B as GGUF downloads for llama.cpp. The model compresses most transformer weights to three values and reduces the language-model file from roughly 3.8 GB at FP16 to 0.52 GB in the default packing. Compatible builds can run it through CUDA, Metal, or CPU backends, making the release relevant to developers building local multimodal tools under tight storage and memory limits.

Three values replace FP16 weights

Each quantized transformer weight becomes -1 , 0 , or +1 . This ternary representation is often called 1.58-bit quantization because three possible states contain about 1.58 bits of information. Actual files require additional metadata, so their effective storage cost is higher.

The quantization covers embeddings, attention projections, MLP projections, and the tied language-model head. Each group stores an FP16 scale that restores an approximate magnitude during matrix multiplication. Normalization weights and the linear-attention state path remain in F32 to reduce numerical instability.

A blockwise Hadamard rotation changes the basis in which the weights are stored. The runtime applies the corresponding transform to activations during inference, which explains why these files require explicit support in llama.cpp rather than a generic low-bit loader.

Choose the packing for the runtime

The three downloads contain the same ternary weights but use different storage and unpacking layouts. GGUF packages model weights and metadata in the format consumed by llama.cpp.

PackingSizeEffective densityRuntime supportBest fit
PTQ1_00.43 GBAbout 1.83 bits per weightPrism ML forkLowest storage and weight-memory use
PQ2_00.52 GB

Reporting is indexed from AlphaSignal. Rights remain with the original publisher and cited sources.

Read original report

Sources

  1. 01huggingface.co
  2. 02mindstudio.ai
  3. 03prismml.com
  4. 04github.com