Show HN: Maple-Preview – Ternary 20B MoE running at 120 tok/s on a iPhone
Posted by edwardbzhang 2 days ago
Comments
Comment by walrus01 2 days ago
"please write 250 words on the etymology and history of the word schlong"
The actual origin of the word is from middle high German and Yiddish-speaking Ashkenazi Jewish communities.
For comparison qwen 3.6 35B A3B does perfect on this and will give a solid description of the word's real origins and how it has made it into casual profanity/vulgarity as used in US English, and even mentions specific stand-up comedians and famous public figures of specific ethnic/religious origin in the US NE who introduced it into wider use.
Ask it for something that's not a narrow niche scientific or technical field, but something that would be less common to make it into a 20B size model, and see just how it does.
chat test link: https://chat.deepgrove.ai/
Comment by sajithdilshan 1 day ago
LLMs are kind of a compact knowledge box of its training data and it's understandable it would not have information about every topic and in that case just do a web search or a proper tool invocation to get the data and then synthesize.
Comment by miohtama 1 day ago
No one is going to compress human knowledge into few bits.
Comment by sajithdilshan 1 day ago
Comment by jasonjmcghee 1 day ago
Information can only be compressed so much
Comment by wolttam 1 day ago
And by then we’ll probably have been further surprised by just how much information and capacity for reasoning can be crammed into a few gigs of weights. Models just keep getting better for a given size, it’ll be interesting to see where the limit of that is.
Comment by brainless 2 days ago
Comment by HelloUsername 1 day ago
To me, the benefit of running small models is that they fit on your device exactly that you don't need any internet connection. It's all local and offline, so you can still consult for information in any scenario.
Comment by dofm 1 day ago
If you want it to know more things locally, you could hopefully distribute wikipedia or other appropriate large sources on a flash storage, properly pre-indexed, with a local tool API, and let it work its magic on that. Not least because that is as I understand it, considerably easier to incrementally update.
This is, without doubt, a very difficult target, not least because it is rather at odds with the way LLMs work on a crude level.
Comment by CTDOCodebases 1 day ago
It seems strange to me to expect a small model to answer everything correctly when every device that they are being used on support networking and knowledge is constantly evolving.
Comment by nl 1 day ago
Comment by unglaublich 1 day ago
Comment by em500 1 day ago
Comment by walrus01 2 days ago
It's also something I've seen has great results with esoteric individual pieces of knowledge that works fine in a Q6 or Q8 quantized LLM but breaks down in a bad way at worse quantization.
Comment by sznio 1 day ago
20b parameters * 1.5 bits per parameter is just 30 billion bits, about 3.75gb
a full 20b fp16 is about 40GB.
I find it weird how a smaller model still produces decent text, except it bullshits all the way.
Comment by nozzlegear 12 hours ago
Comment by spider-mario 1 day ago
Comment by hrmon 1 day ago
Models in this size range should aim for correct tool calling and avoiding hallucinations, not universal knowledge. (apparently they don't.)
Comment by api 2 days ago
Comment by getpokedagain 2 days ago
Comment by walrus01 2 days ago
Comment by boomlinde 1 day ago
Comment by johnsmith1840 2 days ago
I wonder if kids will do this to their parents.
Comment by thomastjeffery 1 day ago
An LLM continues the prompt it is given. What is more likely to come after a question? An answer, not an "oh sorry I'm not sure". Sure, you could make the latter more likely, but then the model would be unusable. Larger models simply contain more answers, more ways to stumble into them, and a granular enough geography to stay on the trail.
Comment by SwellJoe 1 day ago
I'm assuming that doesn't actually exist yet, though, as I don't see anything about an implementation in the code that's been released.
But, it's a really interesting idea for a personal model. There's a risk of more AI psychosis if these things actually start "learning", but the value of it is also probably pretty big. I'm not sure I buy it will actually be able to self-improve, though. The best models are helping improve themselves, but the best models are considerably smarter and more capable than this one. I've asked models like Gemma 4 31B to help figure out training and synthesizing data, and it mostly fails on anything more than categorization and summarization. This little model is much dumber than that.
So, I'm skeptical, but maybe there's deterministic tooling that can assist and maybe it will be scoped tightly enough to just learn and update facts and not so much try to retrain the whole thing.
Comment by arjie 2 days ago
Will give it a crack as a quick model in my clawlike.
Comment by sdiazthomas 2 days ago
The model is reliable at the semantic half. Give it the OCR text of a receipt and it correctly identifies the vendor and the date. What it does not do reliably is follow mechanical instructions. A user asked for dates formatted as TT-MM-JJJJ and got files literally named TT-MM-JJJJ, because it reproduced the format string instead of filling it in. Another asked for uppercase, and the model acknowledged the request in its reasoning and returned lowercase.
The failures were not consistent, which is worse than failing every time. You cannot tell users "this doesn't work", only "this works most of the time", and nobody accepts that from something touching their files.
What fixed it was moving the mechanical part out of the model entirely. The model decides what the document is about; ordinary deterministic code decides how the name is written. Every time I moved that line back toward the model, quality dropped.
Which is a version of your point: with a small model the win isn't making it smarter, it's shrinking what you make it responsible for.
Comment by beautiful_apple 2 days ago
I didn't notice the version difference when first reading the article! So this is a heads up to people like me.
Comment by ricardobeat 2 days ago
Comment by walrus01 2 days ago
Really basic stuff. But then again, the entire thing was running in <6GB of RAM.
But before anyone says 1-bit bonsai 27B beats anything, please actually run it and ask it some questions about topics you already know the answer to.
While Qwen 3.6 35B A3B in Q8 with full context capability (llama-server in no-mmap mode with 262k context will eat 47GB, so not comparable in size either) knows a great deal. The 35B-A3B can even translate multiple pages of English into Farsi and its Farsi output is not far off the quality of what Google Translate does.
I haven't tested something as badly quantized as 35B A3B Q2 which is somewhere around 12GB on disk. https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF
Comment by cmrx64 2 days ago
Comment by nxtfari 2 days ago
Comment by swiftcoder 1 day ago
It's also the aspect of LLMs that degrades fastest with quantisation. You can't reasonably expect accurate knowledge of everything in the world in a few gigabytes.
Which means that small models need to be conditioned to rely more heavily on tools to fetch accurate information, and ideally not try and generate facts purely based on their (extremely lossy) internal knowledge
Comment by seba_dos1 1 day ago
Comment by dofm 1 day ago
Mind you, because I am not that interested in long-context, fire-and-forget tasks, I think the faster MoE model has more value generally.
Comment by beautiful_apple 2 days ago
Looking at the chart on this website, Bonsai Qwen 3.6 27B has a lower average benchmark score than Qwen 3.5 35B-A3B (77.1 vs 82.9)
Comment by ricardobeat 1 day ago
Comment by kamranjon 2 days ago
Very excited to see how it performs, I’ve been a bit skeptical of the efficacy of converting existing models - really cool to see one trained from scratch in the ternary format.
Comment by momojo 2 days ago
Comment by hahahaa 2 days ago
Also I love AI sites. Fancy font, plain serious style, we "introduce" rather than "release". It's an AI not an animal after all.
Comment by vfalbor 1 day ago
Comment by jsphweid 2 days ago
Comment by netghost 2 days ago
It's definitely not going to replace a larger frontier model, but it's worth keeping an eye on.
Comment by Wowfunhappy 2 days ago
Comment by yujonglee 1 day ago
Comment by Havoc 2 days ago
...from very unscientific casual vibes it does seem pretty good though considering the speed
Would also be curious what their search tool backend looks like - that too is very fast for very rapid multiple searches
Comment by zooloo99 2 days ago
I probably could make up a bit of an incorrect carrot cake recipe if asked on the spot, but with a Google search I can give you something far more robust.
Maybe we don't need a 'country of geniuses' in our pocket, but more a helpful assistant that can reasonably reason!
Comment by strong-self 1 day ago
Comment by getcrunk 2 days ago
Comment by woadwarrior01 1 day ago
Comment by peter_d_sherman 1 day ago
matrix multiplication can be effectively replaced with additions
, lowering the total arithmetic workload needed to infer through a model."
Interesting! I never knew that before... I will have to do some more research on this, but yes, it definitely sounds possible!
(Also (and this is just a wild guess/hunch here!)
in theory, matrix multiplication could be replaced with pre-computed cached lookups from a lookup table in memory
if, if and only if the resultant pre-computed lookup table of result matrices could fit into memory available!
In other words, think of a Matrix not as a 2D array, but as a 1D string. Think of the Matrix multiply operation as first appending the 1D string of the first matrix to the 1D string of the second matrix, then using that string as a Key to look-up a precomputed result in Memory...
Of course, the limitation to this approach is the availability of memory relative to the permutations of input values... It could work -- but only for smaller matrices... which leads to another strange idea... in that set of pre-computed matrix permutations, there might be duplicates... figure out a way to put duplicates in memory only once (could use pointers or some other scheme to do this) and you could theoretically store more matrices in the same memory and/or slightly larger matrices!
Anyway, just rambling out loud! :-)
Remember, "almost all programming can be viewed as an exercise in caching" to quote the legendary programmer Terje Mathisen! :-) )
Anyway, great article!
Comment by zooloo99 2 days ago
Super cool and a taste of what's to come with local AI becoming more accessible to low-end hardware.
Comment by HenryNdubuaku 2 days ago
Comment by Baghramian11 2 days ago
Comment by praneel_patel 2 days ago
Comment by aatmo 2 days ago
Comment by tokenmunching 2 days ago