大模型推理框架选型入门:Ollama、llama.cpp 与 vLLM 对比
写在前面
随着大语言模型(LLM)的广泛应用,如何将模型高效地部署到生产环境成为每个 AI 工程师必须面对的问题。目前市面上主流的推理框架有 Ollama、llama.cpp 和 vLLM,但它们的技术定位、适用场景差异巨大。
很多开发者在选型时容易陷入误区:
- 用 Ollama 部署高并发 API 服务,结果吞吐量上不去
- 用 vLLM 跑边缘设备,发现资源占用过高
- 混淆 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:

