Unified memory · Apple
What AI models can an Apple M4 16GB run?
16 GB covers almost everything people actually use day to day, including the 24B to 32B class that most reviewers consider the practical ceiling for a single consumer card. Memory is shared with the CPU, so the practical ceiling is lower than the sticker number: macOS hands roughly three quarters of it to the GPU by default.
The short answer
Assuming an 8k context window and default settings, these are the models worth downloading first.
Best all-rounder
DeepSeek Coder V2 Lite Instruct
Q4_K_M · 9.5 GB · about 52.6 tokens/s
Best for code
DeepSeek Coder 6.7B Instruct
Q6_K · 9.7 GB · about 10.2 tokens/s
Largest that still runs well
GPT OSS 20B
20.91B parameters · Q3_K_M · about 49 tokens/s
Fastest useful answer
PowerMoE 3B
about 68.3 tokens/s · 4.23 GB
See how fast it feels
Apple M4 16GB running DeepSeek Coder V2 Lite Instruct at Q4_K_M
YouWhy does my model use more memory when the conversation gets longer?
Because of the KV cache. Every token you send leaves behind a key and a value vector in each layer of the model, and those stay in memory for as long as the conversation lasts.
The weights are a fixed cost: load a 4-bit 8B model and that is about 4.8 GB, whether you write one word or ten thousand. The cache is the part that grows, and it grows in a straight line with the number of tokens in the window.
How steeply depends on the model's attention design. With grouped-query attention, several query heads share one key-value pair, which cuts the cache by that ratio. Without it, every head keeps its own, and a long context can cost more memory than the weights themselves.
If you are short on memory, the first thing to try is lowering the context window in your runtime, not the quantisation.
Reading your question
Simulated from our estimate at a 512-token question, not a recording. Assumes nothing else is competing for the GPU.
Every model, scored on this device
Each row uses the highest-quality quantisation that both fits and stays conversational. Speed is a single-stream estimate at 8k context.
| Model | Params | Verdict | Download | Memory used | Speed | Max context |
|---|---|---|---|---|---|---|
| DeepSeek Coder V2 Lite Instruct DeepSeek | 15.71B (2.74B active) | Runs great | Q4_K_M | 9.5 GB | 52.6 t/s | 32k |
| Qwen1.5 MoE A2.7B Qwen | 14.32B (2.69B active) | Just fits | Q4_K_M | 9.98 GB | 31.1 t/s | 8k |
| GPT OSS 20B GPT-OSS | 20.91B (4.18B active) | Just fits | Q3_K_M | 10 GB | 49 t/s | 32k |
| LFM2.5 8B A1B Liquid | 8.47B (1.57B active) | Runs great | Q8_0 | 9.18 GB | 48.5 t/s | 32k |
| OLMoE 1B 7B 0125 Instruct OLMo | 6.92B (1.28B active) | Runs great | Q8_0 | 8.27 GB | 41.3 t/s | 4k |
| Gemma 4 12B Instruct Gemma | 11.96B | Runs well | Q5_K_M | 8.83 GB | 11.3 t/s | 64k |
| vLLM Translategemma 12B Instruct Gemma | 13.19B | Runs well | Q5_K_M | 9.65 GB | 10.3 t/s | 32k |
| Gemma 3 12B Instruct Gemma | 12.19B | Runs well | Q5_K_M | 9.42 GB | 10.5 t/s | 16k |
| Mistral Nemo Instruct 2407 Mistral | 12.25B | Just fits | Q5_K_M | 9.98 GB | 10 t/s | 8k |
| Qwen3.5 9B Qwen | 9.65B | Runs well | Q6_K | 8.92 GB | 11.2 t/s | 16k |
| Qwen3 14B Qwen | 14.77B | Runs well | IQ4_XS | 9.17 GB | 10.9 t/s | 8k |
| Granite 4.1 8B Granite | 8.79B | Runs well | Q6_K | 8.51 GB | 11.8 t/s | 16k |
| Qwen2.5 14B Instruct Qwen | 14.77B | Runs well | IQ4_XS | 9.42 GB | 10.6 t/s | 8k |
| Gemma 2 9B Instruct Gemma | 9.24B | Runs well | Q6_K | 8.89 GB | 11.2 t/s | 8k |
| Phi 4 Phi | 14.66B | Runs well | IQ4_XS | 9.43 GB | 10.6 t/s | 8k |
| Fanar 1 9B Instruct Fanar | 8.78B | Runs well | Q6_K | 8.54 GB | 11.7 t/s | 4k |
| Gemma 4 E4B Instruct Gemma | 8B | Runs well | Q8_0 | 8.42 GB | 11.8 t/s | 64k |
| Gemma 4 E2B Instruct Gemma | 5.12B | Runs well | Q8_0 | 5.48 GB | 18.4 t/s | 128k |
| Internlm3 8B Instruct InternLM | 8.8B | Runs well | Q8_0 | 9.63 GB | 10.3 t/s | 16k |
| Qwen2.5 VL 7B Instruct Qwen | 8.29B | Runs well | Q8_0 | 9.16 GB | 10.8 t/s | 16k |
| Qwen2.5 7B Instruct Qwen | 7.62B | Runs well | Q8_0 | 8.5 GB | 11.7 t/s | 32k |
| Llama 3.1 8B Instruct Llama | 8.03B | Runs well | Q8_0 | 9.5 GB | 10.5 t/s | 8k |
| Llama 3 Taiwan 8B Instruct Llama | 8.03B | Runs well | Q8_0 | 9.5 GB | 10.5 t/s | 8k |
| Apertus 8B Instruct 2509 Apertus | 8.05B | Runs well | Q8_0 | 9.52 GB | 10.4 t/s | 8k |
| Mistral 7B Instruct V0.3 Mistral | 7.25B | Runs well | Q8_0 | 8.72 GB | 11.5 t/s | 16k |
| Mistral 7B Instruct V0.2 Mistral | 7.24B | Runs well | Q8_0 | 8.71 GB | 11.5 t/s | 16k |
| Qwen3 8B Qwen | 8.19B | Just fits | Q8_0 | 9.78 GB | 10.1 t/s | 8k |
| T Lite Instruct 2.1 T-Lite | 8.19B | Just fits | Q8_0 | 9.78 GB | 10.1 t/s | 8k |
| Granite 3.0 8B Instruct Granite | 8.17B | Just fits | Q8_0 | 9.88 GB | 10 t/s | 4k |
| Gemma 3 4B Instruct Gemma | 4.3B | Runs well | Q8_0 | 5.01 GB | 20.6 t/s | 128k |
| Qwen3.5 4B Qwen | 4.66B | Runs well | Q8_0 | 6.07 GB | 16.7 t/s | 32k |
| OLMo 3 7B Instruct OLMo | 7.3B | Just fits | Q8_0 | 9.77 GB | 10.1 t/s | 32k |
| Agents A1 4B Other | 4.54B | Runs well | Q8_0 | 5.95 GB | 17 t/s | 32k |
| Gemma 4 26B A4B Instruct Gemma | 25.81B | Just fits | IQ3_XXS ! | 9.9 GB | 9.9 t/s | 32k |
| Phi 3 Mini 4k Instruct Phi | 3.82B | Runs well | Q8_0 | 5.02 GB | 20.7 t/s | 4k |
| DeepSeek Coder 7B Instruct V1.5 DeepSeek | 6.91B | Runs well | Q6_K | 9.58 GB | 10.4 t/s | 4k |
| Phi 4 Mini Instruct Phi | 3.84B | Runs well | Q8_0 | 5.29 GB | 19.5 t/s | 32k |
| Qwen1.5 7B Qwen | 7.72B | Runs well | Q5_K_M | 9.66 GB | 10.3 t/s | 8k |
| Qwen3 4B Qwen | 4.02B | Runs well | Q8_0 | 5.56 GB | 18.3 t/s | 32k |
| CodeLlama 7B Llama | 6.74B | Runs well | Q6_K | 9.7 GB | 10.2 t/s | 8k |
| DeepSeek Coder 6.7B Instruct DeepSeek | 6.74B | Runs well | Q6_K | 9.7 GB | 10.2 t/s | 8k |
| Mistral Small 24B Instruct 2501 Mistral | 23.57B | Just fits | IQ3_XXS ! | 10.26 GB | 9.7 t/s | 8k |
| Falcon 7B Falcon | 7.22B | Just fits | Q5_K_M | 9.8 GB | 10.2 t/s | 8k |
| Codestral 22B V0.1 Mistral | 22.25B | Just fits | IQ3_XXS ! | 10.35 GB | 9.7 t/s | 8k |
| Granite 4.1 3B Granite | 3.4B | Runs well | Q8_0 | 4.45 GB | 23.5 t/s | 64k |
| PowerMoE 3B PowerLM | 3.37B (0.88B active) | Runs great | Q8_0 | 4.23 GB | 68.3 t/s | 4k |
| Llama 3.2 3B Instruct Llama | 3.21B | Runs well | Q8_0 | 4.54 GB | 23.1 t/s | 32k |
| Qwen3.5 35B A3B Qwen | 35.95B (2.9B active) | Runs great | IQ2_XXS ! | 9.67 GB | 70.9 t/s | 16k |
| Qwen2.5 3B Instruct Qwen | 3.09B | Runs great | Q8_0 | 3.77 GB | 28 t/s | 32k |
| SmolLM3 3B Base SmolLM | 3.08B | Runs great | Q8_0 | 4.04 GB | 25.9 t/s | 64k |
| Starcoder2 3B StarCoder | 3.03B | Runs great | Q8_0 | 3.6 GB | 30 t/s | 16k |
| Phi 3 Vision 128k Instruct Phi | 4.15B | Runs well | Q8_0 | 7.59 GB | 13.2 t/s | 8k |
| GLM 4.7 Flash GLM | 31.22B (3.66B active) | Runs great | IQ2_XXS ! | 8.33 GB | 72.5 t/s | 32k |
| Qwen3 30B A3B Qwen | 30.53B (3.34B active) | Runs great | IQ2_XXS ! | 8.5 GB | 60.3 t/s | 16k |
| PowerLM 3B PowerLM | 3.51B | Runs well | Q8_0 | 6.73 GB | 14.9 t/s | 4k |
| LFM2.5 2.6B Liquid | 2.7B | Runs great | Q8_0 | 3.57 GB | 29.8 t/s | 64k |
| Gemma 2 2B Instruct Gemma | 2.61B | Runs great | Q8_0 | 3.43 GB | 31.3 t/s | 8k |
| Phi 2 Phi | 2.78B | Runs well | Q8_0 | 5.71 GB | 17.8 t/s | 2k |
| Qwen3.5 2B Qwen | 2.27B | Runs great | Q8_0 | 3.05 GB | 35.7 t/s | 128k |
| OneRec 1.7B Other | 2.13B | Runs great | Q8_0 | 3.41 GB | 31.4 t/s | 32k |
| Qwen3 1.7B Qwen | 2.03B | Runs great | Q8_0 | 3.31 GB | 32.5 t/s | 32k |
| Gemma 4 31B Instruct Gemma | 31.27B | Runs well | IQ2_XXS ! | 9.07 GB | 11.1 t/s | 32k |
| Gemma 3 27B Instruct Gemma | 27.43B | Runs well | IQ2_XXS ! | 8.29 GB | 12.2 t/s | 16k |
| OTel 2.0 LLM 31B Instruct Other | 32.11B | Runs well | IQ2_XXS ! | 9.27 GB | 10.8 t/s | 32k |
| Qwen3.5 27B Qwen | 27.78B | Runs well | IQ2_XXS ! | 9.28 GB | 10.8 t/s | 8k |
| Granite 4.1 30B Granite | 28.87B | Runs well | IQ2_XXS ! | 9.47 GB | 10.5 t/s | 8k |
| Qwen3 32B Qwen | 32.76B | Just fits | IQ2_XXS ! | 10.47 GB | 9.5 t/s | 8k |
| Qwen2.5 32B Instruct Qwen | 32.76B | Just fits | IQ2_XXS ! | 10.47 GB | 9.5 t/s | 8k |
| DeepSeek R1 Distill Qwen 1.5B Qwen | 1.78B | Runs great | Q8_0 | 2.27 GB | 50 t/s | 128k |
| Qwen3 1.7B Base Qwen | 1.72B | Runs great | Q8_0 | 3 GB | 36.3 t/s | 32k |
| SmolLM2 1.7B SmolLM | 1.71B | Runs great | Q8_0 | 3.62 GB | 29.3 t/s | 8k |
| Qwen2.5 1.5B Instruct Qwen | 1.54B | Runs great | Q8_0 | 2.14 GB | 53.7 t/s | 32k |
| Pythia 1.4B Pythia | 1.52B | Runs great | Q8_0 | 3.43 GB | 31.2 t/s | 2k |
| OLMo 2 0425 1B OLMo | 1.48B | Runs great | Q8_0 | 2.89 GB | 38 t/s | 4k |
| Llama 3.2 1B Instruct Llama | 1.24B | Runs great | Q8_0 | 1.9 GB | 63.4 t/s | 128k |
| OLMo 2 1124 13B Instruct OLMo | 13.72B | Just fits | IQ2_XXS ! | 10.15 GB | 9.8 t/s | 4k |
| LFM2.5 1.2B Instruct Liquid | 1.17B | Runs great | Q8_0 | 1.83 GB | 66.5 t/s | 64k |
| TinyLlama 1.1B Chat V1.0 Llama | 1.1B | Runs great | Q8_0 | 1.69 GB | 74.3 t/s | 2k |
| MiniCPM5 1B MiniCPM | 1.08B | Runs great | Q8_0 | 1.65 GB | 74.5 t/s | 128k |
| Gemma 3 1B Instruct Gemma | 1B | Runs great | Q8_0 | 1.41 GB | 90.1 t/s | 32k |
| Qwen3.5 0.8B Qwen | 0.87B | Runs great | Q8_0 | 1.6 GB | 75.7 t/s | 128k |
| Sarashina2.2 0.5B Instruct V0.1 Sarashina | 0.79B | Runs great | Q8_0 | 1.63 GB | 74.9 t/s | 8k |
| Qwen3 0.6B Qwen | 0.75B | Runs great | Q8_0 | 1.98 GB | 57.9 t/s | 32k |
| Qwen1.5 0.5B Chat Qwen | 0.62B | Runs great | Q8_0 | 1.73 GB | 68.6 t/s | 32k |
| Qwen3 0.6B Base Qwen | 0.6B | Runs great | Q8_0 | 1.83 GB | 63.7 t/s | 32k |
| Pythia 410m Pythia | 0.51B | Runs great | Q8_0 | 1.62 GB | 74.6 t/s | 2k |
| H2o Danube3 500m Chat Danube | 0.51B | Runs great | Q8_0 | 1.27 GB | 106.4 t/s | 8k |
| Qwen2.5 0.5B Instruct Qwen | 0.49B | Runs great | Q8_0 | 0.93 GB | 161.8 t/s | 32k |
| SmolLM2 360M SmolLM | 0.36B | Runs great | Q8_0 | 1.03 GB | 140 t/s | 8k |
| LFM2.5 350M Liquid | 0.35B | Runs great | Q8_0 | 0.96 GB | 157 t/s | 64k |
Showing the 90 best results of 133. The remaining 43 need more memory than this device has, at any quantisation.
What it will not run
37 of the 133 architectures we track are out of reach here, even at two-bit precision.
If you want more headroom
The next steps up in memory, in order. More memory changes which models load at all; more bandwidth changes how fast they answer, so the two are worth weighing separately.
| Device | Memory | Bandwidth | Models that fit | |
|---|---|---|---|---|
| Radeon RX 7900 XT | 20 GB | 800 GB/s | 100 | Check price |
| GeForce RTX 4090 | 24 GB | 1008 GB/s | 105 | Check price |
| GeForce RTX 3090 Ti | 24 GB | 1008 GB/s | 105 | Check price |
| Radeon RX 7900 XTX | 24 GB | 960 GB/s | 105 | Check price |
Price links go to an Amazon search for the model name and are affiliate links: if you buy through one, we earn a commission at no cost to you. We do not take payment for placement, and the ordering above is by memory capacity alone.
Other devices with 16 GB
Same capacity, different speed. Once a model fits, bandwidth is what separates these.