vLLM和ollama安装部署大模型详细教程

背景

最近需要部署模型,之前一直用的ollama部署的,考虑到这次机器能力比较强大,100+G的显存,所以选择了vllm进行部署,本文主要讲解vllm安装部署大模型,顺便也说一下ollama,希望能帮助到一些有用到的同学。

一、介绍

1. vLLM(Vectorized Large Language Model)

vLLM 是由加州大学伯克利分校开发的一个高性能大语言模型推理和服务框架。它通过 PagedAttention 技术优化了显存管理,显著提升了吞吐量和推理速度,特别适合在生产环境中部署大模型。

  • 特点

    • 高吞吐量:比 Hugging Face Transformers 快 24 倍以上。
    • 支持连续批处理(Continuous Batching)。
    • 支持主流模型:Llama、ChatGLM、Qwen、Baichuan 等。
    • 易于集成到 FastAPI、Ray 等服务中。
    • 主要用于高性能推理服务部署
  • 适用场景:企业级 API 服务、高并发推理、需要低延迟和高吞吐的应用。

  • 官网/项目地址:https://github.com/vllm-project/vllm

中英文文档信息:

https://docs.vllm.ai/en/latest/getting_started/quickstart.html

https://vllm.hyper.ai/docs/getting-started/quickstart/

