vLLM的安装多卡部署大语言模型

vLLM是一个专为大规模语言模型设计的高性能推理库,由加州大学伯克利分校的研究团队开发。它通过PagedAttention、连续批处理和优化的CUDA内核等技术,显著提升了大语言模型的推理性能和内存效率,特别适合生产环境中的模型服务部署。

vLLM支持多种部署方式,包括单机部署、多卡分布式部署和集群部署。本教程将重点介绍单机多卡部署的完整流程,从环境准备到服务提供的每个步骤。

1. 环境准备与安装

1.1 创建虚拟环境

使用conda创建独立的Python环境:

# 创建名为vllm的虚拟环境,Python版本3.10
conda create -n vllm python=3.10
# 激活虚拟环境
conda activate vllm

1.2 安装vLLM

vLLM支持多种安装方式,推荐使用pip安装:

# 方法1:使用pip安装(推荐,速度更快)
# 先下载Pytorch 具体选用版本请参考本文头部的 
前置教程中的内容
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
# 方法2:从源码安装(适合开发者),网盘中的代码即包括了源码
git clone https://github.com/vllm-project/vllm.gitcd vllmpip install -e .

3. 模型下载与管理

网盘中已包含相关模型,可跳过此步骤

使用Git克隆模型仓库是最可靠的方式,特别适合大文件的下载:

# 创建模型目录
mkdir -p /mnt/c/modelscd /mnt/c/models# git lfs 
初始化
git lfs install
# 下载Qwen3-0.6B模型 
网盘中提供了相应的模型文件,此步可跳过
git clone https://www.modelscope.cn/Qwen/Qwen3-0.6B.git

4. 启动vLLM服务

4.1 基础服务启动

启动vLLM服务非常简单,以下是最基础的启动命令:

# 启动单GPU服务vllm serve /mnt/c/models/Qwen3-0.6B \  --port 8800 \  --host 0.0.0.0 \  --dtype half \  --gpu-memory-utilization 0.5 \  --max-model-len 8192

参数说明

  • --host 0.0.0.0:允许外部访问

  • --dtype half:使用半精度浮点数,减少显存占用

  • --gpu-memory-utilization 0.5:使用GPU的50%显存

  • --port 8000:服务端口

  • --max-model-len 8192:限制单次输入的最大token数量,防止内存溢出

4.2 多卡分布式部署

对于需要更高性能的场景,可以使用多GPU并行推理:

# 双卡并行部署(张量并行)
vllm serve /mnt/c/models/Qwen3-0.6B \  --port 9000 \  --host 0.0.0.0 \  --dtype=half \  --gpu-memory-utilization 0.85 \  --max-model-len 6000 \  --tensor-parallel-size 2

5. 详细参数说明

5.1 并行计算参数

参数

作用

建议值/示例

适用场景

--tensor-parallel-size

设置张量并行GPU数量,将模型计算拆分到多个GPU并行执行

通常等于可用GPU数量(如2表示2个GPU并行计算)

计算密集型任务,提升推理速度

--pipeline-parallel-size

设置流水线并行GPU数量,按模型层拆分到不同GPU处理

若模型有24层,设为3则每GPU处理8层

超大型模型(如100B+参数),减少单卡内存压力

5.2 内存优化参数

参数

作用

建议值/示例

适用场景

--gpu-memory-utilization

限制GPU显存使用比例(0~1),避免内存溢出

0.9表示最多占用90%显存,留10%缓冲

模型接近GPU显存上限时使用

--cpu-offload-gb

当GPU显存不足时,将部分数据卸载到CPU内存

10表示卸载10GB数据到CPU

GPU显存不足但CPU内存充足时使用

--swap-space

为多GPU数据交换分配临时存储空间

通常为4GB

多GPU并行计算时优化数据交换效率

--sharding

将模型权重分片存储到多个GPU,减少单卡显存占用

启用即可

超大模型(如70B+参数)或显存不足时使用

5.3 计算精度与加速参数

参数

作用

可选值

说明

--dtype

设置模型推理的数据类型

half(FP16)、float16bfloat16auto

half减少显存占用,auto自动选择最佳精度

--quantization

启用模型量化,减少显存占用

awqgptqfp8int8

awqgptq用于权重量化,fp8用于8位浮点数量化

--kv-cache-dtype

设置KV缓存的数据类型

fp8fp16auto

使用FP8可显著减少KV缓存显存占用

5.4 模型与推理控制参数

参数

作用

建议值/示例

权衡说明

--max-model-len

限制单次输入的最大token数量,防止内存溢出

2048表示输入不能超过2048个token

根据GPU显存调整,长文本生成时需要

--max-num-seqs

限制同时处理的序列数量

通常为128-512,根据GPU显存和模型大小调整

增大可提升吞吐量,但需要更多显存

