MacBook Pro fans spin up to an audible whir. The chassis under the palm rest gets warm. A cursor blinks, and then text starts appearing at a pace you can read along with. This is what running a 31-billion-parameter language model on a 48GB M4 Pro looks like in mid-2026: it works, it is local, and it is slower than cloud APIs but fast enough to be useful. On our own 48 GB M4 Pro, Gemma 4 31B QAT generates at a median 11.0 tokens per second across twelve runs, recorded while testing LM Studio’s default context length.
The M4 Pro sits in an awkward spot for local LLM work. It has enough unified memory (24GB or 48GB) to load models that no consumer GPU with 16-24GB VRAM can touch, but its 273 GB/s memory bandwidth constrains how fast those models actually generate text. Memory bandwidth is the binding constraint for transformer inference: every token generated requires reading the full set of active weights from memory, so bandwidth directly sets the ceiling on tokens per second. This article sets out the token speeds we have measured ourselves on a 48 GB M4 Pro for Gemma 4 and Qwen 3.5, and what can be said about Llama 4 without a measurement.
What makes the M4 Pro different for local LLM inference?
Apple’s unified memory architecture is the reason the M4 Pro can run models that would need a multi-GPU workstation on the PC side. The CPU and GPU share a single pool of LPDDR5X memory over a 256-bit bus, which means a model’s weights never cross a PCIe bus and no host-to-device copy is needed. On an RTX 4090 with 24GB VRAM, a 31B model at Q4 quantization simply does not fit without CPU offloading that destroys throughput. On a 48GB M4 Pro, that same model loads entirely into unified memory and runs.
The tradeoff is bandwidth. The M4 Pro hits 273 GB/s, which is roughly half the M4 Max’s 546 GB/s and about a quarter of an RTX 4090’s 1,008 GB/s. Since decode speed in LLMs is memory-bandwidth-bound, not compute-bound, the M4 Pro’s narrower pipe is the bottleneck you feel in every response. A 14-core CPU and 20-core GPU provide enough compute for prefill (prompt processing), but token generation settles into a steady rhythm set by how fast weights can be fed through that 273 GB/s channel.
The 48GB M4 Pro configuration is the one that matters for large models. The 24GB variant can run 7B to 14B models comfortably but runs out of headroom for the 30B+ class models that define the current generation of open-weight releases.
How fast does Gemma 4 31B run at Q4 on M4 Pro 48GB?
Google’s Gemma 4 family, released April 2 2026 under Apache 2.0, includes a 31-billion-parameter dense flagship model that ranks among the top open-weight models on the Chatbot Arena leaderboard. Running it locally requires at least 24GB of available memory at Q4 quantization, making the 48GB M4 Pro the minimum practical configuration.
On our own 48 GB M4 Pro, Gemma 4 31B QAT at Q4_0 through LM Studio’s llama.cpp Metal backend generates at 10.3 to 11.5 tokens per second, and prompt processing runs at about 65 tokens per second, as measured in our prompt processing benchmark. That speed is readable-text pace, comfortable for interactive chat, noticeable for long-form generation.
Multi-Token Prediction (MTP) drafters could raise that speed. MTP is Google’s speculative decoding technique where a small drafter model predicts multiple tokens per forward pass. Google reported up to 2.8x speedups on Gemma 4 31B with MTP, though real-world gains depend on workload structure. Structured outputs like code and JSON see the largest improvements, while free-form generation sees smaller gains. No MTP measurement is included here, so treat Google’s figure as an upper bound rather than a guarantee.
The 26B MoE variant of Gemma 4 is a more practical choice for M4 Pro users. It activates only 3.8 billion of its 26 billion parameters per token, which means inference speed is closer to a 3B model than a 26B one.
What are Qwen 3.5 token speeds from 3B to 32B?
Alibaba’s Qwen 3.5 family was released in February 2026. We have measured two of its sizes on our own 48 GB M4 Pro, both as Q4_K_M GGUF builds in LM Studio, twelve runs each. Qwen 3.5 9B generated at a median 32.3 tokens per second, which is faster than human reading rate. The method is in our piece on LM Studio’s default context length.
The 27B dense model does not cleanly fit on the 24GB M4 Pro: it needs the 48GB config, where we measured it at a median 9.6 tokens per second, a little behind Gemma 4 31B’s 11.0 in the same test.
The Qwen 3.5 35B-A3B MoE variant, which activates only 3 billion parameters per token despite having 35 billion total, behaves like a small model on speed while delivering large-model quality. We have not measured it on the M4 Pro.
Our measurements above all use llama.cpp through LM Studio. MLX is the other main backend on Apple Silicon, a tradeoff we dig into in our Ollama vs MLX vs Jan comparison. Ollama 0.19 now includes an MLX preview backend for users who want the convenience of Ollama’s model management.
How fast is Llama 4 Scout on unified memory?
Meta’s Llama 4 family, released in April 2025 and updated through early 2026, uses Mixture of Experts architecture at scale. The two models relevant to local inference are Llama 4 Scout (109 billion total parameters, 17B active across 16 experts) and Llama 4 Maverick (approximately 400 billion total, 17B active across 128 experts). Maverick’s total footprint makes it impractical for M4 Pro. We have not measured Scout on the M4 Pro, so this section gives no speed for it.
Scout’s MoE design is key to its viability. Only 17 billion parameters activate per token, so inference speed tracks the 17B active set, not the 109B total. The remaining expert weights sit in memory as cold data but do not slow generation.
Llama 4 Maverick is a different story. Its 128 experts and approximately 400 billion total parameters require 100 GB or more even at aggressive quantization. No M4 Pro configuration can load it. Users who want Maverick need an M4 Max with 128GB or an M3 Ultra with 192GB+.
How do you pick a model by M4 Pro memory tier?
The M4 Pro comes in two memory configurations, and the choice between them determines which models you can run effectively. If you are still deciding which model to commit to, our guide to which local LLM to run in 2026 and our walkthrough on how to pick a local model for your RAM cover the wider tradeoffs.
24GB M4 Pro: Your practical ceiling is 14B dense models at Q4 quantization. Qwen 3.5 9B fits but leaves less headroom for context. Gemma 4 31B and Llama 4 Scout do not fit. The 24GB config is good for lightweight local LLM work but hits its ceiling quickly as model sizes increase.
48GB M4 Pro: This is the configuration that unlocks the current generation of frontier open-weight models. On our 48 GB machine, Qwen 3.5 9B generates at a median 32.3 tokens per second, Gemma 4 31B at 11.0 and Qwen 3.5 27B at 9.6. Gemma 4 31B dense is usable at that speed but feels slow. The 26B MoE variant, which activates 3.8 billion parameters per token, should suit interactive work better, though we have not measured it.
For users who primarily run 7B-14B models, the 24GB M4 Pro is sufficient and the extra memory rarely helps. For users who want to run 30B+ models, the 48GB M4 Pro is mandatory, and the M4 Max is worth the premium. The M4 Max has twice the M4 Pro’s memory bandwidth, 546 GB/s against 273 GB/s, which is the figure that sets decode speed on Gemma 4 31B, and it adds headroom for the 70B-class models that the M4 Pro cannot load at all.
There is a third route around the memory ceiling, which is extreme quantization rather than more bandwidth. On this same 48 GB M4 Pro we ran a 27B model from a 3.8 GB file, measured in our test of Bonsai 27B at 1-bit.
Since we ran these numbers, Ollama turned on multi-token prediction by default, which moves decode speed more than most of the settings measured here. Ollama MTP covers what it does and the Modelfile command that is missing from the documentation.