2. Ollama

  • Ollama 是一个本地化运行大语言模型的轻量级工具,旨在让开发者在本地机器上轻松下载、运行和管理开源大模型(如 Llama3、Qwen、Mistral 等)。

  • 特点

    • 极简安装,一键启动。
    • 支持 macOS、Linux、Windows(预览)。
    • 提供 ollama run model_name 这样的命令行交互。
    • 支持自定义模型(Modelfile)。
    • 自带 Web UI(http://localhost:11434)和 API 接口。
    • 不需要写代码即可使用。
  • 适用场景:本地开发、学习、测试、个人项目、快速原型。

  • 官网地址:https://ollama.com

二、安装与部署教程

1.模型下载

可以通过HuggingFace下载,国内可以通过阿里魔搭平台下载

https://www.modelscope.cn/

下载方法魔搭有三种方法下载,都可以选

pip install modelscope
modelscope download --model Qwen/Qwen3-32B-AWQ --local_dir /data/llm/

2.vLLM(推荐生产部署)

1. 环境准备

  • GPU:NVIDIA GPU(推荐 24GB 显存以上,如 A100、3090、4090)
  • CUDA 驱动:已安装
  • Python:3.9 -- 3.12

2. 创建虚拟环境

如果是原生的python环境

创建虚拟环境
python -m venv venv

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  vllm==0.9.2

也可以使用conda来创建和管理 Python 环境,具体参考博主的另一篇文章:

https://blog.csdn.net/Alex_81D/article/details/135692506

# 创建虚拟环境
conda create -n vllm python==3.10
conda init bash
 
conda deactivate
conda activate vllm 
# 最新版发现好像有点问题
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  vllm==0.9.2

等着疯狂下载吧,这个过程需要大概一个小时左右吧,具体根据你的网速

3.启动模型服务

CUDA_VISIBLE_DEVICES=0,1 \
nohup vllm serve /data/llms/models/Qwen/Qwen3-32B-AWQ/ \
  --host 0.0.0.0 --port 9999 --dtype half --trust-remote-code --served-model-name qwen3_32b_awq \
  --gpu-memory-utilization 0.4 --reasoning-parser qwen3 \
  --disable-log-stats --uvicorn-log-level debug \
  --max-model-len 20480 \
   > qwen3_14b_awq.log 2>&1 &

上面的路径为你本地下载好的模型路径

参数总结表格

参数含义推荐值/说明
模型路径要加载的模型位置必须为 HuggingFace 格式
--tensor-parallel-size N使用 N 张 GPU 并行与 GPU 数量一致
--max-model-len N支持的最大上下文长度不要超过模型训练长度
--port NHTTP 服务监听端口如 6001、8000 等
--enforce-eager强制使用 eager 模式用于调试或兼容性
--uvicorn-log-level日志等级debug, info 等
--gpu-memory-utilization显存使用率推荐 0.8~0.95
--served-model-name对外显示的模型名用于 /v1/models 接口

主要参数设置

以下是启动 vLLM 服务器时常用的一些参数:

  • --model:要使用的 HuggingFace 模型名称或路径(默认值:facebook/opt-125m)。
  • --host 和 --port:指定服务器地址和端口。
  • --dtype:模型权重和激活的精度类型。可能的值:autohalffloat16bfloat16floatfloat32。默认值:auto
  • --tokenizer:要使用的 HuggingFace 标记器名称或路径。如果未指定,默认使用模型名称或路径。
  • --max-num-seqs:每次迭代的最大序列数。
  • --max-model-len:模型的上下文长度,默认值自动从模型配置中获取。
  • --tensor-parallel-size-tp:张量并行副本数量(对于 GPU)。默认值:1
  • --distributed-executor-backend=ray:指定分布式服务的后端,可能的值:raymp。默认值:ray(当使用超过一个 GPU 时,自动设置为 ray)。
python3 -m vllm.entrypoints.openai.api_server --model /input1/Qwen3-0.6B/ --host 0.0.0.0 --port 8080 --dtype auto --max-num-seqs 32 --max-model-len 4096 --tensor-parallel-size 1 --trust-remote-code

4.支持的功能

  • 多 GPU 并行(--tensor-parallel-size 2
  • 批处理大小控制
  • 异步推理
  • Prometheus 监控
  • 与 LangChain、LlamaIndex 集成

https://zhuanlan.zhihu.com/p/1928120910411441449

https://kkgithub.com/QwenLM/Qwen-Agent

https://openbayes.com/console/public/tutorials/rXxb5fZFr29?utm_source=vLLM-CNdoc&utm_medium=vLLM-CNdoc-V1&utm_campaign=vLLM-CNdoc-V1-25ap

https://blog.csdn.net/qq_40902709/article/details/147086232

https://blog.csdn.net/hbkybkzw/article/details/146485866

3.Ollama(推荐新手)

1.安装 Ollama

pip install modelscope 
# 编写shell文件 ollama-modelscope-install.sh
modelscope download --model=modelscope/ollama-linux --local_dir ./ollama-linux

# 运行ollama安装脚本, 默认/usr/share/ollama
cd ollama-linux
sudo chmod 777 ./ollama-modelscope-install.sh
./ollama-modelscope-install.sh

# 查看ollama是否已经安装完毕

ollama -v 

2.配置

## 指定ollama模型存储位置
OLLAMA_MODELS=/your-model-path

## 指定ollama启动端口。
OLLAMA_HOST=0.0.0.0:xxxx

## 启动ollama服务
ollama serve

3.部署Deepseek-r1:14b

首次部署时需要等待ollama下载模型文件

## 部署Deepseek-r1:14b,首次部署时需要等待ollama下载模型文件。
ollama run deepseek-r1:14b 
*若提示“could not connect to ollama app”,则需要在上面命令前加上 OLLAMA_HOST=0.0.0.0:xxxx *

4.vLLM vs Ollama 对比

特性vLLMOllama
安装难度中等(需 Python、CUDA)极简(一键安装)
性能⭐⭐⭐⭐⭐(高吞吐)⭐⭐⭐(适合单机)
易用性需编码/命令行命令行 + Web UI
支持模型HuggingFace 所有模型Ollama 库中的模型
本地运行
生产部署✅✅✅(推荐)✅(轻量级)
API 兼容 OpenAI✅(部分兼容)
自定义模型✅(通过 HuggingFace或者魔搭)✅(通过 Modelfile)
显存优化PagedAttention(强)一般

5.API调用

url: http://192.168.0.0:8088/v1/chat/completions

三、遇到的问题以及解决方法

1.ValueError: ‘llava‘ is already used by a Transformers config, pick another name.

line 728, in register raise ValueError(f"'{key}' is already used by a Transformers config, pick another name.") ValueError: 'llava' is already used by a Transformers config, pick another name. 

解决方法:

transformers进行降级,降级到4.30.1或者4.30.0

pip install -U transformers==4.51.3

https://blog.csdn.net/jacke121/article/details/143879099

2.版本不兼容:发现有些模型在新版vllm上启动不起来,需要更新版本,这个是我目前使用较为稳定的版本 0.9.2,更新vllm版本

pip show vllm | grep Version

pip install -U vllm==0.9.2

对应的cuda版本如下:12.6.x

3.GPU不足

4.gpu-memory-utilization、--tensor-parallel-size

gpu-memory-utilization 0.7

–gpu-memory-utilization:建议0.7~0.9,过高可能导致OOM 。

–tensor-parallel-size:必须与GPU数量一致,否则会报错ValueError: Total number of attention heads must be divisible by tensor parallel size 。

内容概要:本文围绕“融合模拟退火自适应变异的混沌鲸鱼优化算法(AAMCWOA)”展开研究,提出一种创新的智能优化算法,通过引入混沌初始化、模拟退火机制自适应变异策略,有效提升传统鲸鱼优化算法的收敛速度与全局搜索能力,避免陷入局部最优。该算法在MATLAB平台上实现,并应用于RBF神经网络的参数优化与分类预测,验证了其在复杂非线性问题中的优越性能。文档还附带14页算法原理解析,深入阐述各改进模块的设计思路与数学模型。此外,文中列举了大量相关科研方向与应用场景,涵盖信号处理、路径规划、电力系统、故障诊断、机器学习等多个领域,展示了该算法的广泛适用性。; 适合人群:具备一定编程基础优【创新SCI算法】AAMCWOA融合模拟退火自适应变异的混沌鲸鱼优化算法研究(Matlab代码实现)化算法背景,从事智能算法研究或工程优化应用的研究生、科研人员及工程技术人员,尤其适合致力于智能计算、人工智能与MATLAB仿真的1-3年经验研究人员。; 使用场景及目标:①用于解决复杂函数优化、神经网络参数调优、分类预测等科研问题;②作为SCI论文复现与算法创新的基础工具,支撑高水平学术研究;③结合MATLAB代码实现,快速验证算法有效性并拓展至实际工程场景。; 阅读建议:建议结合提供的算法原理详解文档逐模块理解AAMCWOA的实现逻辑,通过调试MATLAB代码掌握参数设置与性能评估方法,并尝试将其迁移至其他优化任务中进行对比实验,以深化对智能优化算法设计思想的理解。
<think>嗯,用户问的是部署Deepseek-R1大模型是否必须使用vLLM或者Ollama,以及它们之间的关系。我需要先弄清楚Deepseek-R1是什么模型,可能是一个特定的大语言模型,比如由深度求索公司开发的。然后要了解vLLMOllama的作用,它们都是推理部署框架,但具体有什么不同呢? 首先,我应该解释部署大模型的一般方法,然后说明vLLMOllama各自的优势。用户可能想知道是否有其他替代方案,或者是否必须依赖这两个工具。需要明确它们之间的关系,比如Deepseek-R1是否官方支持这些框架,或者它们只是常用的工具。 可能用户对部署流程不太熟悉,所以需要分步骤说明。比如,部署大模型通常需要模型加载、推理优化、服务化等步骤,而vLLM提供了高性能的推理引擎,Ollama则更注重本地化易用性。还要提到其他可能的工具,比如Hugging Face的Transformers库,或者使用原生的PyTorch、TensorFlow等。 需要强调是否必须使用这两个工具,答案应该是否定的,但使用它们可以带来效率或便利性上的好处。可能用户在选择工具时有性能或部署环境上的考虑,比如是否需要高并发、低延迟,或者是否需要在本地快速启动。 另外,可能需要提到Deepseek-R1的官方文档或推荐配置,如果有的话,官方可能更推荐某个工具。如果用户没有技术背景,可能需要用更通俗的语言解释这些工具的作用,比如类比为不同的软件帮助更好地运行模型。 最后,总结关系:Deepseek-R1是模型,vLLMOllama部署工具,提供不同的优势,用户可以根据需求选择,不是必须的,但推荐使用以提高效率。</think>部署 **Deepseek-R1** 大模型并不强制依赖 **vLLM** 或 **Ollama**,但这两个工具可以显著简化部署流程并提升推理效率。以下是它们之间的关系区别: --- ### **1. Deepseek-R1 与 vLLM/Ollama 的关系** - **Deepseek-R1** 是一个大语言模型(如由深度求索公司开发),其本质是模型权重架构文件(如 PyTorch 或 Hugging Face 格式)。 - **vLLM** **Ollama** 是**模型推理服务化工具**,用于高效加载、优化部署大模型。它们与 Deepseek-R1 的关系类似于“播放器”与“视频文件”——前者提供运行环境,后者是内容本身。 --- ### **2. 为什么常用 vLLMOllama?** #### **(1) vLLM 的优势** - **高性能推理**:通过 PagedAttention 技术优化显存管理,显著提升吞吐量(尤其适合高并发场景)。 - **兼容性**:支持 Hugging Face 格式模型,若 Deepseek-R1 提供对应版本,可直接部署。 - **API 服务化**:内置类似 OpenAI 的 API 接口,方便集成到业务系统。 #### **(2) Ollama 的优势** - **本地化部署**:针对个人电脑或边缘设备优化,资源占用低,适合本地快速实验。 - **简化操作**:一键安装、命令行交互,无需复杂配置即可运行模型。 - **模型库支持**:若 Deepseek-R1 被纳入 Ollama 官方或社区模型库,可直接通过 `ollama run` 调用。 --- ### **3. 是否必须使用 vLLM/Ollama?** - **不是必须的**,但推荐使用以提升效率。以下是替代方案: - **原生 PyTorch/Hugging Face**:直接加载模型权重,编写自定义推理代码,灵活性高但需手动优化性能。 -LLM**:NVIDIA 的推理加速库,适合对延迟敏感的场景。 - **FastAPI + 自定义服务**:自行封装模型为 HTTP API,适合需要深度定制的场景。 -- ### **4. 如何选择工具?** | **场景** | **推荐工具** | **原因** | |--|----------------------------------------| | 高并发生产环境 | vLLM | 吞吐量显存优化最佳 | | 本地快速测试 | Ollama | 易用性高,开箱即用 | | 定制化需求或研究 | Hugging Face | 灵活控制模型推理逻辑 | | NVIDIA 硬件极致优化 | TensorRT-LLM | 低延迟,与 CUDA 深度集成 | -- ### **5. 部署步骤示例(以 vLLM 为例)** 1. **安装工具**:`pip install vllm` 2. **启动服务**: ```bash vllm_api --model deepseek-ai/deepseek-r1 --tensor-parallel-size 2 ``` 3. **调用 API**: ```python from vllm import LLM llm = LLM("deepseek-r1") output = llm.generate("你好,Deepseek-R1!") ``` --- ### **总结** - **Deepseek-R1** 是模型,**vLLM/Ollama** 是部署工具,二者可组合但非强绑定。 - 选择工具需权衡场景需求(性能、易用性、硬件),非技术用户可优先尝试 Ollama,生产环境推荐 vLLM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alex_81D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值