大模型推理框架选型入门:Ollama、llama.cpp 与 vLLM 对比
一、三大框架的技术定位
1.1 三层架构视角
如果把 LLM 推理技术栈比作一座大厦,三个框架分别位于不同的楼层:
┌─────────────────────────────────────────────────────────────┐ │ 应用层(第 3 层) │ │ ┌─────────────┐ │ │ │ Ollama │ ← 一键式模型管理,类似 Docker 的体验 │ │ └─────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 推理引擎层(第 2 层) │ │ ┌─────────────┐ ┌─────────────────────────────────────┐ │ │ │ llama.cpp │ │ vLLM │ │ │ │ C++ 引擎 │ │ Python 推理服务平台 │ │ │ └─────────────┘ └─────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 硬件加速层(第 1 层) │ │ CUDA / Metal / ROCm / AVX512 │ └─────────────────────────────────────────────────────────────┘
核心区别一句话总结:
- Ollama:让开发者"开箱即用"的工具层
- llama.cpp:追求极致轻量的 C++ 推理引擎
- vLLM:面向生产的高吞吐推理服务平台
1.2 各框架的本质定位
| 维度 | Ollama | llama.cpp | vLLM |
|---|---|---|---|
| 本质 | 模型管理工具 | 推理引擎库 | 推理服务框架 |
| 设计目标 | 开发便捷 | 跨平台兼容 | 高吞吐服务化 |
| 核心用户 | 开发者/研究者 | 嵌入式工程师 | SRE/运维工程师 |
| 部署形态 | 单二进制文件 | 静态库/可执行文件 | Python 服务+API |
1.3 Ollama 的真相:llama.cpp 的封装层
很多开发者不知道的是,Ollama 底层调用的正是 llama.cpp:
Ollama CLI → Modelfile 解析 → GGUF 模型下载 → llama.cpp 推理引擎
这意味着:
- Ollama 的"简单"是有代价的——它隐藏了 llama.cpp 的精细调参能力
- 在高并发场景下,Ollama 的 HTTP 层成为瓶颈
- 生产环境建议绕过 Ollama,直接使用底层引擎

