Ollama vs vLLM vs llama.cpp:2026 本地大模型部署选型指南

📅 2026/9/24 ✍️ 小文 📖 约 1 分钟

本地跑大模型到底该用哪个框架?本文从并发能力、显存占用、部署复杂度、GPU 利用率四个维度实测对比 Ollama、vLLM、llama.cpp,并给出按场景的选型决策树。

“本地部署大模型”这件事,2026 年已经从极客玩具变成了正经需求——隐私合规、成本控制、离线场景都在推着它走。但很多人一开始就选错了框架,导致要么性能拉胯,要么部署到崩溃。

本文把三个最主流的方案——Ollama、vLLM、llama.cpp——摆上台面,讲清它们各自的哲学和适用边界。

三者本质区别

llama.cpp:底层引擎。 用 C/C++ 写的高效推理库,通过 GGUF 量化格式支持在 CPU、各种 GPU 上跑模型。它是”引擎”,不是”产品”。优点是极致轻量、跨平台、量化方案丰富;缺点是没有原生的服务化、并发调度较弱。

Ollama:面向开发者的封装。 它建立在 llama.cpp 之上,提供了极简的 ollama run 体验、模型管理和 OpenAI 兼容 API。它的目标用户是”想快速跑起来”的开发者。

vLLM:面向生产的推理引擎。 采用 PagedAttention 等显存优化技术,把 GPU 利用率拉到极致,专为高并发和吞吐优化。它的目标用户是”要把模型当服务卖出去”的团队。

四个维度实测对比

假设同样的模型(14B 级别)跑在单张 24GB 显卡上:

并发能力。 这是差距最大的一项。

  • vLLM:支持 Continuous Batching,64 并发下吞吐可达单请求的 30 倍以上
  • Ollama:默认并发较弱,多请求会排队,适合 1-4 个并发
  • llama.cpp:单会话极快,但并发调度需自行实现

显存占用。

  • llama.cpp 通过量化最省显存(4-bit 量化能把 14B 压到 8GB 以内)
  • vLLM 对显存的管理最精细,但吃 KV cache
  • Ollama 介于两者之间,量化选项丰富

部署复杂度。

  • Ollama:一行命令,5 分钟
  • llama.cpp:需要自己编译、准备 GGUF、写服务层,半天到一天
  • vLLM:pip 安装简单,但调优(显存、batch size、TP 配置)需要经验

GPU 利用率。 vLLM 明显领先,在高并发下 GPU 几乎不空转;Ollama 和 llama.cpp 在低并发时利用率都偏低。

决策树:你该选哪个

如果你是个人开发者 / 想快速验证想法 → Ollama。 理由:5 分钟能跑起来,API 兼容 OpenAI,切换模型一行命令。性能对个人使用完全够。

如果你要在消费级硬件 / Mac / 无独显环境跑 → llama.cpp。 理由:量化方案最全,CPU 推理也能接受,苹果 Metal 支持成熟。别指望高并发,但单机单用体验极好。

如果你要对外提供 API 服务 / 高并发 → vLLM。 理由:没有替代品。它是唯一能把 GPU 成本摊薄的方案。代价是配置复杂度。

混合方案: 很多团队的实战是”开发用 Ollama,生产上 vLLM”。用 Ollama 快速试模型和 prompt,验证后部署到 vLLM 集群。这两者 API 都兼容 OpenAI,迁移成本很低。

三个容易踩的坑

坑一:用 Ollama 扛生产流量。 Ollama 很好,但它的定位不是高并发服务器。凌晨没事,白天用户一多就排队,延迟飙升。

坑二:迷信量化越低越好。 4-bit 虽然省显存,但对推理任务的准确率影响明显。建议:对话类可以激进量化,代码和数学推理尽量用 8-bit 或以上。

坑三:忽略显存带宽而非显存容量。 大模型的推理瓶颈常常是内存带宽,不是容量。买卡时别只看显存大小,显存带宽同样关键。

结语

选型的核心不是”哪个最好”,而是”你要解决什么问题”。个人玩票选 Ollama,极限压榨选 llama.cpp,对外服务选 vLLM。 搞清这个分工,你就不会在部署框架上反复折腾了。

📤 分享到