【2026最新】本地部署大模型该选哪个?Ollama / vLLM / llama.cpp 深度对比(附选型指南)
随着开源大模型的爆发式增长(Llama、Qwen、DeepSeek、Mistral……),越来越多的开发者开始在本地或私有服务器上部署 LLM。Ollama、vLLM、llama.cpp,我该用哪个?网上的文章要么只讲一个,要么比较得一笔带过。本文将从原理、性能、适用场景三个维度,给出一份真正能指导选型的深度对比。场景推荐方案个人本机玩模型Ollama,没有之一没有 GPU / CPU 部署lla
前言
随着开源大模型的爆发式增长(Llama、Qwen、DeepSeek、Mistral……),越来越多的开发者开始在本地或私有服务器上部署 LLM。
但摆在大家面前的第一个问题往往是:
Ollama、vLLM、llama.cpp,我该用哪个?
网上的文章要么只讲一个,要么比较得一笔带过。本文将从原理、性能、适用场景三个维度,给出一份真正能指导选型的深度对比。
一、三者的基本定位
在深入对比之前,先用一句话概括各自的核心定位:
| 框架 | 一句话定位 |
|---|---|
| llama.cpp | 极致轻量,CPU 也能跑,量化先驱 |
| Ollama | 傻瓜式体验,llama.cpp 套了个壳 |
| vLLM | 生产级推理,GPU 集群的不二之选 |
它们并非竞争关系,而是面向不同场景的工具。
二、llama.cpp —— 一切的起点
2.1 它是什么
llama.cpp 是由 Georgi Gerganov 用纯 C/C++ 实现的 LLM 推理引擎,最初为了在 MacBook 上跑 LLaMA 而生。
它最大的贡献是将 GGUF 量化格式 推向主流,让普通消费级硬件也能运行 7B~70B 的大模型。
2.2 核心优势
① 极低的硬件门槛
# 4-bit 量化后,内存占用大约是: Llama-3-8B-Q4_K_M ≈ 4.9 GB Qwen2.5-14B-Q4_K_M ≈ 8.7 GB Llama-3-70B-Q4_K_M ≈ 40 GB
一台普通笔记本、一块入门级显卡,甚至只用 CPU,都能跑起来。
② 混合推理(CPU + GPU)
当模型太大放不进显存时,llama.cpp 支持将部分层卸载到 CPU,其他层保留在 GPU:
# -ngl 参数控制 GPU 层数 ./llama-cli -m qwen2.5-14b-q4_k_m.gguf -ngl 35 -p "你好"
③ 跨平台,依赖极少
从树莓派到 Mac M 系列芯片,从 Windows 到 Linux,都能原生运行,无需 CUDA 环境。
2.3 核心劣势
-
并发性能弱:原生不支持高并发,多个请求排队处理
-
吞吐量有限:相比 vLLM,Token 生成速度差距明显
-
生态相对底层:直接用 llama.cpp 需要自己处理 API 封装
2.4 适合谁用
-
个人开发者、研究者在本机探索模型
-
边缘设备、嵌入式场景(IoT、机器人)
-
对 GPU 资源有严格限制的环境
三、Ollama —— 最佳新手体验
3.1 它是什么
Ollama 本质上是 llama.cpp 的高级封装,提供了类 Docker 的模型管理体验和开箱即用的 HTTP API。
你可以把它理解为:llama.cpp + 模型仓库 + REST API + 命令行工具 的一体化解决方案。
3.2 核心优势
① 安装极其简单
# macOS / Linux 一行安装 curl -fsSL https://ollama.com/install.sh | sh # Windows 直接下载安装包
② 模型管理像 Docker 一样直观
# 拉取模型 ollama pull llama3.2 ollama pull qwen2.5:14b ollama pull deepseek-r1:7b # 查看已下载模型 ollama list # 删除模型 ollama rm llama3.2
③ 内置兼容 OpenAI 格式的 API
# 直接用 OpenAI SDK 调用 Ollama,零改动迁移
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # 随便填
)
response = client.chat.completions.create(
model="qwen2.5:14b",
messages=[{"role": "user", "content": "介绍一下量子计算"}]
)
print(response.choices[0].message.content)
④ 支持 Modelfile 自定义
# Modelfile 示例:创建一个定制化的角色 FROM qwen2.5:7b SYSTEM """ 你是一个专业的 Python 编程助手,回答简洁有力, 代码示例优先,不废话。 """ PARAMETER temperature 0.3 PARAMETER top_p 0.9
ollama create my-coder -f Modelfile ollama run my-coder
3.3 核心劣势
-
性能天花板:继承了 llama.cpp 的并发限制,高负载下性能不佳
-
生产环境风险:不建议直接暴露给大量用户访问
-
GPU 利用率:相比 vLLM,GPU 利用率和吞吐量差距较大
3.4 适合谁用
-
个人开发、本地助手(搭配 Open WebUI、Cursor 等工具)
-
小团队内部使用(并发 < 10)
-
原型开发、快速验证想法
-
不想折腾环境配置的开发者
四、vLLM —— 生产级推理的标杆
4.1 它是什么
vLLM 是加州大学伯克利分校发布的高性能 LLM 推理框架,其核心创新是 PagedAttention 技术,专为高并发、高吞吐的生产场景设计。
4.2 核心技术:PagedAttention
传统推理引擎中,KV Cache(键值缓存)需要连续内存空间,导致大量内存碎片浪费。
vLLM 借鉴操作系统虚拟内存分页的思想,将 KV Cache 切分为固定大小的 Block 按需分配:
传统方式: [=====请求A=====][ 碎片 ][===请求B===][ 碎片 ] PagedAttention: [A块1][B块1][A块2][B块2][A块3] ← 几乎零碎片
效果:GPU 显存利用率提升 3~5 倍,吞吐量提升 2~4 倍。
4.3 核心优势
① 吞吐量碾压级领先
下表是同等硬件(A100 80GB)下的参考数据(Llama-3-8B):
| 框架 | 并发请求数 | Tokens/s(总吞吐) |
|---|---|---|
| llama.cpp | 1~4 | ~200 |
| Ollama | 1~8 | ~300 |
| vLLM | 100+ | ~3000+ |
注:实际数据因硬件、模型、配置差异较大,以上为量级参考。
② 连续批处理(Continuous Batching)
vLLM 会动态地将多个请求打包成一个批次处理,GPU 利用率接近满负荷,不浪费任何算力。
③ 开箱即用的 OpenAI 兼容 API 服务
# 一行启动 API 服务 python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2.5-14B-Instruct \ --tensor-parallel-size 2 \ # 多 GPU 张量并行 --max-model-len 32768
④ 多 GPU 并行支持
# 张量并行:模型切分到多张 GPU --tensor-parallel-size 4 # 4 卡张量并行 # 流水线并行:适合超大模型 --pipeline-parallel-size 2
⑤ 量化支持(AWQ / GPTQ / FP8)
# 使用 AWQ 量化模型,显存减半,精度损失极小 python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2.5-72B-Instruct-AWQ \ --quantization awq
4.4 核心劣势
-
硬件要求高:强烈建议 NVIDIA GPU,且显存越大越好
-
安装相对复杂:需要 CUDA 环境,依赖较多
-
CPU 支持有限:不适合无 GPU 环境
-
对小模型/低并发场景有点"杀鸡用牛刀"
4.5 适合谁用
-
需要支持大量并发用户的线上服务
-
企业私有化部署(内部问答、客服机器人等)
-
对推理延迟和吞吐量有明确 SLA 要求的场景
-
有 A100/H100/4090 等高端 GPU 资源
五、三者横向对比总览
| 对比维度 | llama.cpp | Ollama | vLLM |
|---|---|---|---|
| 上手难度 | 中 | ⭐ 极简 | 较复杂 |
| 硬件要求 | 极低(CPU 可用) | 低 | 高(GPU 必须) |
| 并发能力 | 弱 | 弱~中 | ⭐ 极强 |
| 吞吐量 | 低 | 低~中 | ⭐ 极高 |
| 显存利用率 | 中 | 中 | ⭐ 极高 |
| 量化支持 | ⭐ GGUF(最全) | GGUF | AWQ/GPTQ/FP8 |
| OpenAI API 兼容 | 需手动启动 | ⭐ 内置 | ⭐ 内置 |
| 多 GPU 支持 | 有限 | 有限 | ⭐ 完善 |
| Windows 支持 | ✅ | ✅ | ❌ 不推荐 |
| Mac 支持 | ✅ (Metal) | ✅ | ❌ |
| 生产可用性 | ❌ | ⚠️ 轻量场景 | ✅ |
| 社区活跃度 | 高 | 高 | 高 |
六、选型决策树
你的目标是什么? │ ├─ 个人本地使用 / 没有 GPU │ └─ → Ollama(或 llama.cpp 进阶玩法) │ ├─ 快速原型开发 / 小团队内部工具 │ └─ → Ollama(简单快捷) │ ├─ 需要支持高并发的线上服务 │ ├─ 有 NVIDIA GPU → vLLM │ └─ 没有 GPU → 考虑云端 API │ ├─ 边缘设备 / 嵌入式 / IoT │ └─ → llama.cpp(最轻量) │ └─ 追求极致性能 + 私有化部署 └─ → vLLM + 量化(AWQ/GPTQ)
七、实战:三者部署同一个模型
以部署 Qwen2.5-7B-Instruct 为例,对比三种方式:
7.1 llama.cpp
# 1. 编译 git clone https://github.com/ggerganov/llama.cpp cd llama.cpp && make -j$(nproc) GGML_CUDA=1 # 2. 下载 GGUF 模型(从 HuggingFace / ModelScope) # Qwen2.5-7B-Instruct-Q4_K_M.gguf # 3. 启动 API 服务 ./llama-server \ -m Qwen2.5-7B-Instruct-Q4_K_M.gguf \ --host 0.0.0.0 --port 8080 \ -ngl 99 # 全部层加载到 GPU
7.2 Ollama
# 1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 2. 一行拉取并运行
ollama run qwen2.5:7b
# 3. API 已自动启动在 11434 端口
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen2.5:7b","messages":[{"role":"user","content":"hello"}]}'
7.3 vLLM
# 1. 安装(需要 CUDA 12.x)
pip install vllm
# 2. 启动服务
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--max-model-len 16384
# 3. 调用(与 OpenAI SDK 完全兼容)
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"hello"}]}'
八、常见问题 FAQ
Q:Ollama 和 llama.cpp 有什么关系?
Ollama 的底层推理引擎就是 llama.cpp,它在其上封装了模型管理、API 服务、Modelfile 等功能。因此两者的推理性能基本相当,Ollama 更像是 llama.cpp 的"产品化版本"。
Q:vLLM 支持 CPU 推理吗?
官方不推荐,虽然有实验性支持,但性能极差。vLLM 的核心优化(PagedAttention、CUDA Kernel)都依赖 GPU,离开 GPU 没有意义。
Q:没有 NVIDIA GPU,能用 vLLM 吗?
vLLM 对 AMD ROCm 有实验性支持,但稳定性和性能远不如 CUDA。建议 AMD GPU 用户考虑 llama.cpp 或等待 vLLM 的 ROCm 支持成熟。
Q:部署私有知识库(RAG)用哪个?
中小规模(并发 < 20)用 Ollama 配合 LangChain/LlamaIndex 即可;大规模生产用 vLLM 作为推理后端。
Q:量化会损失多少精度?
以 Q4_K_M 为例,在大多数 Benchmark 上精度损失 < 2%,几乎感知不到。Q8_0 精度损失 < 0.5%,接近原始 FP16 精度。
九、总结
| 场景 | 推荐方案 |
|---|---|
| 个人本机玩模型 | Ollama,没有之一 |
| 没有 GPU / CPU 部署 | llama.cpp |
| 边缘设备 | llama.cpp |
| 小团队内部服务 | Ollama |
| 企业生产级部署 | vLLM |
| 追求最高吞吐量 | vLLM + AWQ 量化 |
一句话记住:
玩玩用 Ollama,搞研究用 llama.cpp,上生产用 vLLM。
参考资料
💬 如果这篇文章对你有帮助,欢迎点赞收藏!有问题欢迎评论区交流。
🔔 关注我,持续分享 LLM 部署、推理优化、AI 工程化实践。
更多推荐

所有评论(0)