01 · THE CASE
Three good reasons, and the limits nobody mentions.
A local model is worse than a frontier hosted model at almost every task. It is also the only option when the data cannot leave the machine — and that trade is worth understanding precisely rather than emotionally.
What local genuinely gives you
- The data does not leave. No terms of service, no retention policy, no question about training. For client material, medical notes, legal drafts or anything under an NDA, this is the whole argument.
- It works with no connection. On a plane, in a lab, on a site with no signal, or during an outage.
- No per-token cost and no rate limit. Bulk classification, batch summarisation and repeated experiments become free after the electricity.
- It cannot be deprecated underneath you. The model you saved works the same in two years. Hosted models change behaviour without notice.
What it does not give you
- Frontier reasoning. A model that fits in consumer VRAM is not competitive with the largest hosted models on hard reasoning, long-horizon coding or obscure knowledge. Expect a capable assistant, not a replacement.
- Speed on long context. Processing a large document is where consumer hardware feels slowest, and it is exactly what people want local models for.
- Fewer confident errors. Smaller models hallucinate more, not less. Local does not mean careful.
- A free lunch on RAM. Whatever the model occupies is memory your other work does not get.
02 · THE BUDGET
Memory decides everything. Here is the arithmetic.
Model size in billions of parameters, multiplied by the bytes per parameter your quantisation uses, plus room for the context window. That is the entire calculation.
| Model size | At 4-bit | At 8-bit | Realistic on |
|---|---|---|---|
| 3B | about 2 GB | about 3.5 GB | Any modern GPU, or CPU only |
| 7B to 8B | about 4.5 GB | about 8.5 GB | 8 GB VRAM comfortably; 16 GB RAM on CPU |
| 13B to 14B | about 8 GB | about 15 GB | 12 GB VRAM; slow but usable on CPU |
| 30B to 34B | about 19 GB | about 36 GB | 24 GB VRAM, or a unified-memory laptop |
| 70B | about 40 GB | about 75 GB | Two large GPUs, or 64 GB of unified memory, slowly |
Add headroom on top of every figure. The key-value cache for the context window grows with how much text you feed in, and a long context on a large model can consume several more gigabytes. A model that just fits with an empty context will fail halfway through a long document.
Quantisation, in one paragraph
Weights are stored at reduced precision so the model fits in less memory. Going from 16-bit to 8-bit is nearly free in quality. 8-bit to 4-bit is the sweet spot most people run: a small, usually acceptable quality loss for roughly half the memory. Below 4-bit, degradation becomes obvious — instruction-following slips first, then coherence on long outputs. A larger model at 4-bit generally beats a smaller model at 8-bit, which is the single most useful heuristic in this whole area.
GPU or CPU? A GPU is roughly an order of magnitude faster for generation. CPU inference is entirely usable for 3B to 8B models if you can accept reading speed rather than instant answers. Apple Silicon and other unified-memory designs are unusually good here, because the memory is shared and generous.
03 · THE TOOLS
Four ways to run the same model files.
| Tool | Shape | Best for | Trade-off |
|---|---|---|---|
| Ollama | Command line plus a local HTTP API | Developers. One command to pull and run, and an API other tools can target. | Less granular control than raw llama.cpp |
| LM Studio | Desktop application | Trying models, comparing them, and non-technical use. Model browser and chat built in. | Graphical workflow, heavier install |
| llama.cpp | The underlying engine | Maximum control over quantisation, offload and sampling. Runs anywhere. | You assemble the workflow yourself |
| Jan / GPT4All | Desktop applications | A private assistant for someone who does not want a terminal | Fewer knobs, slower to get new model formats |
All four run the same quantised model files, so the choice is about workflow rather than capability. A common arrangement is Ollama as the engine with a separate chat interface pointed at its API, which keeps the model server and the interface independent.
04 · THE WALKTHROUGH
From nothing to a working model in about ten minutes.
# Pull a model sized to your hardware and start chatting
ollama run llama3.1:8b
# List what you have downloaded, and how much space it uses
ollama list
# Remove one you no longer want
ollama rm llama3.1:8b
# Serve the local API for other tools to use
ollama serve
The API listens on localhost, which is what editor plugins, note apps and scripts connect to. Nothing leaves the machine.
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1:8b",
"prompt": "Summarise this in three bullet points: ...",
"stream": false
}'
Choosing a first model
- General assistant, 8 GB VRAM — a current 7B to 8B instruction-tuned model at 4-bit. This is the default answer and it is a good one.
- Code — a code-specialised model of the same size. Noticeably better at completion and refactoring than a general model of equal size.
- Small and fast — a 3B model for classification, extraction, tagging and other structured work where you do not need conversation.
- Best quality you can fit — go up in parameters before you go up in precision. Larger at 4-bit beats smaller at 8-bit.
Check the licence before you build on it. Open-weight is not the same as open-source, and several popular families restrict commercial use or impose conditions on derived models. This matters the moment a hobby project becomes a product.
05 · TUNING
Four settings that decide whether it feels usable.
- GPU layer offload. The most important setting on a machine where the model does not fully fit. Push as many layers onto the GPU as VRAM allows; the remainder runs on CPU. Going one layer too far causes an out-of-memory failure, so step down until it is stable.
- Context window. Larger contexts cost memory and slow down generation. Set it to what you actually need — 4K for chat, more only when you are genuinely feeding in documents.
- Batch size for prompt processing. Affects how quickly a long prompt is ingested, separately from how fast tokens come out. If pasting a large document feels slow but replies are fine, this is the setting.
- Quantisation level. If it does not fit, drop from 5-bit to 4-bit before you drop to a smaller model. Below 4-bit, prefer a smaller model instead.
Speed expectations
| Setup | 7B to 8B at 4-bit | Feels like |
|---|---|---|
| Modern discrete GPU, fully offloaded | Fast, well above reading speed | Comparable to a hosted chat interface |
| Older or smaller GPU, partial offload | Around reading speed | Usable for conversation, tedious for long output |
| CPU only, modern multi-core | Below reading speed | Fine for background and batch work, not for chat |
| Unified memory laptop | Comfortably above reading speed | The best experience per watt available today |
If generation is far slower than the table suggests, the model is almost certainly spilling out of VRAM into system memory. Check the layer offload before blaming the hardware — this one misconfiguration accounts for most disappointing first attempts.
06 · THE VERIFICATION
Prove the model runs without a network.
This is the step that separates a genuinely local setup from a local interface in front of a remote API. Do it once, deliberately.
Pull every model you intend to use while connected. Model files are the only thing that genuinely needs the network.
Turn off Wi-Fi and unplug the cable. Airplane mode is fine. Do not rely on a firewall rule for the test itself.
Not a one-word test. Ask for something long enough that a silent fallback to a remote service would fail visibly.
GPU or CPU utilisation should climb while it generates. If nothing moves locally, something else is answering.
Keeping it offline afterwards
- Block outbound network access for the runner in Windows Firewall once your models are downloaded. Update deliberately rather than automatically.
- Turn off telemetry and update checks in whichever tool you chose. Most have a switch; a few need a configuration file.
- Keep the model files backed up. They are large but not infinite, and a model that gets withdrawn or relicensed is unrecoverable if you did not keep a copy. The backup guide covers where they should live.
- Be careful with chat interfaces. Many desktop front-ends support both local and hosted providers, and switching is one dropdown away. Check which provider is selected before pasting anything sensitive.
The privacy claim is only as good as the weakest component. A local model behind a front-end that syncs your conversation history to a cloud account is not a private setup. Verify each piece separately.
07 · QUICK ANSWERS
Local models, briefly.
For a 7B to 8B model at 4-bit quantisation, about 4.5 GB of VRAM, so an 8 GB graphics card is comfortable. CPU-only inference works with around 16 GB of system RAM but generates below reading speed. Unified-memory machines such as Apple Silicon do unusually well because the memory is shared and generous.
No, not at the sizes that fit on consumer hardware. Expect a capable assistant for summarising, drafting, extraction and routine code work, and expect it to fall behind the largest hosted models on hard reasoning, long-horizon coding and obscure knowledge. The reason to run locally is privacy, offline availability and cost, not raw capability.
16-bit to 8-bit is nearly free. 8-bit to 4-bit costs a small, usually acceptable amount for roughly half the memory, which is why most people run 4-bit. Below 4-bit, degradation becomes obvious, starting with instruction-following. As a rule, a larger model at 4-bit beats a smaller model at 8-bit.
Ollama if you want a command line and a local API that other tools can call. LM Studio if you want a desktop application with a model browser and chat built in. llama.cpp directly if you want full control over quantisation and offload. All of them run the same model files, so the choice is about workflow.
Download the models while connected, then disconnect the network entirely and run a substantial prompt. Watch GPU or CPU utilisation climb as it generates. Afterwards, block outbound network access for the runner in the firewall and check that your chat front-end is not configured to fall back to a hosted provider.