Revisiting local large language models — what’s new, what actually runs on 48 GB, and whether you can trust what they say.

A year ago, “run a serious LLM on your own machine” meant a noisy tower with a £1,500 graphics card and a lot of patience. In late 2026 it means a Mac mini that sits silently on your desk. We put one to the test — an Apple M4 Pro with 48 GB of unified memory — downloaded the current crop of open-weight models, and measured what they actually do. No cloud. No API key. No per-token bill. Everything below ran fully offline on a machine you could carry home in one hand.

Why bother running models locally?

Four reasons, and they all still hold:

The trade-off used to be capability. That gap has narrowed dramatically — which is the whole point of revisiting this now.

The one number that matters: unified memory

Here’s the thing most people get wrong about Apple Silicon for AI. On a normal PC, the model has to fit in your graphics card’s VRAM — usually 8–24 GB, and expensive to grow. On a Mac, the CPU and GPU share one pool of memory. So a 48 GB Mac mini effectively gives the GPU far more room than a consumer graphics card ever would.

The rule of thumb: at 4-bit quantization (the standard for local use), a model needs roughly 0.6 GB of memory per billion parameters. So:

Model sizeMemory neededFits in 48 GB?
14B~9 GBEasily
24–27B~14–17 GBComfortably
32B~20 GBComfortably — the sweet spot
70B~43 GBMarginal — it loads, but it’s tight
109B+ (MoE)~60 GB+No

Storage is the easy part: each model is downloaded once at roughly its in-memory size, and our full test set was about 100 GB — nothing on a modern SSD. Keep them on the internal drive, though: the whole model is read into memory on first use, so a slow external disk makes every “cold start” crawl.

The setup: two commands

brew install ollama
brew services start ollama

That’s it. Then ollama pull <model> downloads one, and ollama run <model> chats with it. Ollama handles the rest.

The models we tested

The local scene moved on in 2026. The names that mattered a year ago have been replaced:

The results

We gave every model the same prompt and measured generation speed on the M4 Pro. For context, comfortable reading speed is around 5 tokens/sec — so anything above that feels responsive.

ModelSizetokens/secFeel
Phi-4 14B9 GB24.9Instant
Mistral Small 24B14 GB16.8Very fast
Gemma 3 27B17 GB13.7Fast
DeepSeek-R1 32B19 GB11.8Comfortable, “thinks” first
Qwen3 32B20 GB11.6Comfortable

The pattern is exactly what the hardware predicts: smaller models run faster, and even the 32B “sweet spot” models generate text faster than you can read it. DeepSeek-R1 is the interesting one — it’s a reasoning model that works through a problem step-by-step before answering, so it produces far more tokens per request, but still at a comfortable pace.

Where 48 GB hits its wall

We deliberately tried to push past the sweet spot with Llama 3.3 70B. This is where the honesty comes in: a 70B model at 4-bit wants about 43 GB of memory. On a 48 GB machine, once you account for macOS and room for the conversation itself, you’re right at the edge — the model effectively wants the whole machine. In practice it tips into swapping to disk, where generation speed falls off a cliff (independent testing puts Llama 3.3 70B at roughly 8–12 tokens/sec on a 64 GB mini — and 48 GB has less headroom still).

The takeaway is clear: the sweet spot for a 48 GB Mac mini is 27–32B models. They’re fast, genuinely capable, and leave headroom. If a 70B-class model is your daily driver, buy 64 GB or more — and note that the newest 100B+ “mixture-of-experts” flagships (like Llama 4 Scout) don’t fit 48 GB at all, because they still need memory for every expert even though only a fraction runs at once.

But can you trust what it says?

Speed is the easy question. Here’s the harder one.

We gave all five models the same practical task — estimate the annual carbon a small woodland captures (150 oak trees plus two hectares of new native woodland) — and asked for a single number. The answers:

ModelIts answer
Gemma 3 27B7.7 tonnes CO₂/yr
Qwen3 32B8.5 tonnes CO₂/yr
Phi-4 14B12.6 tonnes CO₂/yr
Mistral Small 24B17.0 tonnes CO₂/yr
DeepSeek-R1 32B27.3 tonnes CO₂/yr

Same question, same five models — 7.7 to 27.3 tonnes, a 3.5× spread. Some couldn’t even keep their own arithmetic internally consistent.

This isn’t a knock on local models specifically — cloud models do it too. It’s the fundamental thing to understand about any LLM: it’s a brilliant reasoning engine, but a shaky source of facts. Ask it to recall a specific sequestration rate and it will confidently hand you a plausible-sounding number that’s often wrong.

The fix is not to train your own model — that’s expensive and usually the wrong tool. It’s RAG (retrieval-augmented generation): give the model the authoritative numbers at the moment it answers — your Woodland Carbon Code tables, your methodology, your species rates — and let it do only the arithmetic against fixed facts. Give it the facts; let it do the thinking. That single change collapses the 3.5× spread into one number you can actually trust.

That’s the real lesson from running these models locally: the model is the engine, your knowledge base is the fuel. Get that split right and a private, offline Mac mini becomes a genuinely useful tool — not just a fast one.

So — are local models good enough now?

Honestly? For a lot of real work, yes. The 27–32B models handle coding, summarizing, drafting, and agent-style tasks well. The remaining gap to the big cloud models (Claude, GPT) shows up on the hardest reasoning and very-long-context jobs — but for privacy, offline use, and zero marginal cost, a local model on a Mac mini is a genuinely practical tool, not a toy.

The quiet little box on the desk turns out to be a capable, private AI server. A year ago that sentence would have needed an asterisk. It doesn’t anymore.


Tested on a Mac mini (Apple M4 Pro, 48 GB unified memory, macOS 26) using Ollama. All models run fully offline.