一、环境准备与安装
1. 创建虚拟环境
为避免依赖冲突,建议使用conda创建独立环境:
conda create -n vllm python=3.10 -y
conda activate vllm
若conda命令未找到,需配置环境变量:
echo 'export PATH="/usr/local/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
conda init
2. 安装依赖库
SQLite升级(解决版本兼容性问题):
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install sqlite=3.42.0
xFormers加速(可选但推荐):
pip install xformers-0.0.27.post2-cp310-cp310-manylinux2014_x86_64.whl
3. 安装vLLM
推荐使用清华源加速安装:
pip install vllm==0.5.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
python -c "import vllm; print(vllm.__version__)" # 应输出0.5.4
二、模型下载与准备
从ModelScope下载模型(以Qwen2.5-1.5B为例):
modelscope download --model qwen/Qwen2.5-1.5B
模型默认路径为:
~/.cache/modelscope/hub/qwen/Qwen2.5-1.5B
三、单机多卡部署
1. 启动命令
以2卡为例:
vllm serve /path/to/model \
--dtype half \ # 半精度减少显存占用
--tensor-parallel-size 2 \ # 张量并行数=GPU数
--gpu-memory-utilization 0.8 \ # 显存利用率阈值
--max-model-len 2048 \ # 最大输入长度
--max-num-seqs 8 \ # 最大并发序列数
--enforce-eager \ # 禁用图优化,避免兼容性问题
--api-key token-abc123 # 自定义API密钥
关键参数说明:
–tensor-parallel-size:必须与GPU数量一致,否则会报错ValueError: Total number of attention heads must be divisible by tensor parallel size 。
–gpu-memory-utilization:建议0.7~0.9,过高可能导致OOM 。
–enforce-eager:禁用CUDA图优化,提升稳定性但略微降低性能 。
2. 验证服务
服务默认监听0.0.0.0:8000,可通过以下命令测试:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2-1.5b",
"messages": [
{"role": "user", "content": "你好,你是谁?"}
]
}'
预期返回:
{
"choices": [{
"message": {"content": "我是通义千问,由阿里云开发的大语言模型。"}
}]
}
四、性能优化与问题排查
1. 显存管理
现象:显存占用异常高
解决:调整–gpu-memory-utilization至更低值(如0.5),或启用–swap-space 16利用主机内存扩展交换空间 。
KV缓存优化:vLLM通过PagedAttention技术动态管理显存,但长序列仍可能占满显存。可通过–block-size 8减小内存块大小 。
2. 常见报错
CUDA版本不兼容:
若报错Bfloat16 is only supported on GPUs with compute capability ≥8.0,需强制使用float16:
vllm serve ... --dtype float16
多卡启动卡死:
设置环境变量强制使用spawn模式:
export VLLM_WORKER_MULTIPROC_METHOD=spawn
五、基准测试
使用ab工具测试吞吐量(需安装apache2-utils):
ab -n 100 -c 10 -p request.json -T "application/json"
http://localhost:8000/v1/chat/completions
六、总结
vLLM的单机多卡部署流程可概括为:环境配置→模型下载→参数调优→服务验证。关键点包括:
1.确保CUDA、PyTorch与vLLM版本兼容 。
2.根据GPU数量设置–tensor-parallel-size 。
3.通过–gpu-memory-utilization平衡显存与性能 。