跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

01 - 大模型推理框架选型入门:Ollama、llama.cpp与vLLM全景对比

01 - 大模型推理框架选型入门:Ollama、llama.cpp与vLLM全景对比 > 是《大模型推理框架深度解析》系列的第一篇,适合刚接触LLM部署的开发者阅读。 写在前面 随着大语言模型(LLM)的广泛应用,如何将模型高效地部署到生产环境成为每个AI工程师必须面对的问题。目前市面上主流的推理框架有Ollama、llama.cpp和vLLM,但它们的技术定位、适用场景差异巨大。 很多开发者…

王者发布于 2026/4/6更新于 2026/9/1084K 浏览

01 - 大模型推理框架选型入门:Ollama、llama.cpp与vLLM全景对比

本文是《大模型推理框架深度解析》系列的第一篇,适合刚接触LLM部署的开发者阅读。

写在前面

随着大语言模型(LLM)的广泛应用,如何将模型高效地部署到生产环境成为每个AI工程师必须面对的问题。目前市面上主流的推理框架有Ollama、llama.cpp和vLLM,但它们的技术定位、适用场景差异巨大。

很多开发者在选型时容易陷入误区:

  • 用Ollama部署高并发API服务,结果吞吐量上不去
  • 用vLLM跑边缘设备,发现资源占用过高
  • 混淆llama.cpp和vLLM的定位,不知道何时该用哪个

本文将从架构分层视角出发,帮你建立清晰的选型认知。


一、三大框架的技术定位

1.1 三层架构视角

如果把LLM推理技术栈比作一座大厦,三个框架分别位于不同的楼层:

┌─────────────────────────────────────────────────────────────┐ │ 应用层(第3层) │ │ ┌─────────────┐ │ │ │ Ollama │ ← 一键式模型管理,类似Docker的体验 │ │ └─────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 推理引擎层(第2层) │ │ ┌─────────────┐ ┌─────────────────────────────────────┐ │ │ │ llama.cpp │ │ vLLM │ │ │ │ C++引擎 │ │ Python推理服务平台 │ │ │ └─────────────┘ └─────────────────────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 硬件加速层(第1层) │ │ CUDA / Metal / ROCm / AVX512 │ └─────────────────────────────────────────────────────────────┘ 

核心区别一句话总结:

  • Ollama:让开发者"开箱即用"的工具层
  • llama.cpp:追求极致轻量的C++推理引擎
  • vLLM:面向生产的高吞吐推理服务平台
1.2 各框架的本质定位
维度Ollamallama.cppvLLM
本质模型管理工具推理引擎库推理服务框架
设计目标开发便捷跨平台兼容高吞吐服务化
核心用户开发者/研究者嵌入式工程师SRE/运维工程师
部署形态单二进制文件静态库/可执行文件Python服务+API
1.3 Ollama的真相:llama.cpp的封装层

很多开发者不知道的是,Ollama底层调用的正是llama.cpp:

Ollama CLI → Modelfile解析 → GGUF模型下载 → llama.cpp推理引擎 

这意味着:

  • Ollama的"简单"是有代价的——它隐藏了llama.cpp的精细调参能力
  • 在高并发场景下,Ollama的HTTP层成为瓶颈
  • 生产环境建议绕过Ollama,直接使用底层引擎

二、适用场景速查表

2.1 按使用场景选型
场景推荐框架理由
本地开发测试Ollama一键安装,Modelfile灵活配置
MacBook Pro本地跑70Bllama.cppMetal后端优化,统一内存优势
边缘设备/嵌入式llama.cppARM NEON优化,低资源占用
高并发API服务vLLM连续批处理,PagedAttention
70B+大模型生产部署vLLMTP/PP分布式支持完善
MoE模型(DeepSeek)vLLMEP专家并行原生支持
CPU兜底/降级链路llama.cpp跨平台稳定,GGUF生态成熟
2.2 按硬件环境选型

无GPU环境:

# 唯一选择:llama.cpp ./llama-cli -m model.gguf --threads 32

单卡消费级GPU(RTX 4090 24GB):

# 7B-13B模型:vLLM或llama.cpp均可# 70B模型:必须用量化版 + vLLM vllm serve --model llama-70b-awq --quantization awq 

多卡数据中心GPU(A100/H100):

# vLLM是最佳选择 vllm serve --model llama-405b --tensor-parallel-size 8

Apple Silicon(M1/M2/M3):

# llama.cpp Metal后端最优 ./llama-cli -m model.gguf -ngl 99# 全部层卸载到GPU

三、快速上手示例

3.1 Ollama:5分钟跑起来
# 安装curl -fsSL https://ollama.com/install.sh |sh# 拉取并运行模型 ollama run llama3.1:70b # 自定义Modelfilecat> Modelfile <<'EOF' FROM llama3.1:70b PARAMETER temperature 0.7 PARAMETER top_p 0.9 SYSTEM "你是一个专业的编程助手" EOF ollama create my-model -f Modelfile 
3.2 llama.cpp:从源码构建
# 克隆并编译git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp make -j LLAMA_CUDA=1# NVIDIA GPU# 下载GGUF模型并运行 ./llama-cli \ -m models/llama-3.1-70b-Q4_K_M.gguf \ --ctx-size 32768\ --threads 32\ -ngl 99# GPU层数,99表示全部
3.3 vLLM:生产级部署
# pip安装 pip install vllm # 启动服务 vllm serve meta-llama/Llama-3.1-70B \ --tensor-parallel-size 4\ --gpu-memory-utilization 0.85\ --max-model-len 32768\ --enable-prefix-caching # 调用APIcurl http://localhost:8000/v1/completions \ -H "Content-Type: application/json"\ -d '{ "model": "meta-llama/Llama-3.1-70B", "prompt": "Hello,", "max_tokens": 100 }'

