Yes, just — 0.5 GB spare
Muse Glimmer 30B at Q4_K_M fits your M2 · 24 GB entirely in unified memory at 8K context, at an estimated 3.3 tokens per second. Past 44K the KV cache pushes it over — quantise the cache to q8_0, or step down a quantisation, to go longer.
Meta's first open weights since Llama 4: a dense 30B distilled from Muse Spark for always-on local agents. Two KV heads keep the cache small.
The VRAM budget
Quantisation ladder
| Quant | Weights | Total @ 8K | Max context | Tok/s | Quality | Fit |
|---|---|---|---|---|---|---|
| Q8_0 | 29.5 GB | 30.3 GB | — | ~1.9 | −0.1% ppl | 12.3 GB over |
| Q6_K | 22.8 GB | 23.5 GB | — | ~2.5 | −0.4% ppl | 5.5 GB over |
| Q5_K_M | 19.7 GB | 20.4 GB | — | ~2.8 | −0.8% ppl | 2.4 GB over |
| Q4_K_M | 16.8 GB | 17.5 GB | 44K | 3.3 | −1.9% ppl | Recommended |
| Q3_K_M | 13.6 GB | 14.3 GB | 128K | 4.1 | −5.4% ppl | Long context |
| Q2_K | 11.6 GB | 12.4 GB | 128K | 4.8 | −15% ppl | Long context |
Quality is the published perplexity delta against f16 weights. Max context assumes an f16 KV cache; q8_0 roughly doubles it. This model interleaves sliding-window layers (2048 tokens, 13 of 52 layers global), which is why its cache barely grows with context.
How to run it
$ pip install mlx-lm $ mlx_lm.generate --model mlx-community/Muse-Glimmer-30B-4bit \ --max-tokens 512 --prompt "Hello"
Apple's own array framework. The fastest path on Apple Silicon. More on MLX.