Get Started
Choosing a Tool
These are not interchangeable — they sit at different layers. Picking the wrong one for your goal is the most common beginner mistake.
| Tool | What it is | Best for |
|---|---|---|
| Ollama | A Go application wrapping llama.cpp (or Apple's MLX on Apple Silicon) behind a Docker-style CLI and REST API | Fastest path from zero to a running model; best default for individual developers |
| llama.cpp | The underlying C++ inference engine itself — no wrapper, every parameter exposed | Maximum control, custom quantization, unusual hardware (Raspberry Pi to multi-GPU) |
| LM Studio | A desktop GUI app, also built on llama.cpp/MLX | Non-terminal users who want a chat window and model browser |
| vLLM | A Python-based, GPU-focused serving engine using PagedAttention and continuous batching | Serving many concurrent users at high throughput — production, not solo laptop use |
| Hugging Face transformers | A Python library for loading and running virtually any model in its original (safetensors) form | Research, custom pipelines, fine-tuning, Python-level control over the forward pass |
Rule of thumb for 2026
If you're one developer on a laptop or workstation, start with Ollama (Tutorial 1). If you outgrow its abstraction or need a parameter it doesn't expose, drop to llama.cpp directly (Tutorial 2). If you're deploying a service many people will hit concurrently, use vLLM on a GPU server (Tutorial 4).
Direct
llama.cpp typically runs 10–20% faster than Ollama on identical hardware since Ollama adds a management layer, while vLLM can hit roughly 15–20x Ollama's concurrent throughput on multi-user GPU workloads — a difference that only matters once you have multiple simultaneous users.