Qwen3.6-27B Now Runs on an iPhone, at 1.125 Bits Per Weight

2 months ago

A twenty-seven-billion-parameter model just ran on an iPhone, at eleven tokens a second. It's Bonsai 27B, from Caltech spinout PrismML, and the weights are Apache-2.0.

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Qwen3.6-27B Now Runs on an iPhone, at 1.125 Bits Per Weight
  2. 0:10Qwen3.6-27B, converted post-hoc into two builds
  3. 0:28A pretrained 27B, converted to true 1-bit, every layer
  4. 0:43Ternary keeps 94.6% of full precision, in 5.9 GB
  5. 0:58The "2-bit" quant collapses on reasoning; Bonsai holds
  6. 1:17672 tokens per one percent of battery
  7. 1:24The fine print: PrismML's harness, PrismML's forks
  8. 1:46Apache-2.0, ungated, on Hugging Face now
Show transcript

Qwen3.6-27B Now Runs on an iPhone, at 1.125 Bits Per Weight

Qwen3.6-27B in 3.9 GB, running on an iPhone at ~11 tok/s
Bonsai 27B PrismML (Caltech spinout) Apache-2.0 text + vision 27B 262K context
PrismML whitepaper · July 2026

A twenty-seven-billion-parameter model just ran on an iPhone, at eleven tokens a second. It's Bonsai 27B, from Caltech spinout PrismML, and the weights are Apache-2.0.

Qwen3.6-27B, converted post-hoc into two builds

Ternary Bonsai 27B
1.71 bits/weight (true)
5.9 GB ideal · 7.2 GB deployed
laptop / GPU class
1-bit Bonsai 27B
1.125 bits/weight (true)
3.9 GB
iPhone 17 Pro Max · ~11 tok/s (MLX Swift)
iOS per-app budget ≈6 GB on a 12 GB phone → only the 1-bit build fits
The size isn't the story; what it kept is.
PrismML whitepaper · Tables 1, 8

The base is Alibaba's Qwen three-point-six twenty-seven B, converted after training into two builds. Ternary runs on laptops. The one-bit build is three point nine gigabytes, the only one that fits an iPhone seventeen Pro Max's per-app memory budget. The size isn't the story; what it kept is.

A pretrained 27B, converted to true 1-bit, every layer

language model end-to-end (embeddings, attention, MLP, LM head) · vision tower 4-bit HQQ
BitNet-line native 1-bit: from-scratch pretraining, never past ≈2B
"4-bit" Q4_K_XL 5.2 bpw · 17.6 GB
"2-bit" IQ2_XXS 2.8 bpw · 9.4 GB
Ternary Bonsai 27B 1.71 bpw · 5.9 GB
1-bit Bonsai 27B 1.125 bpw · 3.9 GB
Method: proprietary (Caltech IP) — shipped as weights + kernels + whitepaper
PrismML whitepaper · §2.3, Table 1

Nothing this big has run at true one bit before; the BitNet line needs from-scratch pretraining and stops around two billion parameters. Even the conventional two-bit quant really spends two point eight bits per weight. Bonsai converts every layer of the already-trained language model; the method stays proprietary.

Ternary keeps 94.6% of full precision, in 5.9 GB

vs its own FP16 base, not frontier models
Qwen3.6-27B FP16 16 bpw · 54 GB
85.07
Q4_K_XL "4-bit" 5.2 bpw · 17.6 GB
84.99
IQ2_XXS "2-bit" 2.8 bpw · 9.4 GB
72.73
85.5% of FP16
Ternary Bonsai 1.71 bpw · 5.9 GB
80.49
94.6% of FP16
1-bit Bonsai 1.125 bpw · 3.9 GB
76.11
89.5% of FP16
PrismML's own eval · identical harness, all models re-run · 15 thinking-mode benchmarks · EvalScope + vLLM, H100 · whitepaper Table 10

On PrismML's own identical-harness eval, fifteen thinking benchmarks, the ternary build keeps ninety-four point six percent of full precision in five point nine gigabytes. The conventional two-bit quant keeps eighty-five and a half percent, in nine point four gigabytes. That's smaller, and better.

The "2-bit" quant collapses on reasoning; Bonsai holds

