读书笔记 · 约 8,983 字 · 预计推送 1 部分

本地大模型推理引擎对比:llama.cpp vs Ollama vs vLLM(聚焦 Windows 本地部署可行性与性能) 未开始

目录

题记与说明


一、核心问题(这份主题在解决什么)

在 Windows 本机(个人桌面 / 笔记本,通常单张消费级 GPU 或纯 CPU)上跑开源大模型,三个主流推理栈该怎么选:

  1. 可行性:谁能在 Windows 上原生安装、开箱即用?谁必须绕道 WSL2/Docker?
  2. 性能:单用户生成速度(tok/s)、提示词处理速度、多并发吞吐差距有多大?
  3. 代价:易用性、显存管理、模型管理、API 兼容性各自的 trade-off 是什么?

背景性事实(贯穿所有来源的共识):Ollama 本质是 llama.cpp 的封装(体验层),llama.cpp 是引擎,vLLM 是面向高并发生产环境的另一个引擎。所以这是「2 个引擎 + 1 个壳」的对比,而不是三个并列同类物。


二、主要主张(各来源的核心论点)

insiderllm(2026,最直接的对比文)

"Single-user, the three are closer than benchmark posts admit. Concurrent, vLLM pulls 10-20x ahead."

Red Hat 官方基准(2025-08,唯一的硬数据)

"vLLM outperforms Ollama in high-performance production deployments, delivering significantly higher throughput and lower latency."

NemesisNet(2026-01,四引擎选型)

ollama#9166(Windows 一手故障案例)

Northflank(辅助)


三、方法(各来源怎么论证的)

来源方法可信度评估
insiderllm综合多个基准 + 架构原理解释(PagedAttention/continuous batching)+ 单用户 RTX 4090 实测引用结论与架构解释自洽;具体 tok/s 数字为转述,未给完整测试环境,属于中等可信
Red Hat最严谨:GuideLLM 0.2.1 压测,A100-PCIE-40GB 单卡,Llama-3.1-8B(vLLM 用原始权重、Ollama 用 fp16 GGUF),vLLM 0.9.1 vs Ollama 0.9.2,并发 1→256,每档 300 秒,固定数据集,测吞吐/TTFT/TPOT官方厂商出品、方法透明(控制变量、报中位数/均值/P99),可信度最高;但硬件是数据中心卡、系统是 Linux,对「Windows 本地部署」外推有限
NemesisNet定性对比表 + 选型决策矩阵定性归纳,无新数据,适合当索引用
ollama#9166单用户环境报告(硬件/版本/复现步骤/日志)一手但样本为 1,且已关闭,可能是特定驱动环境问题
Northflank定性 + 产品营销只取其部署事实,不取性能结论

方法论上的关键提醒(读这批材料最大的收获之一):几乎所有「谁更快」的结论都依赖测试条件——并发数、量化方案(Ollama 常默认 Q4,vLLM 常用 FP16/原始权重)、批大小、是否首 token。Red Hat 那篇 19 倍的数字只在「256 并发 + Linux + A100」下成立,直接搬到「Windows 单人本地用」场景就是误用。


四、数据与证据

1. 并发-吞吐核心数据(insiderllm 汇总)

同一 Llama 3.1 8B 级模型,并发上升时 vLLM 对 Ollama/llama.cpp 的吞吐倍数:

并发倍数说明
1 用户~1.1×三者几乎打平
8 用户~2.3×(82 vs 187 tok/s)vLLM 开始甩开
50 用户~5.9×(155 vs 920 tok/s)llama.cpp 系吞吐饱和
100+ 用户15–20×llama.cpp 系彻底失守

单用户 RTX 4090 / Llama 3.1 8B 参考值:Ollama Q4_K_M ≈ 62 tok/s;llama.cpp 直连 ≈ 65 tok/s;vLLM FP16 ≈ 71 tok/s。

2. Red Hat 官方压测(Llama-3.1-8B @ A100-40GB,Linux)

