
> llama.cpp 对比 Ollama——你该跑哪一个?▋
读公开记录,不跑分:Ollama 把自己的 llama.cpp 引擎钉在 b11351,上游已发到 b11443。一个是家电,一个是机舱。
mrsaynothing· 2026年10月6日· 1 分钟读完
搜索框把 llama.cpp vs Ollama 当成两个产品的对决来联想。两个仓库讲的是另一回事:其中一个的根目录里,躺着一个写死对方构建号的文件。Ollama 的引擎就是 llama.cpp,钉死的——网上想看的那场对决,不是你真正要做的决定。
你真正要决定的是:愿意亲手碰多深的引擎。下文全部来自两个仓库、它们的 release 流和公开讨论帖,发布当天上午逐一核对。
llama.cpp 到底是什么?
130,473 星,MIT 许可,这篇 review 发表当天就有四个 release。llama.cpp 是 2023 年 3 月掀开本地跑模型浪潮的 C/C++ 推理引擎。GGUF 这个单文件模型格式就是它所在的项目提出的——大家吵个不停的量化阶梯,用的正是它自家作者设计的格式。它有 24,125 个 fork、2,515 个未关闭 issue,最高产的贡献者有 2,011 个 commit。
它的 release 流读起来像日志:本篇 review 发表当天午后之前,b11438 到 b11443 已经落了四个构建,每个都是可以钉住的编号增量。除了命令行,它还带 llama-server——一个 OpenAI 兼容的 HTTP 服务端,任何客户端指过去,它就像一个恰好长在你机器上的托管 API。
verify: curl -s http://127.0.0.1:11434/api/version → 跑着 Ollama 时返回 {"version":"..."} · llama-server --version → 构建号,如 b11443
Ollama 除了壳还有什么?
有——而且边界就印在仓库里。Ollama 仓库根目录放着三个版本钉住文件:LLAMA_CPP_VERSION(写作时 b11351)、MLX_VERSION 和 MLX_C_VERSION。llm/llama_server.go 里的 Go 代码把一个 llama.cpp 衍生的服务端二进制当子进程拉起来再跟它对话。这个依赖不是圈内的秘密,它是构建输入。
Ollama 在上面加的是服务:一条命令从注册表拉模型、硬件自动检测、常驻 11434 端口的 API,还有第二引擎 MLX——给更想跑 safetensors 而不是 GGUF 的 Apple Silicon 机器。诚实的定义是:Ollama 是模型管理和进程卫生,包着一个它没写的引擎。
版本滞后在实践里意味着什么
写作时 Ollama 钉住的构建(b11351)和上游当天早上发的 release(b11443)之间差 92 个构建。引擎修复——比如 9 月那个在 Hacker News 拿了 89 分的 prompt-lookup-drafting 提速——总是先落到上游,几周后才搭上 Ollama 的发布火车。changelog 里那行修好你的问题的改动,壳往往是最后一个知道的。
那到底哪个更快?
同一个模型文件,谁也不比谁快——引擎是共用的。宣称有差距的 tokens 每秒对比,通常比的是不同的量化、不同的上下文长度,或者引擎本身的的不同构建。我们的 LM Studio 对比撞的是同一堵墙:界面不同,数学相同。
真正出现差距的地方,来自默认值和滞后,不是引擎:Ollama 替你选上下文长度、替你 offload 层(VRAM 惊喜背后的那两个旋钮),llama.cpp 让你自己设——忘了设就罚你。跑分问题的背后是个控制权问题。
你不是在两个引擎之间选。你是在选愿意亲手碰多深的引擎。
记录里 llama.cpp 的另一面
诚实的账本,因为记录里有一本:
- 2,515 个未关闭 issue,围城式节奏。一个上午四个 release 是吞吐量——也是搅动。flag 会挪、backend 会重组,你钉好的构建脚本需要同样的维护。
- 社区自己就把话说透了。来自 9 月那个提速优化的 Hacker News 讨论帖(89 分):"Frankly, llama.cpp is so badly written that these kind of speedups are trivial, and a hard fork (or a total rewrite) has been needed for the longest time."——rfgplk。同一个帖子里还有 Nvidia 收购 Hugging Face 之后、核心团队雇主易主带来的治理担忧。
- 杂活归你。没有注册表,没有自动检测:GGUF 自己去 Hugging Face 拉(搭建指南管这一段),层 offload 的 flag 自己传,进程自己盯。
你该跑哪一个?
记录给出的结论,加上必须写的那行诚实声明:我读了记录,没有亲自跑。这里的每个数字都来自两个仓库、它们的 release 流和所引公开帖子——不是来自我的终端。
| 你想要 | 跑 | 记录给出的理由 |
|---|---|---|
| 一条命令加一个聊天窗口 | Ollama | 拉模型、自动检测、常驻 API——家电 |
| 所有 flag 加最新构建 | llama.cpp | 钉住的构建、llama-server、自选 backend |
| 桌面图形界面 | LM Studio | 同一引擎血脉加按钮——已在此对比 |
| 一块 GPU 服务很多人 | vLLM | 吞吐型 serving——GGUF 的注意事项同样适用 |
一条实用的缝:从 Ollama 起步,等它跟你较劲——某个它不暴露的 flag、GPU 检测出错(最常见的那种)、修好的改动躺在更新的构建里——那件活就降到 llama.cpp。模型文件跟着你走,GGUF 是通用语。整个集群、两个工具都在,local-LLM hub 一站索引。
家电替你挡住引擎,直到引擎成为问题的那一天。那一天,就是第二件工具存在的理由。
你站在机舱哪一侧——壳的默认值有没有坑过你一个下午,而一个 flag 本来就能省下它?
faq
— mrsaynothing
$ 相关文章
git merge vs rebase——十秒做完决定
merge 还是 rebase,一个问题定生死:这个 commit 离开过你的机器吗?决策表、fast-forward 的真相,以及 rebase 翻车后的 reflog 抢救。
2026-10-05 · 3 分钟读完

How to Run GGUF Models Locally: Ollama, llama.cpp & vLLM
How to run GGUF models locally: one-line Ollama pulls, llama.cpp straight off a Hugging Face URL, and how to pick the right quant for your VRAM.
2026-09-07 · 7 分钟读完

llama.cpp vs Ollama: Which Should You Run in 2026?
llama.cpp vs Ollama: Ollama wraps llama.cpp for convenience, raw llama.cpp wins on speed and control. Benchmarks, GPU offload flags, and when each wins.
2026-09-10 · 7 分钟读完

GGUF VRAM Calculator: Check Before You Download
Model size, quant and context in — weights, KV cache and a per-card verdict out. The GGUF VRAM calculator answers will-it-fit before the download starts.
2026-10-02 · 4 分钟读完
