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

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 - 故障排查:监控指标、性能调优与故障演练

参考资源


文章标签

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

Read more

小显存福音:LLaMA Factory+QLoRA微调70B模型实测

小显存福音:LLaMA Factory+QLoRA微调70B模型实测 对于许多研究者来说,想要在消费级显卡上实验大参数模型一直是个难题。常规方法往往连模型加载都做不到,更别提进行微调了。本文将介绍如何使用LLaMA Factory框架结合QLoRA技术,在有限显存条件下实现对70B大模型的微调。这类任务通常需要GPU环境,目前ZEEKLOG算力平台提供了包含该镜像的预置环境,可快速部署验证。 为什么需要LLaMA Factory+QLoRA 大模型微调一直是AI研究的热点,但面临两个主要挑战: * 显存需求大:70B参数的模型在FP16精度下就需要140GB显存,远超消费级显卡容量 * 技术门槛高:需要手动实现量化、梯度检查点等优化技术 LLaMA Factory框架通过以下方式解决了这些问题: * 内置QLoRA技术:通过低秩适配器大幅减少可训练参数 * 自动优化:集成量化、梯度检查点等显存优化技术 * 开箱即用:预置多种微调方法和数据集 环境准备与镜像部署 在开始前,我们需要准备一个支持CUDA的GPU环境。以下是具体步骤: 1. 选择包含LLaM

Java在AI时代的崛起:从传统机器学习到AIGC的全栈解决方案

Java在AI时代的崛起:从传统机器学习到AIGC的全栈解决方案

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[[email protected]] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? * 专栏导航: 码农阿豪系列专栏导航 面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️ Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻 Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡 全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀 目录 * Java在AI时代的崛起:从传统机器学习到AIGC的全栈解决方案 * 一、Java AI生态概览:多样化的技术选择 * 1.1 深度学习框架:接轨主流AI技术 * Deep Java Library

LLaMA Factory全解析:让大模型“改装”像组装电脑一样简单

引言:当每个人都能定制自己的专属AI 朋友们,想象一下这样的场景:你拿到了一台性能强大的通用电脑(好比ChatGPT、LLaMA这样的通用大模型),但它运行的是标准操作系统,装的是通用软件。现在,你需要它变成一台专业的视频剪辑工作站,或者一台金融数据分析服务器——该怎么办? 传统方法是“重装系统”(全量微调):耗时耗力,需要专业团队,而且可能把原来好用的功能搞坏。 现代方法是“加装专业配件”(参数高效微调):不改变核心系统,只增加特定的硬件模块或软件插件。 今天我要介绍的LLaMA Factory,就是大模型领域的“专业改装工具箱”。它让微调百亿参数的大模型,变得像给电脑加内存、装显卡一样简单可控。无论你是只有一张消费级显卡的个人开发者,还是需要定制企业级AI的团队,这个工具都可能改变你的工作方式。 技术原理:理解LLaMA Factory的“增效不增负”哲学 核心理念:为什么我们不需要“重装整个系统”? 要理解LLaMA Factory的价值,首先要明白大模型微调的一个关键发现:当大模型适应新任务时,只需要调整很小一部分参数就够了。 一个生动的类比: 假设你是一位精

QtCreator配置AI辅助编程插件github copilot保姆级教程

QtCreator配置AI辅助编程插件github copilot保姆级教程

文章目录 * 概要 * 配置流程 概要 Free版‌免费使用,每月限额 2000 次代码补全 + 50 次聊天交互‌集成于 VS Code,支持跨文件编辑、终端协助及自定义指令‌ ‌ Pro版‌‌个人用户‌:10 美元/月 或 100 美元/年‌ ‌特殊群体‌:学生/教师/热门开源维护者可免费使用 Pro 版‌ ‌ Business版‌19 美元/月/用户,按月计费‌面向组织或企业中的团队订阅‌ ‌ Enterprise版‌39 美元/月/用户,按月计费‌企业可按需为不同组织分配 Business 或 Enterprise 订阅‌ 官方地址