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

好,咱们正式开始动手之前,先把“家伙事儿”备齐了。环境搭建这事儿,说简单也简单,说坑也多。我见过不少同学,代码写得飞起,结果一跑就报错,最后发现是CUDA版本没对上。嗯,咱们今天就把这事一次说清楚。

3.1 硬件要求:你的机器够不够“硬”?

vLLM这玩意儿,说白了就是个“吃显存”的怪兽。你想想看,大模型动辄几十亿参数,全塞进显存里,那可不是闹着玩的。

GPU:首选NVIDIA,别无他选

目前vLLM只支持NVIDIA的GPU。AMD的卡?暂时别想了。我个人习惯用A100或H100做生产环境,但如果你只是学习或小规模测试,RTX 3090/4090也能凑合。

GPU型号 显存 适合场景
A100 (80GB) 80GB 生产环境,7B~70B模型
V100 (32GB) 32GB 中等规模,7B模型
RTX 4090 (24GB) 24GB 个人开发,7B以下模型
RTX 3090 (24GB) 24GB 个人开发,7B以下模型
⚠️ 注意: 显存不够怎么办?我曾经在项目里硬着头皮用RTX 2080跑7B模型,结果OOM(显存溢出)报错不断。后来加了量化(int8)才勉强跑起来。所以,显存是硬门槛,别心存侥幸。

CPU与内存:别让CPU拖后腿

GPU负责计算,CPU负责调度。vLLM的调度器是跑在CPU上的,所以CPU也不能太弱。我建议至少8核以上,内存32GB起步。如果你要加载70B模型,内存建议128GB以上——因为模型加载时,会先解压到内存里。

3.2 软件依赖:版本对不上,一切白搭

软件依赖这块,我踩过的坑最多。说白了,就是版本匹配问题。CUDA、PyTorch、vLLM三者之间,版本必须“门当户对”。

CUDA:驱动与工具包

CUDA版本取决于你的显卡驱动。怎么查?命令行跑一下:

nvidia-smi

看右上角的“CUDA Version”。比如显示12.1,那你就装CUDA 12.x的工具包。我个人习惯用CUDA 12.1,因为兼容性最好。

💡 小技巧: 别装最新的CUDA!我遇到过CUDA 12.4刚发布时,vLLM还不支持,折腾了两天才发现是版本问题。建议用vLLM官方文档里推荐的CUDA版本。

PyTorch:跟着CUDA走

PyTorch版本必须和CUDA版本匹配。比如CUDA 12.1,就装PyTorch 2.1.x。怎么装?去PyTorch官网,选你的系统、CUDA版本,它会生成安装命令。

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index-url https://download.pytorch.org/whl/cu121

嗯,这里要注意:别用conda装PyTorch,我试过几次,依赖解析慢得要命,还容易冲突。pip又快又稳。

vLLM安装:一行命令搞定?不一定

理论上,vLLM安装很简单:

pip install vllm

但实际中,我遇到过不少问题。比如编译时缺gcc、缺ninja。所以建议先装好这些:

# Ubuntu/Debian
sudo apt-get install build-essential cmake ninja-build

# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake ninja-build

装完依赖,再跑pip install vllm。如果还报错,八成是CUDA版本不对。去vLLM的GitHub Issues里搜一下,基本都有答案。

3.3 验证:跑个Hello World

环境搭好了,怎么知道能不能用?跑个最简单的例子:

from vllm import LLM, SamplingParams

# 加载一个超小模型,比如Qwen2.5-0.5B
llm = LLM(model="Qwen/Qwen2.5-0.5B-Instruct")

# 设置采样参数
sampling_params = SamplingParams(temperature=0.7, top_p=0.9)

# 推理
outputs = llm.generate(["Hello, how are you?"], sampling_params)

# 打印结果
for output in outputs:
    print(output.outputs[0].text)

如果能看到输出,恭喜你,环境搭建成功了!

🎯 验证要点:
  • 模型加载不报错(显存够用)
  • 推理速度正常(别卡死)
  • 输出结果合理(不是乱码)

我曾经在验证这一步卡了半小时,因为忘了设置trust_remote_code=True。有些模型需要这个参数才能加载。所以,如果报错说“不受信任的代码”,加上这个参数:

llm = LLM(model="Qwen/Qwen2.5-0.5B-Instruct", trust_remote_code=True)

3.4 知识体系总览

下面这张图,帮你理清环境搭建的整个逻辑:

vLLM环境搭建知识体系 硬件层 软件层 应用层 GPU (NVIDIA) 显存 (≥24GB) CPU (≥8核) 内存 (≥32GB) CUDA (12.x) PyTorch (2.1.x) gcc/ninja Python (3.8+) vLLM安装 模型加载 推理验证 性能测试 硬件是基础,软件是桥梁,应用是目标 三者版本必须匹配,否则寸步难行

这张图把环境搭建分成了三层:硬件层、软件层、应用层。每一层都有对应的组件,而且层与层之间是依赖关系。说白了,硬件是地基,软件是砖瓦,应用是房子。地基不稳,房子就塌。

💡 我的建议: 搭建环境时,先确认硬件(GPU型号、显存大小),再装CUDA和PyTorch,最后装vLLM。顺序别搞反了,否则容易出兼容性问题。

好了,环境搭建就聊到这儿。记住一句话:版本匹配是王道,显存够用是底线。下一节咱们开始玩真的——模型热加载。


专注资料整理