--max-batch-delay

设置批处理的最大等待时间(毫秒)

100表示最多等待100ms积累请求进行批处理

值越小延迟越低但效率下降,值越大吞吐越高但延迟增加

5.5 服务与日志配置参数

参数

作用

可选值/示例

说明

--log-level

控制日志详细程度

DEBUGINFOWARNINGERROR

DEBUG最详细,ERROR仅显示错误

--max-concurrent-requests

限制同时处理的请求数量,防止服务过载

100表示最多同时处理100个请求

根据服务器性能调整

--disable-log-stats

禁用统计信息日志输出

启用即可

减少日志输出,提高性能

5.6 参数优化建议

场景

推荐调整的参数

配置示例

GPU显存不足

--dtype half--gpu-memory-utilization 0.9--cpu-offload-gb 10

--dtype half --gpu-memory-utilization 0.9 --cpu-offload-gb 10

多GPU加速

--tensor-parallel-size N(N=GPU数量)

--tensor-parallel-size 2

超长文本生成

--max-model-len 4096(根据显存调整)

--max-model-len 4096

低延迟需求

--max-batch-delay 50--max-num-seqs 128

--max-batch-delay 50 --max-num-seqs 128

高吞吐需求

--max-num-seqs 512--max-batch-delay 200

--max-num-seqs 512 --max-batch-delay 200

量化加速

--quantization awq--kv-cache-dtype fp8

--quantization awq --kv-cache-dtype fp8

通过合理组合这些参数,可以显著优化大语言模型的推理效率、内存占用和服务稳定性。

6. API使用与集成

6.1 OpenAI兼容API

vLLM提供完全兼容OpenAI的API接口,支持标准的Chat Completions格式:

基础API调用

# 新建wsl命令行,粘贴下面命令,使用curl调用API:
curl -X POST 'http://localhost:8000/v1/chat/completions' \  --header 'Content-Type: application/json' \  --data-raw '{    "model": "/mnt/c/models/Qwen3-0.6B",    "messages": [      {"role": "system", "content": "you are a helpful assistant"},      {"role": "user", "content": "你好,请介绍一下vLLM"}    ],    "max_tokens": 1000,    "temperature": 0.7,    "stream": false  }'

7.2 ApiPost测试

ApiPost是一款强大的API测试工具,可以方便地测试vLLM服务:

  1. 下载安装ApiPost

  2. 创建API请求
    将7.1节中的API调用Curl命令复制,在ApiPost的+按钮中选择从cURL导入的页面中粘贴,将自动解析为Api请求,点击发送按钮即可,显示如下结果则表示服务调用成功:

    {     "id": "chatcmpl-66ba9c6a287044629302294b5b06e116",     "object": "chat.completion",     "created": 1760833573,     "model": "/mnt/c/models/Qwen3-0.6B",     "choices": [         {             "index": 0,             "message": {                 "role": "assistant",                 "content": "<think>\n好的,用户让我介绍一下vLLM。首先,我需要确认vLLM是什么。vLLM是阿里巴巴集团旗下的智能语音服务,主要提供语音识别和生成服务。接下来,我要确保回答准确,涵盖关键信息,比如服务范围、应用场景、技术特点等。同时,要保持回答简洁明了,避免使用专业术语过多,让用户容易理解。另外,还要注意用户可能的深层需求,比如他们是否想了解vLLM的具体功能或如何使用,所以回答中可以适当提到这些方面。最后,检查一下有没有遗漏的重要信息,确保回答全面。\n</think>\n\nvLLM是阿里巴巴集团旗下的智能语音服务,主要提供语音识别和生成两大核心功能。服务范围覆盖语音助手、智能客服、自然语言处理等场景,支持多语言、多模态交互。技术方面,vLLM依托阿里巴巴的AI平台,结合深度学习模型,具备高效、精准的语音处理能力,广泛应用于企业语音助手、智能客服系统及跨平台语音交互解决方案中。",                 "refusal": null,                 "annotations": null,                 "audio": null,                 "function_call": null,                 "tool_calls": [],                 "reasoning_content": null             },             "logprobs": null,             "finish_reason": "stop",             "stop_reason": null,             "token_ids": null         }     ]     ...}

8. 总结

本教程详细介绍了vLLM的安装、配置、部署和使用的完整流程。vLLM作为目前最先进的大语言模型推理引擎之一,为AI应用的开发和部署提供了强大的技术支持。掌握vLLM的使用将大大提升您在大模型应用开发中的效率和性能。


vLLM的安装多卡部署大语言模型
http://localhost:8090//archives/vllmde-an-zhuang-duo-qia-bu-shu-da-yu-yan-mo-xing
作者
昊昱天合
发布于
2025年11月24日
更新于
2026年01月27日
许可协议