一、定位与设计哲学
| 维度 | Ollama | vLLM |
|---|---|---|
| 定位 | 让本地运行大模型像安装应用一样简单 | 为生产环境打造的高吞吐、低延迟推理引擎 |
| 核心用户 | 个人开发者、爱好者、本地体验 | 企业、需要构建 API 服务的团队 |
| 设计重心 | 易用性、开箱即用、跨平台 | 极致性能、高并发、显存效率 |
二、核心特性对比
| 特性 | Ollama | vLLM |
|---|---|---|
| 模型加载 | 一条命令拉取并运行(ollama run) |
需手动下载模型,命令行启动服务 |
| 模型格式 | 主推 GGUF(单文件,极低位量化) | 支持 HF 全精度、AWQ、GPTQ、FP8、GGUF(实验性) |
| 量化支持 | 从 IQ2_XXS 到 Q8_0 全覆盖,低至 2-3 bit | 重点在 GPU 原生量化(AWQ/FP8),支持 4-bit |
| CPU 推理 | 极佳,CPU/GPU 混合推理,Apple Silicon 优化 | 功能存在但非设计重点,威力大减 |
| 多 GPU | 不支持多卡张量并行 | 原生张量并行、流水线并行,多卡轻松扩展 |
| 并发处理 | 顺序处理(无连续批处理),高并发下容易阻塞 | 连续批处理 + PagedAttention,吞吐可达 Ollama 的 10~20 倍(高并发时) |
| API 兼容性 | 自有 REST API,可借助第三方转 OpenAI 格式 | 原生 OpenAI 兼容 API(/v1/chat/completions 等) |
| 多模态 | 支持部分模型(LLaVA 等) | 全面支持图像、视频、音频等多种模态输入 |
| LoRA 热加载 | 不支持 | 原生支持,一个基座可同时挂载多个 LoRA,动态切换 |
| 高级特性 | 较少(仅基本对话) | 推测解码、前缀缓存、KV 缓存分页、工具调用等 |
| 部署难度 | 极低,一键安装启动 | 中等,需配置环境与参数 |
三、适用场景
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 本地尝鲜、聊天、个人助手 | Ollama | 零门槛,1 分钟上手,完美适配个人电脑 |
| 原型开发、测试 Prompt | Ollama | 快速切换模型,极低成本 |
| 边缘设备、树莓派、老旧机器 | Ollama | 纯 CPU 推理 + 极低位量化,唯一可行方案 |
| 为团队提供内部 API 服务(5~50 人) | vLLM | 高并发支持,数据私有,延迟稳定 |
| 构建公网或大规模 API 服务 | vLLM | 连续批处理,最大化吞吐,降低单次调用成本 |
| 需要同时服务多个微调模型 | vLLM | LoRA 热切换,显存几乎零额外开销 |
| 需要工具调用、JSON 模式等高级功能 | vLLM | 原生支持,与 OpenAI 生态无缝集成 |
| 处理多模态输入(图片/视频) | vLLM | 完整支持,性能更优(Ollama 仅有限支持) |
| 数据绝对不可出本地的合规场景 | vLLM | 本地高性能服务,无任何外部依赖 |
四、硬件需求
| 硬件指标 | Ollama | vLLM |
|---|---|---|
| 最低 GPU | 无要求(纯 CPU 可跑) | 推荐 NVIDIA 数据中心卡(A10 以上),消费级卡也支持但需注意显存 |
| 理想 GPU | Apple M 系列、RTX 4060 以上 | A100、H100、RTX 4090/5080(消费级也可良好运行) |
| 显存需求 | 弹性极大:4GB 可跑 3B 模型,16GB 可跑 70B 量化模型 | 较刚性:7B FP16 需 14GB,8B 模型刚好;推荐使用 4-bit 量化 |
| CPU/内存 | 可纯 CPU 推理,内存足够即可 | 需 GPU,但 KV Cache 可配置,支持 CPU 卸载(实验性) |
| 多卡支持 | ❌ | ✅(张量并行,多卡加载超大模型) |
| 典型单卡预算 | 现有电脑即可,额外投入 0 元 | 单张消费级显卡(如 RTX 5080,约 8000~10000 元)即可起步 |
五、选型决策树
是否需要高并发(多个用户同时用)? ├─ 是 → vLLM(连续批处理,显存利用率高) └─ 否 → 是否需要多模态或工具调用等高级功能? ├─ 是 → vLLM(原生 OpenAI 兼容) └─ 否 → 是否需要极低硬件门槛(纯 CPU/老电脑)? ├─ 是 → Ollama(CPU 推理强) └─ 否 → 追求简单?→ Ollama 追求控制与扩展性?→ vLLM
六、注意事项
Ollama
-
并发瓶颈:没有连续批处理,高并发下请求会排队,不适合 API 服务。
-
模型格式锁定:依赖 GGUF,不能直接使用 HF 原生权重或 AWQ 量化模型。
-
API 非标准:需要搭配额外组件(如 litellm)才能转为 OpenAI 格式。(这个存疑)
-
多模型问题:只能同时加载一个模型,切换需卸载重载。
-
Windows 原生支持:需通过 WSL2 或 Docker,但社区安装包已较成熟。
vLLM
-
环境要求:必须 Linux(WSL2 可),不支持 Windows 原生;Python 版本严格(3.9~3.12,推荐 3.10/3.11)。
-
显存规划:FP16 下 7B 模型就接近 14GB,推荐使用 AWQ 量化,并谨慎设置
--max-model-len和--gpu-memory-utilization。 -
离线部署:需提前下载完整模型文件夹(配置文件 + 权重),可使用 ModelScope 或
huggingface_hub下载,避免git clone。 -
多模型:不支持一个进程内卸载模型再加载另一个。只有基于同一基座的 LoRA 才能实现“多模型”效果。
-
高级功能依赖模型支持:工具调用、JSON 模式等需要基座模型本身具备相应能力(如 Qwen2.5 系列)。
-
默认无鉴权:暴露内网时建议加
--api-key或反向代理做安全控制。 -
初次启动较慢:会编译 CUDA 内核并缓存,第二次启动会明显加快。
七、最佳实践
结合使用:
-
开发与实验阶段:用 Ollama 快速验证想法,零成本。
-
需要自建服务时:用 vLLM 在自备硬件(如 5080)上搭建高性能 API,数据私有、低延迟。
-
上线对外产品/弹性需求:直接调用 DeepSeek API 等云端 API,免运维。
根据场景无缝切换,可使用同一套 OpenAI 风格的客户端代码。