<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ollama on FXIO 技术博客</title><link>https://fxio.site/tags/ollama/</link><description>Recent content in Ollama on FXIO 技术博客</description><generator>Hugo -- 0.157.0</generator><language>zh-cn</language><lastBuildDate>Tue, 04 Aug 2026 11:53:09 +0800</lastBuildDate><atom:link href="https://fxio.site/tags/ollama/index.xml" rel="self" type="application/rss+xml"/><item><title>跑一个大模型到底有几种跑法？从 llama.cpp、Ollama 到 vLLM 的三条路</title><link>https://fxio.site/posts/ai/2026-08-04-llm-inference-three-paths/</link><pubDate>Tue, 04 Aug 2026 11:53:09 +0800</pubDate><guid>https://fxio.site/posts/ai/2026-08-04-llm-inference-three-paths/</guid><description>&lt;h1 id="跑一个大模型到底有几种跑法从-llamacppollama-到-vllm-的三条路"&gt;跑一个大模型到底有几种跑法？从 llama.cpp、Ollama 到 vLLM 的三条路&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本文回答一个看似简单的问题：「我想在本地跑个大模型」——然后呢？这三个 GitHub 上最火的推理项目，其实回答的是三个完全不同的问题。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;周末折腾本地大模型的人，大概率经历过这个场景：搜「本地跑 LLM」，GitHub 推荐给你 llama.cpp、Ollama、vLLM 三个项目，Star 数加起来四十多万。打开 README 都是「高性能推理」，看起来互为竞品。&lt;/p&gt;
&lt;p&gt;但我研究完这三个项目的架构后，结论是：**它们根本不是竞品，是三条不同的路，解决三个不同的问题。**选错工具不是性能差一点的问题，是方向错了。&lt;/p&gt;
&lt;h2 id="三个项目三个问题"&gt;三个项目，三个问题&lt;/h2&gt;
&lt;p&gt;先把结论摆出来：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;项目&lt;/th&gt;
&lt;th&gt;回答的问题&lt;/th&gt;
&lt;th&gt;服务对象&lt;/th&gt;
&lt;th&gt;优化目标&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;llama.cpp&lt;/td&gt;
&lt;td&gt;「我的笔记本/手机能跑吗？」&lt;/td&gt;
&lt;td&gt;单个极客&lt;/td&gt;
&lt;td&gt;单请求延迟、硬件可及性&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ollama&lt;/td&gt;
&lt;td&gt;「我只想跑，不想折腾」&lt;/td&gt;
&lt;td&gt;所有人&lt;/td&gt;
&lt;td&gt;上手门槛（降到一条命令）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;vLLM&lt;/td&gt;
&lt;td&gt;「一块 GPU 怎么服务上千用户？」&lt;/td&gt;
&lt;td&gt;生产 API 服务&lt;/td&gt;
&lt;td&gt;多请求吞吐&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;注意看第三列——llama.cpp 和 vLLM 的优化目标甚至是&lt;strong&gt;对立&lt;/strong&gt;的。一个恨不得为单个请求榨干每一毫秒延迟，一个恨不得把一千个请求塞进一个 batch 里摊薄成本。这两个目标天然冲突，所以它们不可能是同一个工具的两种实现。&lt;/p&gt;
&lt;h2 id="llamacpp把-llm-从数据中心拽到你的笔记本"&gt;llama.cpp：把 LLM 从数据中心拽到你的笔记本&lt;/h2&gt;
&lt;p&gt;llama.cpp 的故事从一个意外开始：2023 年初 LLaMA 权重泄露，作者 Georgi Gergashev 四天内拿出了原型。这个「时机比技术重要」的案例后来被反复引用，但真正让这个项目活下来的是架构决策。&lt;/p&gt;
&lt;p&gt;它做了一个关键分层：底层是 &lt;strong&gt;ggml 张量库&lt;/strong&gt;（算子、内存管理、多后端抽象），上层是 &lt;strong&gt;llama 推理引擎&lt;/strong&gt;（模型定义、KV Cache、采样、API）。最大的亮点是多后端抽象——同一套 ggml API，底下可以是 CPU（AVX2/AVX512/NEON）、CUDA、Metal、Vulkan、SYCL、HIP，还支持 CPU+GPU 混合推理（&lt;code&gt;-ngl&lt;/code&gt; 指定丢给 GPU 的层数）。你 MacBook 上跑 Metal、Linux 服务器上跑 CUDA、安卓手机上跑 NEON，代码是同一套。&lt;/p&gt;</description></item></channel></rss>