简介:本文详细介绍在Ubuntu系统中安装vLLM的完整流程,涵盖环境准备、依赖安装、源码编译、验证测试等关键步骤,并提供性能优化建议与常见问题解决方案。
vLLM(Vectorized Low-Latency Machine Learning)是专为高性能机器学习推理设计的开源框架,通过向量化计算和内存优化技术显著降低推理延迟。其核心优势包括:
| 项目 | 推荐配置 |
|---|---|
| Ubuntu版本 | 20.04 LTS/22.04 LTS |
| 内核版本 | ≥5.4(推荐5.15+) |
| Python环境 | 3.8-3.11(需与PyTorch版本匹配) |
| CUDA版本 | 11.7/11.8/12.1(根据GPU型号选择) |
# 更新软件包索引sudo apt update && sudo apt upgrade -y# 安装基础开发工具sudo apt install -y build-essential cmake git wget curl# 安装Python环境(推荐使用conda管理)wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.shsource ~/.bashrc# 创建专用虚拟环境conda create -n vllm_env python=3.10conda activate vllm_env
# 添加官方仓库sudo add-apt-repository ppa:graphics-drivers/ppasudo apt update# 自动检测推荐版本ubuntu-drivers devices# 安装推荐驱动(示例为535版本)sudo apt install -y nvidia-driver-535# 验证安装nvidia-smi
# 下载对应版本的CUDA(以12.1为例)wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pinsudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.1-1_amd64.debsudo dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.1-1_amd64.debsudo cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/sudo apt updatesudo apt install -y cuda# 配置环境变量echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrcecho 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrcsource ~/.bashrc
# 根据CUDA版本选择PyTorch(12.1对应2.0+)pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121# 验证安装python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
# 克隆官方仓库git clone https://github.com/vllm-project/vllm.gitcd vllm# 安装开发依赖pip install -r requirements.txt# 编译核心模块pip install .# 可选:安装扩展功能pip install ".[triton,flash_attn]" # 根据硬件支持选择
# 创建测试脚本test_vllm.pyfrom vllm import LLM, SamplingParams# 初始化模型(需提前下载模型权重)llm = LLM(model="facebook/opt-125m")# 配置采样参数sampling_params = SamplingParams(temperature=0.7, top_p=0.9)# 执行推理outputs = llm.generate(["Hello, the world of"], sampling_params)print(outputs[0].outputs[0].text)
# 使用官方benchmark工具python -m vllm.benchmark.benchmark_llm \--model facebook/opt-125m \--prompt-len 32 \--output-len 128 \--num-gpus 1 \--num-trials 100
现象:CUDA version mismatch
解决:
nvcc --version与torch.version.cuda是否一致conda install -c nvidia cudatoolkit=12.1强制指定版本优化建议:
export VLLM_USE_CUDA_GRAPH=1--max-batch-size 32--dtype half
# 启动多卡服务示例python -m vllm.entrypoints.openai.api_server \--model facebook/opt-350m \--gpu-memory-utilization 0.9 \--tensor-parallel-size 2 \--port 8000
FROM nvidia/cuda:12.1.1-base-ubuntu22.04RUN apt update && apt install -y python3-pipCOPY requirements.txt .RUN pip install -r requirements.txtCOPY . /appWORKDIR /appCMD ["python", "server.py"]
# 进入项目目录cd vllm# 拉取最新代码git pull origin main# 更新依赖pip install --upgrade -r requirements.txt# 重新安装pip install --force-reinstall .
git checkout <commit-id>回退到稳定版本pip install vllm==<version>指定旧版本model_weights目录确保模型可恢复通过上述系统化的部署方案,开发者可在Ubuntu环境中快速构建高性能的vLLM推理服务。实际部署时建议先在测试环境验证,再逐步迁移到生产环境,同时关注官方仓库的更新日志以获取最新优化特性。