Yes, just — 0.3 GB spare
Phi-4 14B at Q4_K_M fits your M1 · 16 GB entirely in unified memory at 8K context, at an estimated 4.6 tokens per second. Past 9K the KV cache pushes it over — quantise the cache to q8_0, or step down a quantisation, to go longer.
Fully in unified memory
8K context
Q4_K_M · 8.3 GB
MIT
Released Dec 2024
Trained heavily on synthetic reasoning data. Short 16K window is its main limitation.
The VRAM budget
weights 8.3 GB
Weights 8.3 GB
KV cache @ 8K 1.56 GB
Runtime overhead 0.6 GB
Free 0.3 GB of 10.7 GB
Quantisation ladder
| Quant | Weights | Total @ 8K | Max context | Tok/s | Quality | Fit |
|---|---|---|---|---|---|---|
| F16 | 27.4 GB | 29.5 GB | — | ~1.4 | Reference | 18.8 GB over |
| Q8_0 | 14.5 GB | 16.7 GB | — | ~2.6 | −0.1% ppl | 6.0 GB over |
| Q6_K | 11.2 GB | 13.4 GB | — | ~3.4 | −0.4% ppl | 2.7 GB over |
| Q5_K_M | 9.7 GB | 11.9 GB | 2K | ~3.9 | −0.8% ppl | 1.2 GB over |
| Q4_K_M | 8.3 GB | 10.4 GB | 9K | 4.6 | −1.9% ppl | Recommended |
| Q3_K_M | 6.7 GB | 8.9 GB | 16K | 5.7 | −5.4% ppl | Fits |
| Q2_K | 5.7 GB | 7.9 GB | 16K | 6.6 | −15% ppl | Fits |
Quality is the published perplexity delta against f16 weights. Max context assumes an f16 KV cache; q8_0 roughly doubles it.
How to run it
$ pip install mlx-lm $ mlx_lm.generate --model mlx-community/phi-4-4bit \ --max-tokens 512 --prompt "Hello"
Apple's own array framework. The fastest path on Apple Silicon. More on MLX.
01Download is 8.3 GB. Keep it on an SSD — a first load off a spinning disk takes minutes.
02macOS caps what the GPU may wire down at about 10.7 GB of 16 GB. Raising it with iogpu.wired_limit_mb is possible, and risky.
03Only 0.3 GB is spare, so a long system prompt can still push it over. Its real ceiling here is 9K context.