1 前言
对数据敏感的企业想要部署自己的大模型该(如:DeepSeek R1)该选用什么方式呢? Ollama还是vllm呢? 我先说结论:Ollama适用于开发测试,vLLM适用于生产环境部署
下面我会进行详细的选型对比,让你有一个更清晰的认知。
2 选型对比
Ollama与vLLM都是针对大语言模型(LLM)部署和推理的开源框架,但它们在设计目标、技术特点和适用场景上有显著的差异。下面通过多个维度给出具体对比说明
1. 核心定位与部署方式
- Ollama : 专注于本地化、轻量化部署 ,通过Docker容器技术简化模型运行流程,用户无需复杂配置即可快速启动模型。其设计目标是降低本地使用LLM的门槛,适合个人开发者或资源有限的环境。
- vLLM : 侧重于高性能推理加速与服务端扩展 ,支持多机多卡分布式部署,通过优化GPU资源利用率和内存管理技术(如PagedAttention)提升高并发场景下的吞吐量
2. 技术特点
-
Ollama :
-
- 简化部署 : 将模型权重、配置和依赖项打包为统一格式,通过简单命令(如ollama run)启动模型。
- 资源优化 : 针对单机环境优化GPU使用,适合实时响应需求,但对大规模并发支持有限。
- 跨平台支持 : 兼容多种操作系统,强调易用性和灵活性。
-
vLLM :
-
- 高效内存管理 : 采用PagedAttention 技术,动态分配内存块以减少冗余,支持更大规模的上下文长度。
- 连续批处理(Continuous Batching) : 通过动态调度算法合并请求,最大化GPU利用率,显著提升吞吐量。
- 量化支持 : 集成GPTQ等量化技术,降低显存占用并加速推理。
3. 适用场景
-
Ollama :
-
- 轻量级应用 : 适合个人电脑、移动设备或单机环境下的少量并发推理,例如本地开发、原型验证或实时交互。
- 快速实验 : 研究人员或爱好者可快速切换不同模型(如Llama系列)进行测试。
-
vLLM :
-
- 高并发服务 : 适用于需要处理大量请求的生产环境(如API服务、聊天机器人),支持分布式扩展以应对流量高峰。
- 资源密集型任务 : 在多GPU集群中表现优异,适合企业级应用或需要低延迟、高吞吐的场景。
4. 性能对比
- 吞吐量 : vLLM通过连续批处理和内存优化,显著高于Ollama,尤其在高并发时差异更明显。
- 资源占用 : Ollama在单机环境下资源占用更低,启动更快;vLLM需要更多初始配置但能更好地利用多卡资源。
- 延迟 : Ollama在实时响应场景中延迟更低,而vLLM通过批处理优化可平衡延迟与吞吐。
5. 开源生态与社区
- Ollama : 以易用性为核心,社区提供丰富的预置模型(如Llama、Falcon),生态更贴近个人用户。
- vLLM : 技术聚焦于推理优化,社区活跃于性能改进和企业级功能开发,适合需要深度
3 部署实战
1. 部署Ollama(https://ollama.com)
- 首先,从 Ollama 官网 下载安装包,并按照提示完成安装。
- Ollama 命令介绍 Ollama 提供了几个简单易用的命令,基本功能如下:
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve 启动 Ollama 服务
create 从 Modelfile 创建一个模型
show 查看模型详细信息
run 运行一个模型
stop 停止正在运行的模型
pull 从注册表拉取一个模型
push 将一个模型推送到注册表
list 列出所有可用的模型
ps 列出当前正在运行的模型
cp 复制一个模型
rm 删除一个模型
help 获取关于任何命令的帮助信息
Flags:
-h, --help helpfor ollama
-v, --version Show version information
拉取模型并运行 ollama pull 具体的模型,这里以deepseek为
- 选择模型
- 搜索你想要的模型:比如 deepseek,qwen
- 选择你的模型
ollama pull deepseek-r1:14b
- 运行ollama远程服务
$ ENV OLLAMA_HOST=0.0.0.0:11434 ollama serve
*注意:如果你对外提供公网服务,请勿设置*OLLAMA_HOST=0.0.0.0:11434
*,因为无需授权即可访问所有的接口,这是一个严重的安全风险。***
2. 部署vLLM(https://docs.vllm.ai)
vLLM安装稍微复杂一点,需要你有熟悉服务器的门槛,接下来我们开始
- 依赖环境准备
- 操作系统: Ubuntu Server 24.04.2 LTS(强烈推荐) 下载地址:https://ubuntu.com/download/server
- Python集成环境工具: UV(https://docs.astral.sh/uv/getting-started/installation/), (注意:好多人推荐用conda,但是我这里不推荐,因为官方修改了使用协议,超过200个员工的企业需要付费订阅)
- 显卡或CPU: 显卡推荐NVIDIA,不过A(AMD)卡也支持,如果没有显卡就只能靠CPU顶了。
- Docker以及Docker Compose: 部署客户端工具
- 科学上网环境: 由于vLLM与huggingface (https://huggingface.co/)深度绑定,模型需要从该网站下载
- 安装环境
-
安装UV: Ubuntu Server 我这里默认你已经安装好,接下来安装UV,可以参考这里:https://docs.astral.sh/uv/getting-started/installation/
$ curl -LsSf https://astral.sh/uv/install.sh | sh
-
安装vLLM 官方参考文档:https://docs.vllm.ai/en/latest/getting_started/installation.html,这里展示了不同的安装情况,可以根据你当前的硬件情况选择合适的方式
这里有不同平台的安装方式:
初始化虚拟环境
$ uv venv vllm --python 3.12 --seed
$ source vllm/bin/activate
安装vllm,这里假设你用的NVIDIA显卡,其他的环境参照着官方文档一步一步安装即可
$ pip install vllm
$ uv pip install vllm
执行vllm -h可以看到下面信息
$ vllm -h
usage: vllm [-h] [-v] {chat,complete,serve} ...
vLLM CLI
positional arguments:
{chat,complete,serve}
chat Generate chat completions via the running API server
complete Generate text completions based on the given prompt via the running API server
serve Start the vLLM OpenAI Compatible API server
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
启动vllm服务,并指定相应的模型,这里以deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B(https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B?local-app=vllm)为例:
然后用下面命令启动,启动过程中会去下载模型,这个根据你的网络情况
env OPENAI_API_KEY=123456 vllm serve "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"
其中OPENAI_API_KEY为外部工具调用接口需要配置的key值,看到下面内容说明启动成功
通过http://你服务器IP:8000/docs,可以访问所有接口文档
0x04 安装客户端工具
这里我介绍两款工具的使用方法, 一款是PC软件,一款是浏览器服务:
- CherryStudio (https://docs.cherry-ai.com/cherrystudio/download)
- open-webui (https://github.com/open-webui/open-webui)
1. CherryStudio
下载后直接按提示安装,安装后并打开该软件
配置vllm服务,创建模型供应商
\1. 模型名字填写:vllm
\2. 模型提供商选择OpenAI, 因为vllm兼容OpenAI的接口
接下来填写接口信息
\1. key在启动参数的地方设置过,直接填写
\2. vllm服务地址
\3. 然后点击下面按钮添加模型
\1. 模型名字:deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
接下来创建聊天助手:
\1. 选择聊天
\2. 设置助手模型
\3. 选中我们配置的模型
开启聊天
2. open-webui
docker compose 配置文件
version: '3'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main # 镜像略大,下载情况根据你网速
ports:
- "3000:8080"
environment:
- OPENAI_API_KEY=123456 # api key
- OPENAI_API_BASE_URL=http://你服务器地址:8000/v1/ # vllm服务地址
volumes:
- ./data:/app/backend/data # 挂载数据卷(根据项目需求调整路径)
restart: always
启动docker服务
$ docker-compose up -d
访问web客户端,地址: http://你的服务器IP:3000, 由于服务启动比较慢,当你看到下面界面说明启动成功
接下来配置用户名和密码
配置后登录
开启聊天:
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。