四、常见误区澄清

误区1:Ollama可以替代vLLM用于生产

真相:Ollama的HTTP层和调度逻辑在高并发下会成为瓶颈。实测数据显示,相同硬件下vLLM的吞吐量是Ollama的3-5倍。

误区2:llama.cpp比vLLM慢,应该被淘汰

真相:llama.cpp在CPU推理和边缘设备场景下是最佳选择。它的跨平台能力和GGUF生态是vLLM无法替代的。

误区3:vLLM支持所有模型格式

真相:vLLM主要支持HuggingFace格式(safetensors/bin),而llama.cpp专注于GGUF。选型前需要确认模型格式支持。


五、系列文章预告

本文是系列的开篇,后续将深入各个技术细节:

  • 02 - 量化与性能:GGUF、AWQ、GPTQ的原理差异与性能基准
  • 03 - KV Cache与批处理:PagedAttention如何让内存利用率从60%提升到95%
  • 04 - 分布式推理:TP/PP/EP并行策略的原理与配置
  • 05 - 生产架构:Kubernetes部署与混合链路设计
  • 06 - 故障排查:监控指标、性能调优与故障演练

参考资源

  • vLLM官方文档
  • llama.cpp GitHub
  • Ollama官方文档
  • PagedAttention论文

文章标签

大模型推理LLM部署vLLMllama.cppOllamaAI工程化模型量化

目录

  1. 01 - 大模型推理框架选型入门:Ollama、llama.cpp与vLLM全景对比
  2. 写在前面
  3. 一、三大框架的技术定位
  4. 1.1 三层架构视角
  5. 1.2 各框架的本质定位
  6. 1.3 Ollama的真相:llama.cpp的封装层
  7. 二、适用场景速查表
  8. 2.1 按使用场景选型
  9. 2.2 按硬件环境选型
  10. 唯一选择:llama.cpp ./llama-cli -m model.gguf --threads 32
  11. 7B-13B模型:vLLM或llama.cpp均可# 70B模型:必须用量化版 + vLLM vllm serve --model llama-70b-awq --quantization awq
  12. vLLM是最佳选择 vllm serve --model llama-405b --tensor-parallel-size 8
  13. llama.cpp Metal后端最优 ./llama-cli -m model.gguf -ngl 99# 全部层卸载到GPU
  14. 三、快速上手示例
  15. 3.1 Ollama:5分钟跑起来
  16. 安装curl -fsSL https://ollama.com/install.sh |sh# 拉取并运行模型 ollama run llama3.1:70b # 自定义Modelfilecat> Modelfile <<'EOF' FROM llama3.1:70b PARAMETER temperature 0.7 PARAMETER top_p 0.9 SYSTEM "你是一个专业的编程助手" EOF ollama create my-model -f Modelfile
  17. 3.2 llama.cpp:从源码构建
  18. 克隆并编译git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp make -j LLAMACUDA=1# NVIDIA GPU# 下载GGUF模型并运行 ./llama-cli \ -m models/llama-3.1-70b-Q4K_M.gguf \ --ctx-size 32768\ --threads 32\ -ngl 99# GPU层数,99表示全部
  19. 3.3 vLLM:生产级部署
  20. pip安装 pip install vllm # 启动服务 vllm serve meta-llama/Llama-3.1-70B \ --tensor-parallel-size 4\ --gpu-memory-utilization 0.85\ --max-model-len 32768\ --enable-prefix-caching # 调用APIcurl http://localhost:8000/v1/completions \ -H "Content-Type: application/json"\ -d '{ "model": "meta-llama/Llama-3.1-70B", "prompt": "Hello,", "max_tokens": 100 }'
  21. 四、常见误区澄清
  22. 误区1:Ollama可以替代vLLM用于生产
  23. 误区2:llama.cpp比vLLM慢,应该被淘汰
  24. 误区3:vLLM支持所有模型格式
  25. 五、系列文章预告
  26. 参考资源
  27. 文章标签

更多推荐文章

查看全部
  • 企业级 AI 编程挑战:百万行 Java 代码的长周期维护与高可靠实践
  • GitHub Copilot 网络代理配置与故障排查指南
  • 基于 cocotb 与 VCS 验证 Xilinx FPGA IP 核实战
  • 7 天用 Electron 开发跨平台桌面应用实战指南
  • 基于C++的学生健康信息管理系统设计与实现
  • FAIR plus 机器人全产业链接会:智启未来链动全球
  • 基于 Stable Diffusion v1.5 的企业产品概念图批量生成实践
  • GitHub Copilot 版本差异解析:免费版与 Pro 版对比及适配建议
  • 法律领域自然语言处理(NLP)应用场景与实战
  • 数据产品经理与 AI 产品经理的核心区别与发展前景
  • ARP 与 NAT 协议深度解析:原理与区别
  • 阿里开源 Page-Agent:一行 JS 代码让大模型寄生前端 DOM
  • Whisper 语音识别库编译与 CUDA 加速配置指南
  • BaseCTF Week3 Web 与杂项解题复盘
  • 大模型 LLM 在数据领域的四大应用场景探索
  • 顺序栈与两栈共享空间的C语言实现
  • Android WebView 版本升级方案详解
  • 基于 SD-PPP 的 AI 绘画工作流与 Photoshop 深度协作方案
  • LabVIEW 操作 Access 与 SQL Server 数据库实战指南
  • MAVROS 安装配置、基础知识与 ROS C++ 仿真案例

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online