跳到主要內容

Ternary Bonsai:1.58-bit 量化、8B 模型壓進 1.75GB、iPhone 跑 27 tok/s——PrismML 把邊緣推論的極限又往前推

來源PrismML Blog

PrismML-Eng/Bonsai-demo on GitHub

8B 的模型,1.75GB。不是 quantized 之後掉一半分數的那種——benchmark 平均 75.5,在同參數規模裡只輸 Qwen3 8B,其他全贏,但記憶體佔用是它們的九分之一。

這是 PrismML 發布的 Ternary Bonsai,繼 1-bit Bonsai 之後的下一步:把精度從 1-bit 提升到 1.58-bit,用多出來的一點點空間換來明顯更好的分數。


什麼是 Ternary(三值)量化

標準量化是把 32-bit 或 16-bit 浮點數壓縮到較低精度(INT8、INT4)。Ternary 更激進:每個權重只能是 1 三個值之一

Loading diagram...

為什麼是 1.58-bit?因為 log₂(3) ≈ 1.58——三個狀態理論上需要 1.58 bit 才能完整表示。

技術細節:Ternary Bonsai 使用 group-wise quantization,每 128 個權重共享一個 FP16 scale factor。這個設計讓整個網路——embedding、attention、MLP、LM head——全部用 ternary 表示,沒有任何高精度的「逃生艙」。


數字

Benchmark 平均分比較(MMLU Redux、GSM8K、HumanEval+ 等)

記憶體佔用 GB 比較

幾個值得注意的數字:

  • 75.5 平均分,比 1-bit Bonsai 8B(70.5)提高了 5 分
  • 1.75GB vs 標準 16-bit 8B 的 16GB——9 倍差距
  • M4 Pro:82 tok/s,比 16-bit 版本快 5 倍
  • iPhone 17 Pro Max:27 tok/s,實際可用的速度
  • 能耗:M4 Pro 0.105 mWh/tok,iPhone 0.132 mWh/tok——比 16-bit 省 3-4 倍

三個尺寸

模型參數量記憶體
Ternary Bonsai 8B8B1.75 GB
Ternary Bonsai 4B4B~0.9 GB
Ternary Bonsai 1.7B1.7B~0.4 GB

全部 Apache 2.0,可商用。格式支援 GGUF(llama.cpp)和 MLX(Apple Silicon)。


怎麼跑

macOS(最快路徑):

git clone https://github.com/PrismML-Eng/Bonsai-demo.git
./setup.sh
./scripts/run_llama.sh -p "Your prompt"

setup.sh 會自動處理依賴、下載模型、取得 binary,不需要手動配置。

iOS:透過 Locally AI app(App Store)。

瀏覽器 demoHuggingFace Space(WebGPU),不需要安裝任何東西就能試。


和 1-bit Bonsai 的差別

Ternary 是 1-bit 的升級版,多了一個零值狀態。

這個差別比聽起來重要:零值允許稀疏表示,模型可以「不啟動」某些連接,讓注意力機制更有選擇性。代價是記憶體從 1.15GB 增加到 1.75GB,但換來的是 5 分的 benchmark 提升——這個交換在大多數部署場景下是值得的。


值得說清楚的事

Ternary Bonsai 不適合所有場景。 在純雲端推論、對品質要求極高的任務,或者記憶體不是瓶頸的環境,選標準精度模型更合理。

它的目標場景很明確:邊緣設備上的本地推論——手機、筆電、不想送資料到雲端的私有部署。在這個場景裡,75.5 分加上 1.75GB、27 tok/s 在手機上能跑,是一個目前很難找到競爭對手的組合。

1-bit Bonsai 建立了這條技術路線,Ternary 版本證明在極限壓縮的框架內還有優化空間。下一步是 4-bit 還是繼續在 1-2 bit 範圍精煉,PrismML 沒說——但這個 repo 值得持續追蹤。