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

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

对比了Ollama、llama.cpp和vLLM三款主流大模型推理框架。Ollama定位为开箱即用的模型管理工具,适合本地开发测试;llama.cpp是轻量级C++引擎,适用于边缘设备和CPU环境;vLLM则是面向生产的高吞吐服务框架,支持高并发和分布式部署。文章通过架构分层、场景速查表和代码示例,帮助开发者根据硬件环境和业务需求选择合适的推理方案,并澄清了关于性能、格式支持和生产可用性的常见误区。

蜜桃汽水发布于 2026/4/6更新于 2026/7/2564 浏览

大模型推理框架选型入门: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. 1.1 三层架构视角
    4. 1.2 各框架的本质定位
    5. 1.3 Ollama的真相:llama.cpp的封装层
    6. 二、适用场景速查表
    7. 2.1 按使用场景选型
    8. 2.2 按硬件环境选型
    9. 唯一选择:llama.cpp ./llama-cli -m model.gguf --threads 32
    10. 7B-13B模型:vLLM或llama.cpp均可
    11. 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
    14. 全部层卸载到GPU
    15. 三、快速上手示例
    16. 3.1 Ollama:5分钟跑起来
    17. 安装 curl -fsSL https://ollama.com/install.sh | sh
    18. 拉取并运行模型 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
    19. 3.2 llama.cpp:从源码构建
    20. 克隆并编译 git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp make -j LLAMA_CUDA=1 # NVIDIA GPU
    21. 下载 GGUF 模型并运行 ./llama-cli \ -m models/llama-3.1-70b-Q4KM.gguf \ --ctx-size 32768\ --threads 32\ -ngl 99 # GPU 层数,99 表示全部
    22. 3.3 vLLM:生产级部署
    23. 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 }'
    24. 四、常见误区澄清
    25. 误区 1:Ollama 可以替代 vLLM 用于生产
    26. 误区 2:llama.cpp 比 vLLM 慢,应该被淘汰
    27. 误区 3:vLLM 支持所有模型格式
    28. 参考资料
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • 前端高频面试题:TypeScript 核心概念与实战解析
    • 基于 DeepSeek 和 Cursor 从零打造智能代码审查工具
    • Windows Server 2022/2025 搭建 Web 服务器实验指南
    • Mac 系统安装与配置 Python 3.x 环境指南
    • xR+AR 双虚拟技术在晚会舞台的协同落地实践
    • Webman 与 Laravel+RoadRunner 的性能差异
    • GitHub Copilot 兼容 API 代理服务详解
    • 通过自适应屏蔽提示保护多模态大模型免受结构攻击
    • Vheer:免费免登录的 AI 绘画与视频生成工具
    • OpenClaw本地部署接入飞书机器人完全安装指南
    • 开源版 Coze 知识库(RAG)创建与使用指南
    • 利用 Higress 将 REST API 转换为 MCP Server 工具
    • VSCode SSH 远程连接卡在下载 Server 问题的解决方案
    • C++ 继承机制详解
    • Web 数据管理与爬虫技术核心知识点梳理
    • OpenClaw 部署指南:环境搭建、模型接入与飞书机器人配置
    • 多模态模型开发实战:文本、图像与语音的融合应用
    • Java 随机数生成器全方位对比
    • 基于 Cloudflare 与 GitHub 部署 MoonTV 项目教程
    • VSCode 自定义 Copilot Agent 及使用 Awesome Agent 模板

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如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