A 35B model on a Mac mini, using just 2.9 GiB of memory π
There's something special about running a capable language model on hardware you own: no API bill, no data leaving the house, just a small box on your desk doing the thinking. A paper that's currently #2 on Hugging Face's trending list takes that idea further than I expected: it runs a 35-billion-parameter model on a Mac mini at about 20 tokens per second while using under 3 GiB of memory.
The trick: leave the experts on the SSD
The paper is called The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction, and the system is named Edge0. It builds on a Mixture-of-Experts (MoE) model, Qwen3.6-35B-A3B. In an MoE, each token only uses a few "experts" per layer (here 4 out of 256 in each of 40 layers), so most of the weights sit idle at any given moment.
Edge0 takes that literally. The expert weights (quantized to int4) stay on the SSD and are streamed in only when needed. The clever part is a small prerouter: a tiny trained head per layer that predicts, one token ahead, which experts the next layer will need. That prediction becomes the routing, so there are no "misses", and reading from the SSD can run in parallel with the computation instead of stalling it.
To make up for the quality lost to int4 and the replaced routing, the authors add a small recovery LoRA, distilled from the full-precision model. A nice detail: they keep it as a separate adapter, because merging it into the weights and re-quantizing throws away most of its benefit.
The numbers
On a Mac mini M4 Pro with 24 GB:
- Edge0, 35B tier: 20.4 tokens/s decode with a peak of 2.9 GiB of memory.
- Plain mlx-lm with everything loaded in memory: 3.9 tokens/s at 18.2 GiB.
There's also an 8B tier that does 28 tokens/s in 1.5 GiB.
It isn't free. On the OpenCompass average the 35B tier scores 79.2 versus 83.2 for the full-precision model, and most of that gap is on AIME competition math. For everyday assistant and agent work that's a very reasonable trade for a 6x smaller memory footprint.
What I like most: the honesty
The paper is refreshingly clear about where the speedup actually comes from. On the 24 GB Mac mini, turning the prerouter off still gives 19.9 tokens/s, so on that machine the win mostly comes from the streaming engine itself. The prerouter really shines on a 16 GB MacBook M2, where the model can't fit in memory at all: there it adds roughly 80% more speed. That's the kind of ablation that makes me trust the rest of the results.
The limitations are spelled out too: one request at a time, a floor of about 44 ms per step for CPU-side graph building, and for now only an MLX backend, so Apple Silicon only. A CUDA version is described as an architecture question rather than a code question, which makes me hopeful for Linux homelab boxes with fast NVMe drives. π
Why this matters
For years, "how big a model can I run?" was mostly answered by "how much RAM or VRAM do you have?" Edge0 shows that for MoE models, a fast SSD plus smart prediction can stand in for a lot of that memory. The code is open and the models are on Hugging Face under Apache-2.0, so anyone with a recent Mac can try it today.
Big models on small machines, with an honest write-up: that's my favorite kind of progress.
Sources
- Paper on Hugging Face: huggingface.co/papers/2609.18063
- arXiv: arxiv.org/abs/2609.18063
- Code: github.com/Edge0-AI/Edge0
- Models: Edge0-35B-A3B-preview and Edge0-8B-A1B-preview
Reacties
Een reactie posten