环境搭建:硬件要求与软件依赖

说实话,环境搭建这一步,看着简单,但坑是真不少。我见过太多人卡在这一步,明明代码写得挺好,结果跑起来各种报错。今天咱们就把这事儿捋清楚。

硬件要求:别让GPU拖后腿

vLLM对硬件的要求,说白了就两点:显存够大,计算能力够新。

GPU型号 显存建议 适用场景
NVIDIA A100 (80GB) 80GB 生产环境,大模型部署
NVIDIA V100 (32GB) 32GB 中等规模模型推理
NVIDIA A10 (24GB) 24GB 7B-13B模型测试
NVIDIA RTX 4090 (24GB) 24GB 个人开发调试
NVIDIA T4 (16GB) 16GB 小模型或量化后推理
⚠️ 注意: 我曾经在T4上跑13B模型,结果OOM报错直接把我整懵了。后来才发现,vLLM的PagedAttention虽然省显存,但模型本身加载就需要至少2倍参数量的显存。7B模型建议16GB起步,13B至少24GB。

我个人习惯,选GPU时先看两个指标:显存带宽和计算能力(Compute Capability)。vLLM要求计算能力至少7.0,也就是Volta架构起步。你想想看,如果用的是Pascal架构的P100,那连门都进不去。

软件依赖:版本匹配是门玄学

这里我要重点说一下。vLLM对CUDA和PyTorch的版本要求非常严格。我踩过的坑,你们就别再踩了。

组件 推荐版本 最低版本 备注
CUDA Toolkit 11.8 / 12.1 11.4 推荐11.8,兼容性最好
PyTorch 2.1.0+ 2.0.0 必须匹配CUDA版本
Python 3.10 - 3.12 3.8 推荐3.10
NVIDIA驱动 525.60.13+ 470.57.02 驱动版本决定CUDA可用性
💡 小技巧: 我建议用 nvidia-smi 查看驱动版本,然后用 nvcc --version 确认CUDA版本。这两个版本可能不一致,但vLLM编译时用的是nvcc的版本。

安装方式:pip还是源码?

两种方式我都试过,各有优劣。咱们直接看对比:

安装方式 优点 缺点 推荐场景
pip安装 简单快捷,一行命令搞定 无法自定义编译参数 快速验证、新手入门
源码安装 可调优、可调试、支持自定义 编译时间长,依赖复杂 生产环境、二次开发

pip安装(推荐新手)

# 创建虚拟环境(强烈建议)
python -m venv vllm_env
source vllm_env/bin/activate

# 安装vLLM
pip install vllm

# 如果遇到网络问题,可以用国内镜像
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple

嗯,这里要注意:pip安装的vLLM是预编译的wheel包,只支持特定的CUDA版本。如果你用的CUDA版本不在支持列表里,那就只能走源码安装了。

源码安装(进阶推荐)

我个人习惯用源码安装,因为可以加一些调试信息。而且,我曾经遇到过pip安装的版本和我的CUDA不匹配,折腾了两天才发现是版本问题。

# 克隆仓库
git clone https://github.com/vllm-project/vllm.git
cd vllm

# 安装依赖
pip install -r requirements.txt

# 编译安装(这一步比较耗时)
pip install -e .

# 如果GPU支持FlashAttention,可以启用
export VLLM_USE_FLASH_ATTN=1
pip install -e .
⚠️ 编译警告: 源码编译时,确保你有足够的磁盘空间(至少20GB)。我上次编译到一半磁盘满了,结果整个环境都乱了。还有,编译时间取决于你的CPU核心数,一般需要10-30分钟。

验证安装:跑个Hello World

装完了,怎么知道成没成功?别急,我教你几招。

方法一:导入测试

python -c "import vllm; print(vllm.__version__)"

如果没报错,说明基本安装成功了。你会看到类似 0.4.0 这样的版本号。

方法二:跑个小模型

from vllm import LLM, SamplingParams

# 加载一个小模型测试
llm = LLM(model="facebook/opt-125m")
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

outputs = llm.generate(["Hello, how are you?"], sampling_params)
print(outputs[0].outputs[0].text)
💡 测试建议: 第一次跑的时候,用125M的小模型,加载快,显存占用小。我一般用这个模型做环境验证,确认没问题再上大模型。

方法三:检查GPU利用率

跑上面的代码时,另开一个终端,用 nvidia-smi 观察显存和GPU利用率。正常情况下,你会看到显存被分配,GPU利用率飙升到80%以上。

说白了,验证安装就三步:导入不报错、推理能出结果、GPU在干活。这三步都过了,环境就算搭好了。

常见问题与避坑指南

  • CUDA版本不匹配: 我曾经因为系统装了CUDA 12.0,但PyTorch用的是11.8,结果编译时各种报错。解决方案:统一版本,或者用conda创建隔离环境。
  • 显存不足: 如果报OOM,试试 export VLLM_USE_FLASH_ATTN=1 启用FlashAttention,能省不少显存。
  • 编译卡死: 源码编译时,如果内存不够(小于32GB),可能会卡在某个文件上。建议加swap或者减少并行编译线程数:export MAX_JOBS=4。
  • Python版本问题: 别用Python 3.7,有些依赖不支持。3.10是最稳妥的选择。
vLLM环境搭建流程 硬件准备 软件依赖 选择安装方式 GPU型号选择 显存容量评估 CUDA版本匹配 PyTorch版本 Python版本 pip安装 源码安装 验证安装 避坑提醒 • 计算能力≥7.0 • 显存至少16GB • CUDA与PyTorch版本一致

这张图把整个环境搭建的流程串起来了。从硬件选型到软件配置,再到安装和验证,每一步都有坑。但只要你按这个流程走,基本不会出大问题。

最后说一句:环境搭建这事儿,急不得。我每次搭新环境,都会花半小时做版本检查。磨刀不误砍柴工,环境稳了,后面才能安心搞推理优化。