本地 LLM 服务怎么选:Ollama、vLLM 与 OpenAI 兼容接口
从开发体验、吞吐、模型管理和接口兼容性角度,整理本地或自托管 LLM 服务的选型思路。
并不是所有 AI 应用都必须调用云端模型。本地或自托管模型适合隐私敏感、成本可控、离线实验或特定模型评估场景。但部署本地 LLM 不是“下载模型就结束”,还要考虑服务接口、吞吐、显存和运维。
Ollama 文档强调本地运行和管理模型的开发体验;vLLM 文档则面向高吞吐推理服务,并提供 OpenAI 兼容服务入口。[local-001][local-002]
Ollama 更适合开发和轻量场景
Ollama 的优势在于上手快、模型管理简单,适合:
- 本地原型验证。
- 个人知识库实验。
- 小规模内部工具。
- 离线 demo。
概念调用可以保持在应用适配层:
type ChatProvider = "openai" | "ollama" | "vllm";
const provider: ChatProvider = process.env.CHAT_PROVIDER as ChatProvider;本地模型接入时,先把 provider 抽象出来,后面替换服务会容易很多。
vLLM 更适合服务化吞吐
vLLM 面向高性能推理服务,适合多人共享、批量请求或需要 OpenAI 兼容接口的场景。[local-002] 但它也更依赖 GPU、部署参数和运维经验。
选型时可以看:
- 并发量。
- 模型大小。
- GPU 显存。
- 是否需要流式输出。
- 是否需要 OpenAI 兼容 API。
不要忽略评估
本地模型是否可用,不能只看能否回答。还要用评估集比较:
- 正确率。
- 延迟。
- 幻觉率。
- 结构化输出稳定性。
- 中文任务表现。
综合这些资料可以推断:Ollama 更像本地开发入口,vLLM 更像推理服务基础设施。具体选择取决于产品阶段、硬件预算和质量评估结果。
参考资料
- [local-001] Ollama Docs, “API”, https://github.com/ollama/ollama/blob/main/docs/api.md
- [local-002] vLLM Docs, “OpenAI-Compatible Server”, https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html