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

大模型推理框架选型:Ollama、llama.cpp与vLLM对比

大模型推理框架选型涉及 Ollama、llama.cpp 与 vLLM 的架构差异。Ollama 基于 llama.cpp 封装,适合本地开发;llama.cpp 轻量跨平台,适用于边缘设备或 CPU 环境;vLLM 面向高吞吐生产服务,支持分布式部署。选型需结合硬件环境与并发需求,避免误用场景导致性能瓶颈。

魔法巫师发布于 2026/4/10更新于 2026/9/972 浏览

大模型推理框架选型:Ollama、llama.cpp与vLLM对比

写在前面

随着大语言模型(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 # 自定义 Modelfile cat> 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 # 调用 API curl 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。选型前需要确认模型格式支持。


参考资源

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

目录

  1. 大模型推理框架选型: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 # 自定义 Modelfile cat> 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 # 调用 API curl 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. 参考资源

更多推荐文章

查看全部
  • Spring AI 快速入门与实战指南
  • Spring Boot 数据可视化与图表集成实战
  • Android 工程师职业发展:转行抉择与深耕策略
  • LeetCode 927:三等分二进制数组(C 语言版)
  • Java 核心面试知识点汇总:集合、多线程、JVM 及锁机制
  • Linux 进程间通信进阶:消息队列与信号量实战
  • Node.js Morgan 日志模块本地时间格式配置
  • Vue 状态管理实战:Bus 事件总线的核心用法与注意事项
  • 使用 Python 将 AI 大语言模型接入个人项目
  • Ollama 模型管理与删除及 Open-WebUI 大模型交互配置
  • ROS2 功能包创建与 CMake 编译链路详解
  • 基于腾讯云 HAI 与 DeepSeek 快速构建个人网页
  • PostgreSQL 模式 (SCHEMA) 详解:数据库对象命名空间管理
  • Linux 进程间通信进阶:消息队列与信号量详解
  • 基于 Fiddler 的移动端金融数据接口抓取与 Python 解析实战
  • AI 驱动的零信任架构:从“永不信任”到“智能信任”的算法演进
  • 基础模型的低秩适应(LoRA)综述:关键技术与应用全解析
  • JavaScript 正则表达式详解
  • 微分动态规划 DDP 与迭代线性二次型调节器 iLQR 理论推导
  • Java 多线程:线程池原理与 ThreadPoolExecutor 详解
  • 相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • curl 转代码

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