MMLU-Redux barely moves — short-form tests mask the damage
AIME26
competition math, thinking mode
FP16 93.33
IQ2_XXS 57.50
Ternary 87.50
1-bit 87.08
LiveCodeBench
competitive coding, thinking mode
FP16 87.77
IQ2_XXS 56.40
Ternary 82.75
1-bit 76.40
MMLU-Redux
short-form knowledge — the mask
FP16 93.42
IQ2_XXS 88.93
Ternary 88.05
1-bit 82.75
same identical-harness eval, thinking mode · IQ2_XXS = 2.8 bpw true · whitepaper Table 14

The average hides where cheap quants die. On AIME twenty-six, same harness, the two-bit quant collapses to fifty-seven point five. Ternary Bonsai holds eighty-seven point five. Even the one-bit build holds eighty-seven. That same quant still scores eighty-nine on MMLU-Redux. A casual test would miss the damage.

672 tokens per one percent of battery

672
tokens per 1% of battery
≈67K
tokens per charge
10.82 tok/s
sustained (5.2-min run, mild throttle)
262K
context shipped
iPhone 17 Pro Max · 1-bit build · MLX Swift · whitepaper Tables 8, 16

On the phone it's not a stunt. One percent of battery buys six hundred and seventy-two tokens, about sixty-seven thousand on a full charge.

The fine print: PrismML's harness, PrismML's forks

All quality numbers are PrismML's own runs — every baseline re-run on one identical harness, but no third-party 27B eval yet
Retention is vs its own FP16 base (Qwen3.6-27B), not vs frontier models
Steepest cost: agentic / tool use — τ²-Bench 82.9 → 73.6 → 61.3 (FP16 → ternary → 1-bit); agentic coding not targeted this release
Runs only on PrismML's llama.cpp / MLX forks today — LM Studio fails
whitepaper §9 + Tables 11, 14 · community hands-on reports

Here's the fine print. Every quality number is PrismML's own run, baselines included, one harness; no third party has evaluated the twenty-seven B yet. The steepest cost is agentic tool use: tau-squared-Bench falls from eighty-three to sixty-one at one bit, and agentic coding isn't targeted. And today it runs only on PrismML's forks. LM Studio fails.

Apache-2.0, ungated, on Hugging Face now

If reasoning at 1.125 bits per weight survives independent evals, the deployment math for local AI changes.
Apache-2.0 (both builds + base)
huggingface.co/prism-ml/Bonsai-27B-gguf
huggingface.co/prism-ml/Ternary-Bonsai-27B-gguf
Together AI: ternary hosted free · whitepaper: github.com/PrismML-Eng/Bonsai-demo

Both builds are on Hugging Face, Apache-2.0, ungated. Together AI hosts the ternary free. If reasoning at one point one two five bits per weight survives independent evals, the deployment math for local AI just changed.

Up next

2:58

Apodex 1.1 mini · the same file, run alone and run as a team

@ai-ml-today · 1 month ago

3:09

Ornith-1.5 · an open model trained on problems it wrote for itself

@ai-ml-today · 1 month ago

3:08

MOSS-VL · an open 11B video model trained to decide, after every frame, whether to speak or stay silent

@ai-ml-today · 1 month ago

3:29

Qwen3.8-27B · a 27B open model anyone can download averages 84.3 across real desktop jobs on Qwen’s own run, and loses the widest row on its own card by nine points

@ai-ml-today · 1 month ago

3:15

MiLMMT-46-v1.0 · Xiaomi finished training an open translator on sentences that had no translation attached, and the scores it now leads on are produced by the two models that graded it

@ai-ml-today · 1 month ago

3:31

BDH-CQ — a 150M-parameter system that learns a puzzle rule from the worked examples in front of it and does its thinking as numbers, never as words

@ai-ml-today · 2 months ago

3:29

Muse Glimmer 30B, Meta’s open agent model, and the second tiny model that guesses sixteen words ahead so it runs fast on one consumer graphics card

@ai-ml-today · 2 months ago

3:05

JoyAI-Video-Edit, JD’s open 16B model that edits a video while the video is still playing, at about 30 frames a second on one Nvidia B200

@ai-ml-today · 2 months ago

3:26

Inkling-Small, Thinking Machines’ 12B-active / 276B open mixture-of-experts model that out-reasons its own 3.5× bigger flagship

@ai-ml-today · 2 months ago

3:42

Maple-Preview, DeepGrove’s 20-billion-parameter ternary reasoning model that runs on a Mac mini

@ai-ml-today · 2 months ago

3:16

Hunyuan3D-Buffalo, Tencent’s one model that builds, understands, and edits 3D from words

@ai-ml-today · 2 months ago

3:28

MiniMax H3, an open model that makes a video and its soundtrack in one pass

@ai-ml-today · 2 months ago