Hacker News

Bonsai 27B: A 27B-Class Model that runs on a phone

130 points by xenova ago | 35 comments

kristianp |next [-]

Apparently Apple is "in talks" with the PrismML: https://www.cnbc.com/2026/07/14/apple-prismml-ai-compression...

simonw |next |previous [-]

The models themselves are showing up on Hugging Face here: https://huggingface.co/prism-ml/models

I've tried a couple in LM Studio - the GGUF one and the MLX one - but neither worked there. Anyone else get them to work? Might be that LM Studio needs to upgrade their llama.cpp or MLX engines first.

bansaltushar |root |parent |next [-]

Depending on which model you're running, you might need to use the custom forks.

Details are here -> https://github.com/PrismML-Eng/Bonsai-demo/blob/main/README....

trollbridge |root |parent |previous [-]

Didn't work for me in Unsloth, but it will probably be fixed in a day or two when the next batch of updates comes out.

sigbottle |next |previous [-]

What's the hiring space and business strategy around all of these smaller AI labs? Its really cool that people like these guys get paid to optimize models and give them out for free (open source). Do a lot of these labs have forward deployed engineers doing integrations with customers who want local models? Is there a general shift towards the local model crowd?

trollbridge |root |parent [-]

If you read to the bottom of the page, it says they're funded by a few people, and one of them is Samsung. I'm betting Samsung wants to be able to ship a capable AI system on a future model of their phone so they can compete with Apple.

doctoboggan |root |parent [-]

Agreed, and the prevailing wisdom now seems to be that unless you can release a truly frontier model, you might as well release yours as open source to undercut your competition.

liuliu |next |previous [-]

The problem, of course, is if you run the UD_Q2 variant (Unsloth) which does only post-training, the number is pretty close to 1-bit model here and the 5% drop in tool-call is significant than it suggests in real-life use cases.

liuliu |root |parent [-]

You also need to pay close attention to BFCLv3 multi-turn result, that helps you to get a sense how frequently these quants will be in a doom loop.

alvatech |next |previous [-]

TIL that 1 bit models are actually 1.58 bit with three values +1, 0 and -1

NitpickLawyer |root |parent |next [-]

There's two variants of this (or, as the joke goes, for very big values of bit):

Ternary Bonsai 27B uses ternary {−1, 0, +1} weights with FP16 group-wise scaling, giving a true 1.71 effective bits per weight.

1-bit Bonsai 27B uses binary {−1, +1} weights with the same group-wise scaling, giving 1.125 effective bits per weight.

PcChip |root |parent [-]

this is a really dumb question, but how is -1 represented?

is it a float? if so, how many bits is the float?

I've never heard of a bit ever having more than two possible values

zawaideh |root |parent |next [-]

It’s still a bit with only two possible values. But they add a scaling factor to a group of them (128 for example) which when you factor in, results in a fractional number of bits per parameter.

petu |root |parent |previous [-]

packing multiple trits together

e.g. 5 trits (243 states) into a byte gives 1.6 bits per trit: https://compilade.net/blog/ternary-packing

bensyverson |root |parent |previous [-]

Yeah, it's an unfortunate convention from the very first "1 bit" model. But to be clear, Bonsai comes in both ternary and actual 1-bit variants.

syntaxing |next |previous [-]

For those curious about their demo, I’m pretty sure it’s using Locally AI (iOS only) that lmstudio acquired/aquihired a couple months ago.

luckystarr |next |previous [-]

Tried it on Android and got "!!!!!!!!!!!!!" for answers.

gunalx |root |parent |next [-]

The qwen models really seem to have this as a failure mode, its so annoying having a proper trace ending up in !!!!!! Garbage.

verdverm |root |parent |previous [-]

That's what happens when you quant too hard. I'm working on quant strats and evals for the same underlying qwen 27b models.

When I saw 27b on a phone, I thought not fitting, big phone, or aggressive quant. NVFP4 still takes 27G before KV cache.

thomasjb |next |previous [-]

I've been watching and waiting for this, interested to see how smart it is, as it fits with my interest of getting the smartest possible model running in 10GB of VRAM (RTX3060 that has to drive 2 monitors and run an llm)

dakolli |root |parent [-]

start saving your money.

erwan577 |next |previous [-]

The KV-cache memory usage also seems remarkably frugal, even at the full context length. That could make this model particularly useful in multi-agent coding workflows.

I wish KV-cache memory usage and related optimizations were discussed more clearly in new model announcements and demos.

verdverm |root |parent [-]

quanting kv cache hurts attention / recall, and long-form tasks by proxy. Model families and sizes have different tolerances to quant ting different parts of the model, same for intended tasks.

syntaxing |next |previous [-]

I don’t know if the llama cpp implementation is wonky (and only supports the binary version) but it’s a lot slower than 35B-A3B @ Q4_KM + MTP with CPU offloading.

pulse7 |root |parent [-]

Most probably not optimized yet for this model...

erelong |next |previous [-]

I was trying Ornith 9B locally (it's up on Ollama) which claims:

> Ornith-1.0-9B, which can be easily deployed on edge devices, matches or exceeds the performance of much larger models such as Gemma 4-31B and Qwen 3.6 35B.

https://deep-reinforce.com/ornith_1_0.html

Only tried it so much so far; it did a little better than Qwen 9B

verdverm |root |parent |next [-]

Orinth was not impressive in my vibes testing, I just completed my first grid analysis with real evals on qwen 27b. I can now scale that grid analysis and intend to include the qwen 9b ftunes I've seen going around. They were actually a main motivation because so many claim this or that one is better, but very little in the way of evals

liuliu |root |parent |next |previous [-]

Note that 3.5 9B cannot do thinking (while 3.6 27B can, pretty effectively, quite verbosely).

gunalx |root |parent [-]

3.5 9B can do thinking. Its just disabled by default in its gguf chat template.

janalsncm |root |parent |previous [-]

Is that a 1-bit LLM? I don’t understand the connection with this article.

erelong |root |parent [-]

Oh, I don't actually know the difference if you want to explain it

The title says it's 27B grade running on a phone and what I was comparing it to in my mind was a model that runs at 35B grade that could presumably run on a phone "better"?

edit: I asked AI for the difference and understand a little better, thanks for the heads up to learn the difference between models... I think the thing was, although ornith was created for a specific agentic purpose, it was still outperforming a previous generalist model I had running locally (so in my mind I thought it was still a better local model) - I'd like to try bonsai out if I can figure out how to run it lol

xyzsparetimexyz |next |previous [-]

That's awesome. What's the largest model that could fit onto a single 16gb gpu at 1.125 effects bits per weight?

Catloafdev |root |parent [-]

Doing some naive math, the F16 filesize is ~53.8gb, the 1-bit version is ~3.8gb, about 7% of the original size. The F16 size is roughly 2x param count, so that gives a rough ballpark of ~110B.

Havoc |next |previous [-]

This must be some sort of unpublished app?

I can just see their image tool on the app store

Catloafdev |root |parent [-]

It's a LLM model, not a phone app.

Available on HuggingFace: https://huggingface.co/collections/prism-ml/bonsai-27b

pdfops |next |previous [-]

[dead]

ai_fry_ur_brain |previous [-]

[dead]