概览

llama.cpp 与 Ollama:本地 LLM 推理怎么选

llama.cpp(123k+ stars,MIT)是纯 C/C++ 的 LLM 推理引擎,无依赖、极致性能、支持所有 GGUF 模型,从树莓派到 GPU 集群都能跑;Ollama(177k+ stars,MIT)是 llama.cpp 的上层封装,提供 ollama run 一键体验 + Modelfile 自定义 + 模型库 + REST API。本文从抽象层级、性能优化、模型格式、易用性和典型场景五个角度对比。

对比项目

llama.cpp

C++ · MIT

124.2k ★

llama.cpp 是一个用 C/C++ 编写的轻量级 LLM 推理引擎,可在消费级硬件上高效运行各类开源大语言模型。

llm-inferencellamaggufcppon-device
查看项目 →

Ollama

Go · MIT

178.7k ★

本地运行各种开源大模型的命令行工具,模型即命令可启动。生态繁荣。

llmlocalinferenceagent-tools
查看项目 →

功能对比

适合场景 llama.cppOllama
产品定位 纯 C/C++ LLM 推理引擎,零依赖。从底层 GGML 库到推理引擎全栈自研。目标是"最少的依赖、最广的硬件覆盖、最前沿的性能"。 llama.cpp 的上层封装:一键 ollama run <model> 启动模型。提供 Modelfile + 模型库 + REST API。目标是"让每个人都能运行 LLM"。
性能优化 极致优化:ARM NEON / AVX / AVX2 / AVX512 / AMX / RISC-V。CUDA / ROCm / Vulkan / Metal / SYCL GPU 加速。1.5-8 bit 量化。CPU+GPU 混合推理。 继承 llama.cpp 底层优化,但默认配置偏保守。开箱即用,极限调优空间有限。
模型格式 GGUF 格式的发明者。支持从 HuggingFace 转换任意模型为 GGUF(convert_hf_to_gguf.py)。大量预转换 GGUF 模型在 HuggingFace 上。 使用 GGUF 格式。内置模型库(llama3 / qwen / mistral 等),ollama pull <model> 自动下载。Modelfile 自定义模型配置。
易用性 需要编译或下载预编译二进制。命令行参数多(-m / -ngl / -t / -c 等)。需要自己找模型、处理路径。 ollama run <model> 一行命令。自动下载模型 + 启动。REST API 默认 :11434。Open WebUI / AnythingLLM / LangChain 等直接对接。
典型场景 嵌入式 / 边缘设备 / 极致性能调优 / 自定义推理 pipeline / 需要底层控制的开发者。 个人 LLM 体验 / 开发调试 / 快速原型 / 桌面应用后端 / 不想折腾编译和参数的普通用户。

GitHub 数据

Metric llama.cppOllama
Stars 124.2k178.7k
Forks 21.8k17.4k
语言 C++Go
许可证 MITMIT
最近提交 2026年8月16日2026年8月16日

应该选择哪一个?

建议根据你的主要工作流、技术栈语言和集成需求来选择。用于生产前,请进一步查看项目文档、社区活跃度和最近的 GitHub 维护情况。

常见问题

Ollama 底层就是 llama.cpp 吗?

是的。Ollama 使用 llama.cpp 作为推理后端,在此基础上封装了模型管理、REST API 和用户界面。两者是上下游关系。

llama.cpp 比 Ollama 快吗?

理论上 llama.cpp 可以更快,因为你可以手动调优所有参数(GPU 层数、线程数、KV cache 等)。Ollama 默认配置偏保守,但大部分场景差距不大。

Ollama 的模型能和 llama.cpp 通用吗?

可以。两者都用 GGUF 格式。Ollama pull 下来的模型在 ~/.ollama/models/ 里,可以直接用 llama.cpp 加载。反之亦然。

哪个更适合生产环境?

看场景。Ollama 适合小流量(< 10 QPS)的内部工具和个人使用。llama.cpp 作为底层库嵌入自定义应用更灵活,适合需要精细控制的场景。