In this post
Start with memory, not the tool
A model is mostly a large table of numbers called weights. The memory they need is roughly the number of parameters times the bytes stored per weight. A 7-billion-parameter model at 16-bit precision needs about 14 GB for weights alone. At 4-bit precision it needs about 3.5 GB. Add room for the context (the conversation the model is holding) and for the runtime itself.
So the first question is never which tool, but whether the model you want fits in the memory you have. Quantization, which stores weights at lower precision, is how large models are made to fit. Formats such as GGUF carry quantized weights in one file.
The three starting points
| Tool | What it is | Best for | Watch out for |
|---|---|---|---|
| Ollama | A packaged runner: one command downloads a model and serves it, with a local HTTP API. | A laptop or single workstation; trying models quickly; developers building a prototype. | Less control over scheduling and batching than a dedicated serving engine. |
| llama.cpp | A C/C++ inference engine that reads GGUF files and runs on CPU, on GPU, and on Apple Silicon. | Constrained or mixed hardware; fine control over quantization and offloading. | You assemble more of the surrounding system yourself. |
| vLLM | A serving engine for GPUs, built for many concurrent requests, with an OpenAI-compatible API. | A shared team service on server GPUs where throughput matters. | It expects a capable GPU; it is not the tool for a laptop. |
A sensible path
- Write down the task and the smallest model that might do it. Smaller models are cheaper to run and often enough.
- Try it on a workstation with Ollama or llama.cpp. Measure the answer quality on your own examples, not on a leaderboard.
- Decide how many people will use it at once. One user and fifty users are different engineering problems.
- If many users share it, move to a serving engine such as vLLM on server GPUs, and put it behind your normal authentication and logging.
- Plan updates: models, runtimes and drivers all change, and a local deployment is yours to patch.
What “private” does and does not cover
Keeping inference local removes the third-party provider from the data path. It does not by itself secure the system. You still need access control, logging, network isolation and a plan for what the model is allowed to read. Treat the model server like any other service that touches sensitive data.
Sources and further reading
- llama.cpp project. github.com/ggml-org/llama.cpp. Read 26 October 2026.
- vLLM project documentation. docs.vllm.ai. Read 26 October 2026.
- Ollama documentation. ollama.com. Read 26 October 2026.
IICTP is a new independent credential and is not ISO/IEC 17024 accredited.