3. Windows 可行性事实链(三重印证)

  1. NemesisNet 决策矩阵:Windows 原生可用的只有 Ollama、llama.cpp(+LM Studio),vLLM 标注不可装;
  2. vLLM 官方立场:Linux 优先,Windows 走 WSL2;原生 pip install vllm 失败(microsoft/fara#21,2025-11:"vLLM is only supported via WSL on Windows");2025-12 Docker 官方推广「WSL2 + NVIDIA GPU 一条命令跑 vLLM」,等于官方承认 WSL2 是 Windows 唯一路径;
  3. WSL2 路径并非无坑:API server 挂起(#5102)、多卡张量并行启动失败(#4140)等 issue 长期存在。

4. Windows 特有性能/稳定性风险(一手 issue)

5. 版本坐标(insiderllm,2026 年中)

llama.cpp b9840+(预编译支持 CUDA/Vulkan/SYCL)、Ollama 0.31.2、vLLM 0.24.0。llama.cpp 的 Vulkan 后端在 2026 年已能覆盖无 CUDA 工具链的 Windows 机器(AMD/Intel 卡的主路径)。


五、结论(综合判断)

一句话:Windows 本地部署的可行域里只有 llama.cpp 和 Ollama 两个真选项;vLLM 的能力边界(高并发生产服务)恰恰是 Windows 个人机器用不上的场景,硬要上只能 WSL2/Docker,得不偿失。

按场景的最终选型(多来源一致的收敛结论):

场景选择理由
Windows 个人机,想最快跑起来、做产品原型Ollama原生安装器、模型管理、OpenAI 兼容 API 开箱即用;代价 5–15%(可至 30%/2×)性能税 + Windows 上偶发 GPU 识别问题(部署后必须 ollama ps + 实测验证)
Windows 个人机,追求单用户极限速度/老显卡/AMD-Intel 卡llama.cpp原生预编译(CUDA/Vulkan),参数全可控,llama-bench 自带基准;代价是要自己管模型文件、编译/选型、启停
Windows + 真的需要高并发服务WSL2/Docker + vLLM(或换 Linux)唯一路径;注意 90% 显存预分配与 WSL2 已知 bug;更现实的替代是「同机双系统/另一台 Linux 盒子」
多用户生产服务(任何平台)vLLM并发 8 起甩开,50 并发近 6 倍,100+ 并发 15–20 倍;这是 PagedAttention + continuous batching 的架构优势,不是调参能追平的

易被忽略的两个结论:

  1. 三者差距在单用户时被严重夸大,在多用户时被严重低估——选型错误的方向几乎总是「用 Ollama 扛了本该 vLLM 扛的并发」或「为了 5% 速度忍受 llama.cpp 的手工运维」。
  2. Windows 本身的工程成熟度是隐藏变量:Ollama 和 llama.cpp 都有「Linux 上没见过的 Windows 特有故障」(GPU 检测假阳性、版本回归),Windows 部署后必须实测,不能信任默认行为。

六、局限

来源层面的局限:

判断层面的局限:


七、对我的启发

  1. 「2 引擎 + 1 壳」的心智模型:看到任何「Ollama vs vLLM」对比先问测的是什么——壳的开销(5–15%)和引擎的架构差距(10–20×)是完全不同的两回事,网上多数争论是拿这两个量级混着吵。
  2. 选型问题先问并发,再问平台:单用户 → llama.cpp/Ollama 随意(体验优先);并发 >8 → 必须能跑 vLLM 的环境。这个分界线(约 2.3×@8 并发)比任何笼统的「vLLM 更快」都有用。
  3. vLLM 的 90% 显存预分配是桌面环境的硬伤:如果未来想在带显卡的 Windows 工作机上跑服务类推理,这是比安装更先卡住的问题——它决定了 vLLM 和「日常使用的桌面」天然互斥。
  4. Windows 部署必须「部署后验证」:Ollama 假装用 GPU(#9166)、llama.cpp 版本回归腰斩速度(#18258)说明 Windows 是二等公民,任何部署要立刻用 llama-bench / ollama ps / 任务管理器实测验证,而不是信任日志里的 "GPU"。
  5. 对写作/报告的启发:Red Hat 那篇是「如何报告基准」的好范本——写清硬件、版本、量化方案、并发梯度、每档时长、报告 P99 而不只是均值;反例则是大量不写测试条件的「X 比 Y 快 N 倍」流量文。以后引用任何性能数字前,先检查它有没有交代这些变量。
  6. 可复用的决策树(insiderllm 版,简化):单机单人 → Ollama 起步,速度不满意换 llama.cpp;要多用户 API → Linux/WSL2 + vLLM;要 GUI → LM Studio;要分布式集群 → 不在 Windows 上想。

附:来源原文重要引述备查

← 资料库今日播报 →