local intelligence

will it local

Best local LLMs for the Apple M4

14.0GB · Apple M4

120 GB/s (LPDDR5X-7500); 16GB base — 8B Q4 fits with headroom (6.1GB of 14GB usable), the first base-Mac where 8B is fully workable; ~18-23 tok/s across three cited rows (23 / 18.15 measured, ~20 estimated). M4 Mac mini = default budget recommendation for Apple-side 8B inference.

Shared-memory device — speed scales with RAM bandwidth (120.0 GB/s shared RAM), usable for inference ≈ 14.0 GB of 16 GB system RAM

explore the full catalogupgrade paths with live prices · what fits on each machine

Speed

computed band 19.0-23.0 tok/s for 8B Q4_K_M (roofline, 120.0 GB/s shared RAM); community: 23 tok/s llama3.1 8B Q4_K_M (Ollama/Metal, https://www.kunalganglani.com/llm-benchmarks); community: 18.15 tok/s llama3.1 8B Q5_K_M (Ollama/Metal, https://www.reddit.com/r/LocalLLaMA/comments/1gnefmi/mac_mini_m4_16gb_test_results/); community: ~20 tok/s 8B Q4_K_M (aggregated estimate, https://llmcheck.net/benchmarks)

Effective decode window: 0.80–1.00 of 120 GB/s nominal → ~96–120 GB/s effective (llama.cpp decode, Q4_K_M basis; arch window, community-calibrated; nominal is LPDDR/JEDEC channel arithmetic (shared memory))

note: optimized engines (MLX / MTP / speculative decode) measured ×1.3–1.9 over the base stack on 8B-class — a note, not a second band. ollama.com · reddit.com · genie.devoxx.com

What fits (computed)

13b-q4 tight 14.6 of 14 GB usable — barely over; real with q8 KV cache (halves KV) or shorter context

3b-q4 full 2.8 GB needed of 14 GB usable — headroom for context

4b-q4 full 3.7 GB needed of 14 GB usable — headroom for context

8b-q4 full 6.1 GB needed of 14 GB usable — headroom for context

Cited community benches (3 rows)

→ 23 tok/s · Llama 3.1 8B Q4_K_M Ollama/Metal · source

→ 18.15 tok/s · Llama 3.1 8B Q5_K_M Ollama/Metal (primary run) · source

→ ~20 tok/s · 8B Q4_K_M aggregated estimate · source

Runs fully in memory (machine alternatives)

Nominal bandwidth: 120.0 GB/s shared memory — see the effective decode window above

qwen3:0.6b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 0.6B · 0.6GB · needs ~1GB (4k ctx)

qwen3:1.7b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 1.7B · 1.4GB · needs ~1.8GB (4k ctx)

qwen3:4b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 4B · 2.6GB · needs ~3.2GB (4k ctx)

llama3.2:1b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 1B · 1.3GB · needs ~1.4GB (4k ctx)

llama3.2:3b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 3B · 2.0GB · needs ~2.4GB (4k ctx)

gemma3:1b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 1B · 1.0GB · needs ~1.1GB (4k ctx)

phi4:mini on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) mini 3.8B · 2.5GB · needs ~3GB (4k ctx)

moondream:2b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 2B · 1.7GB · needs ~3.7GB (4k ctx)

whisper:tiny on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) tiny · 0.1GB · needs ~2.1GB (4k ctx)

whisper on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) base · 0.3GB · needs ~2.3GB (4k ctx)

whisper:small on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) small · 0.9GB · needs ~2.9GB (4k ctx)

whisper:medium on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) medium · 3.1GB · needs ~5.1GB (4k ctx)

kokoro:82m on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 82M · 0.3GB · needs ~2.3GB (4k ctx)

gemma3:4b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 4B · 3.3GB · needs ~3.8GB (4k ctx)

deepseek-r1:7b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) distill 7B · 4.7GB · needs ~4.9GB (4k ctx)

mistral:7b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 7B · 4.1GB · needs ~4.6GB (4k ctx)

llava:7b on Raspberry Pi 5 + AI Kit (Hailo-8L) ($110) 7B · 4.7GB · needs ~6.7GB (4k ctx)

qwen3:8b on Tesla P100 (16GB, used) ($135) 8B · 5.2GB · needs ~5.8GB (4k ctx)

qwen2.5vl:7b on Tesla P100 (16GB, used) ($135) 7B · 5.6GB · needs ~5.8GB (4k ctx)

llama3.1:8b on Tesla P100 (16GB, used) ($135) 8B · 4.9GB · needs ~5.4GB (4k ctx)

deepseek-r1:8b on Tesla P100 (16GB, used) ($135) distill 8B · 4.9GB · needs ~5.4GB (4k ctx)

whisper:large-v3 on Tesla P100 (16GB, used) ($135) large-v3 · 6.2GB · needs ~8.2GB (4k ctx)

mistral-nemo:12b on Tesla P100 (16GB, used) ($135) 12B · 7.1GB · needs ~7.7GB (4k ctx)

sdxl on Tesla P100 (16GB, used) ($135) SDXL base · 6.9GB · needs ~8.9GB (4k ctx)

llava:13b on Tesla P100 (16GB, used) ($135) 13B · 8.0GB · needs ~11.1GB (4k ctx)

gemma3:12b on Tesla P100 (16GB, used) ($135) 12B · 8.1GB · needs ~9.6GB (4k ctx)

qwen3:14b on Tesla P100 (16GB, used) ($135) 14B · 9.3GB · needs ~9.9GB (4k ctx)

deepseek-r1:14b on Tesla P100 (16GB, used) ($135) distill 14B · 9.0GB · needs ~9.8GB (4k ctx)

phi4:14b on Tesla P100 (16GB, used) ($135) 14B · 9.1GB · needs ~9.9GB (4k ctx)

Borderline — runs, but offloads

→ gpt-oss:20b 20B MoE — 14.2 of 14 GB usable — barely over; real with q8 KV cache (halves KV) or shorter context

→ devstral:24b 24B — 15.2 GB vs 14 GB usable — partial CPU offload, expect large speed loss

Gotchas

⚠ 120 GB/s (LPDDR5X-7500); 16GB base — 8B Q4 fits with headroom (6.1GB of 14GB usable), the first base-Mac where 8B is fully workable

⚠ 8B Q4 ~18-23 tok/s — three cited rows (23 measured / 18.15 measured / ~20 estimated)

⚠ M4 Mac mini = default budget recommendation for Apple-side 8B inference

Where to go next

2026-09-18 · ← full hardware catalog · fit = working set vs VRAM · speeds are community-reported, cited in our knowledge base