llama.cpp 对比 Ollama:同一个引擎,两种引擎接触量
Ollama 仓库根目录里写着它引擎的 build 号——它跑的是 llama.cpp,钉在 b11351,而上游同一个早晨就发布了 b11443。只读记录,不跑测试。
■ space · 引擎舱
Ollama 仓库根目录带着一个叫 LLAMA_CPP_VERSION 的文件,钉住它的引擎——它跑的是 llama.cpp,所以同一个模型文件下,裸速度几乎是平手。
评测当天清晨上游发布的是 b11443;Ollama 钉的是 b11351——外壳永远落在引擎后面。新 flag 会先到 llama.cpp。
记录里的判决:日常驾驶用 Ollama,外壳挡住你要用的 flag 时换 llama.cpp——再配一个 vLLM 当 GPU 服务的逃生口。
引擎舱
两扇门后面是同一个部件。调一下你想接触的引擎深度——货架会回答你。
家电 · ollama
机房 · llama.cpp
全家电。 拉取、识别和常驻 API 都留着;引擎在底下按 Ollama 钉住的版本嗡嗡转。等你用超了那天,GGUF 文件会跟你走。
llama.cpp 到底是什么
130,473 颗星、MIT 许可证、评测当天早上一口气发了四个版本。llama.cpp 在 2023 年 3 月掀起了本地跑模型的浪潮,还引入了 GGUF——整个生态通用的交易格式。
24,125 个 fork、2,515 个未关 issue,头号贡献者提交数 2,011。发布流读起来像航海日志:下午刚开始就有四个 build(b11438 到 b11443),个个都可供钉住。
验证:curl -s http://127.0.0.1:11434/api/version → 在跑的 Ollama 会应答 · llama-server --version → build 标签,例如 b11443
ollama 难道只是个外壳吗?
是——分界线就印在仓库里。三个版本钉扎文件:LLAMA_CPP_VERSION(评测时是 b11351)、MLX_VERSION、MLX_C_VERSION。llm/llama_server.go 以子进程方式启动这个衍生自 llama.cpp 的服务。
这个依赖是 build 输入,不是公开的秘密。Ollama 加上的是服务:仓库拉取、自动识别、端口 11434 的常驻 API、给 Apple Silicon 的 MLX。
Ollama 是包在一个自己没写过的引擎外面的模型管理和进程卫生。
Ollama 的钉扎与上游当天早上的发布之间隔着 92 个 build。引擎的修复先落上游,几周后才搭上 Ollama 的班车。
九月的 prompt-lookup-drafting 提速在 Hacker News 拿了 89 分——比 Ollama 带上它早了好几周。如果某行 changelog 正好用得上,外壳是最后一个知道的。
那到底哪个更快?
同一个模型文件,谁也不快——引擎是同一个。号称的差距通常在比不同的量化、上下文长度或引擎 build。
真正的差距来自默认值和时间差:Ollama 替你选上下文、替你卸载层——那些 VRAM 惊喜背后的旋钮;llama.cpp 让你亲手设,设漏了还要挨罚。
跑分问题的背后是一个控制权问题。
你不是在两个引擎之间做选择。你是在选择想接触多深的引擎。
记录里对 llama.cpp 不利的话
- 2,515 个未关 issue,攻城般的节奏。一个早上四个版本当然是吞吐量——但也是搅动。flag 会位移、后端会重排,你那套钉住 build 的脚本也得跟着保养。
- 社区是明着说的。在 Hacker News 九月提速(89 分)的帖子里,用户 rfgplk 说:"说实话,llama.cpp 写得太烂,这点提速都不值一提,早就该 hard fork(或彻底重写)了。"自从 Nvidia 与 Hugging Face 的交易把核心团队的东家推上牌桌,同一帖子里还多了对治理的担忧。
- 杂活全是你的。没有仓库拉取、没有自动识别:GGUF 文件自己找、卸载层 flag 自己加、进程自己盯。
找到你这行
| 你想要 | 就跑 | 理由(来自记录) |
|---|---|---|
| 一条命令加聊天窗口 | Ollama | 拉模型、自动识别、常驻 API——家电 |
| 所有 flag 加最新 build | llama.cpp | 可钉的 build、llama-server、后端自选 |
| 桌面图形界面 | LM Studio | 同一引擎血统,只是带按钮 |
| 一块 GPU、多名用户 | vLLM | 吞吐量服务——GGUF 的注意事项适用 |
一条实用的缝:从 Ollama 起步;它跟你作对的那一天——缺 flag、GPU 识别抽风、修复只在更新的 build 里——那件活就下放到 llama.cpp。
模型文件会跟着你走;GGUF 是通用语。家电替你挡住引擎,直到引擎本身成为问题。
那一天,正是第二个工具存在的理由。
引擎舱到此为止 · 什么都没下载 · 全程本地