Mac mini M4 for local LLMs: which models fit?
On a Mac the GPU uses unified memory shared with macOS and your apps, so a 16 GB Mac mini cannot give 16 GB to a model. We assume about 72% is realistically usable (adjustable in the calculator), and there is no partial offload: the model either fits or it does not.
The table compares every Mac mini M4 and M4 Pro (2024) memory option at Q4_K_M with an 8K context. Memory bandwidth (120 GB/s on M4, 273 GB/s on M4 Pro per Apple’s tech specs) sets the generation speed, so the Pro is noticeably faster for the same model. The current Mac mini ships with M6 and M5 Pro chips in the same 16–64 GB memory range; they are available in the calculator.
Estimates with default assumptions: 10% runtime overhead, ~90% usable VRAM (~72% on Macs), FP16 KV cache, one sequence. Model data synced from Hugging Face on 2026-10-18. Methodology.
Which models fit each configuration (Q4_K_M, 8K context)
✓ = fits fully with ~72% of unified memory usable. Numbers are the total memory needed.
| Model | M4 (16 GB) | M4 (24 GB) | M4 (32 GB) | M4 Pro (24 GB) | M4 Pro (48 GB) | M4 Pro (64 GB) |
|---|---|---|---|---|---|---|
| Llama 3.2 1B Instruct1.08 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Llama 3.2 3B Instruct2.94 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Llama 3.1 8B Instruct6.04 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Llama 3.3 70B Instruct46.1 GB needed | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Qwen3 4B Instruct 25073.68 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3 8B6.28 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3 14B10.5 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3 32B22.2 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen3 30B-A3B Instruct 2507 (MoE)19.8 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen3 Coder 30B-A3B (MoE)19.8 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen2.5 7B Instruct5.24 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen2.5 Coder 32B Instruct22.3 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen2.5 72B Instruct51.1 GB needed | ✕ | ✕ | ✕ | ✕ | ✕ | ✕ |
| Qwen3.5 9B6.12 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen3.5 27B17.8 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen3.6 27B17.9 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen3.6 35B-A3B (MoE)23.0 GB needed | ✕ | ✕ | ✕ | ✕ | ✓ | ✓ |
| Qwen3.8 27B17.5 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Gemma 3 4B2.82 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemma 3 12B8.29 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemma 3 27B18.0 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Gemma 4 12B7.73 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemma 4 26B-A4B (MoE)17.8 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Gemma 4 31B20.2 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Mistral 7B Instruct v0.35.48 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Mistral Nemo 12B Instruct8.91 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Mistral Small 3.2 24B15.9 GB needed | ✕ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Devstral Small 2 24B15.9 GB needed | ✕ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Mixtral 8x7B Instruct (MoE)28.1 GB needed | ✕ | ✕ | ✕ | ✕ | ✓ | ✓ |
| Phi-4 14B10.7 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Phi-4 mini 3.8B3.55 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| DeepSeek R1 Distill Qwen 14B10.7 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| DeepSeek R1 Distill Qwen 32B22.3 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| GLM-4.7 Flash (MoE)19.2 GB needed | ✕ | ✕ | ✓ | ✕ | ✓ | ✓ |
| Qwen3.5 4B3.11 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen2.5 3B Instruct2.26 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qwen2.5 Coder 14B Instruct10.7 GB needed | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Try your own setup
Result
Fits fully
Qwen3 30B-A3B Instruct 2507 (MoE) · Q4_K_M · 8K → Mac with M4 Pro (48 GB). 14.8 GB of headroom.
| Component | Memory |
|---|---|
| Weightsactual GGUF file: Q4_K_M | 17.3 GB |
| KV cache8K tokens × 1 seq, F16 | 0.75 GB |
| Runtime overhead10% of weights | 1.73 GB |
| Total needed | 19.8 GB |
| Usable on your hardware72% of 48.0 GB | 34.6 GB |
- Mixture-of-experts: all experts must be in memory, so memory uses total parameters. Speed depends on active parameters.
Run it
Starting point, not a guarantee. Downloads the GGUF from Hugging Face.
llama-server -hf unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF:Q4_K_M -c 8192 -ngl 999OLLAMA_CONTEXT_LENGTH=8192 ollama serve
ollama run hf.co/unsloth/Qwen3-30B-A3B-Instruct-2507-GGUF:Q4_K_MModel details
- Parameters
- 30.5B (3.3B active)Derived from the BF16 GGUF size (61095803232 bytes / 2 bytes per weight), text model only
- Layers
- 48
- Attention
- Full attention (GQA)48× full (4 KV × 128)
- Max context
- 256K
- License
- apache-2.0
- Config source
- Qwen/Qwen3-30B-A3B-Instruct-2507synced 2026-10-18
Questions
Is 16 GB enough for local LLMs on a Mac mini?
For 7B–9B models, yes, even at higher quantizations. 14B models at Q4_K_M just fit at 8K context (about 10.5 GB of the ~11.5 GB usable), with little room for longer context or other apps. If local LLMs are a main use, 24 GB or more is the safer choice; 27B–32B models at Q4_K_M need the 32 GB or 48 GB configurations.
Should I use MLX or GGUF on a Mac?
Both work. MLX (via mlx-lm or LM Studio) is often faster on Apple Silicon; GGUF (llama.cpp, Ollama, LM Studio) has the widest model selection. Memory needs are similar at the same bit width — switch the format in the calculator to compare.
Can I let the GPU use more of the unified memory?
macOS limits how much memory the GPU can wire by default. Advanced users raise it with a sysctl setting, at the risk of starving the system. The calculator lets you set the usable percentage yourself.