Reviews 11 minute read

Ollama and four other local model runners, compared

I ran the same three jobs through five ways of serving an open-weight model on one homelab machine. Ollama is where most people should start; vLLM is where a team ends up.

Sample post. The structure, the licences and the feature columns are real; the setup times and speeds are illustrations, not measurements.

What I tested

Each runner served the same model to the same three jobs: a coding agent editing a small TypeScript repository, a script summarising 200 support emails, and three people chatting through one shared front end at once.

I installed each one from its own documentation on a clean VM with the GPU passed through, timed the setup from the first command to the first answer, and kept the notes on what the docs left out.

  • Setup: from a fresh Debian VM to a working API call.
  • API: whether an OpenAI-style client works with only the base URL changed.
  • Load: how each one behaves when three requests arrive together.
  • Upkeep: updating the runner and swapping a model without a rebuild.

Setting each one up

Ollama took one install script and ollama run with a model name. LM Studio is a desktop app, so on a headless VM it needs its command-line tool and a little patience. llama.cpp wants a build with the right GPU flags, and the server flags decide how many requests run in parallel.

vLLM installs with pip into a Python environment and expects weights in the Hugging Face layout. It was the slowest to get going and the best under load. LocalAI pulls a container image and maps models to backends through YAML files, which is flexible and one more place for a typo.

curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3.1:8b
curl http://localhost:11434/v1/chat/completions -d @request.json

Comparison table

The columns that decided the verdict. Setup time and speed are illustrations for this draft; the real post prints measured ones.

Five local model runners compared by licence, cost, interface, API, model formats, serving, setup time and speed
RunnerLicenceCostInterfaceOpenAI-style APIModel formatsSeveral users at onceSetup time, illustrativeTokens a second, illustrativeVerdict
OllamaMITFreeCommand line and a local APIYesGGUF, pulled from its own library or Hugging FaceQueues requests; a few in parallel6 min71Start here
LM StudioProprietary, free to useFreeDesktop app with a local serverYesGGUF; MLX on Apple siliconOne person at a desk4 min68Best for trying models by hand
llama.cpp serverMITFreeCommand line and an HTTP serverYesGGUFParallel slots, set at start25 min74For people who want every knob
vLLMApache 2.0FreePython server with an HTTP APIYesHugging Face weights, AWQ and GPTQContinuous batching for many users40 min62Pick it for a team
LocalAIMITFreeHTTP API with a web pageYesGGUF and others, through backendsDepends on the backend30 min66Wide, but more parts to break
Servers in an open rack, blue and yellow network cables tied along the side

Where each one fits

Ollama is the shortest path from nothing to a working local API. Its model library hides the file formats, and most tools that speak to OpenAI work with it by changing one URL.

LM Studio is the friendliest way to try models by hand on a laptop. Its licence is not open source, which matters if you plan to ship it inside something.

llama.cpp is the engine under several of the others. Run it directly when you want control over every setting and do not mind reading flags.

vLLM is built for serving many requests at once. If a whole team will share one GPU, start here and accept the longer setup.

LocalAI covers the most ground, including images and speech, at the cost of more moving parts.

Verdict

Install Ollama first. It will tell you within an afternoon whether local models are good enough for your work. If they are, and more than a few people need them, move the serving to vLLM and keep Ollama on the laptops.

See all posts