2、vLLM环境搭建与基础配置:GPU环境检查、vLLM安装、模型下载与加载、基础推理测试

说实话,环境搭建这件事,看着简单,但坑是真不少。我刚开始搞vLLM那会儿,光装个环境就折腾了大半天。后来总结出一套流程,基本能一次搞定。今天就把这套东西掰开揉碎了讲给你听。

2.1 GPU环境检查:别急着装,先看看你的卡

装vLLM之前,第一件事就是确认你的GPU能不能干活。我见过太多人上来就pip install,结果跑起来才发现CUDA版本不对,白忙活一场。

先跑个命令看看家底:

nvidia-smi

这个命令会告诉你三件事:

  • GPU型号 —— 比如A100、V100、RTX 3090这些
  • CUDA版本 —— 比如12.1、11.8,这个很重要
  • 显存大小 —— 决定了你能跑多大的模型

我个人习惯用这个命令看更详细的信息:

python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.device_count()); print(torch.cuda.get_device_name(0))"
小提示: 如果返回False,别慌。先检查是不是没装PyTorch的CUDA版本。我遇到过有人装了CPU版的PyTorch,折腾半天才发现。

嗯,这里要注意一点:vLLM对显存要求不低。7B的模型至少需要16GB显存,13B的模型建议32GB以上。你想想看,如果显存不够,模型加载到一半就OOM了,多尴尬。

2.2 vLLM安装:选对版本很重要

装vLLM其实就一行命令,但版本选择有讲究。

pip install vllm

不过,我建议你指定版本安装。为什么?因为vLLM迭代太快,最新版可能跟你的CUDA版本不兼容。我曾经踩过这个坑——装了0.4.0版本,结果CUDA 11.8不支持,又得降级重装。

推荐的做法是这样的:

# 先查一下你的CUDA版本
nvcc --version

# 然后安装对应版本
pip install vllm==0.3.3  # CUDA 11.8 推荐
pip install vllm==0.4.2  # CUDA 12.1 推荐
注意: 如果你用的是Windows,vLLM目前只支持Linux。我建议用WSL2或者Docker。别问我怎么知道的,我在Windows上硬刚了两天,最后还是老老实实切了Linux。

装完之后,验证一下:

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

没报错就说明装好了。就这么简单。

2.3 模型下载与加载:从HuggingFace到本地

模型下载,说白了就是从HuggingFace把权重拉到本地。但这里有个问题——模型文件动不动几十个G,下载慢不说,还容易断。

我推荐用 huggingface-cli 工具:

# 先装工具
pip install huggingface-hub

# 登录(需要token)
huggingface-cli login

# 下载模型
huggingface-cli download meta-llama/Llama-2-7b-chat-hf --local-dir ./models/llama2-7b

如果你网速慢,可以试试镜像站:

export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download meta-llama/Llama-2-7b-chat-hf --local-dir ./models/llama2-7b

模型下载完后,用vLLM加载:

from vllm import LLM

# 加载模型
llm = LLM(
    model="./models/llama2-7b",
    tensor_parallel_size=1,  # 单卡就设1
    dtype="auto",            # 自动选择精度
    gpu_memory_utilization=0.9  # 显存利用率
)
关键参数说明:
  • tensor_parallel_size:多卡并行时设置,比如2张卡就设2
  • gpu_memory_utilization:控制显存占用,默认0.9,显存不够可以调低
  • dtype:推荐用"auto",vLLM会自动选float16或bfloat16

加载过程中,你会看到一堆日志输出。别怕,这是正常的。vLLM在初始化KV cache、分配显存。等看到 INFO 02-03 10:00:00 llm_engine.py:xxx 这样的日志,就说明加载完成了。

2.4 基础推理测试:跑通第一个对话

模型加载好了,来测一下能不能正常推理。我习惯先跑个简单的:

from vllm import SamplingParams

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

# 准备输入
prompts = ["什么是大语言模型?"]

# 推理
outputs = llm.generate(prompts, sampling_params)

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

如果顺利的话,你会看到模型输出一段文字。嗯,到这里,你的vLLM环境就算搭好了。

不过,我建议你再测几个场景:

  • 多轮对话:把历史对话拼到prompt里
  • 长文本生成:把max_tokens设到2048,看看会不会崩
  • 批量推理:一次传多个prompt,测测吞吐量

我曾经在批量推理上栽过跟头——一次传了100个prompt,结果显存爆了。后来发现是 gpu_memory_utilization 设得太高,调低到0.8就稳了。

2.5 知识体系总览

下面这张图,把整个环境搭建的流程串起来了。你跟着走,基本不会迷路:

vLLM环境搭建与基础配置流程 步骤1:GPU环境检查 nvidia-smi / torch.cuda 步骤2:安装vLLM pip install vllm 步骤3:下载模型 huggingface-cli download 步骤4:加载模型 LLM(model=..., dtype=...) 步骤5:推理测试 llm.generate() 关键参数与注意事项 • tensor_parallel_size:多卡并行数,单卡设1 • gpu_memory_utilization:显存利用率,默认0.9 • dtype:推荐"auto",自动选择float16/bfloat16 • 显存不足时:调低gpu_memory_utilization或换小模型

这张图把整个流程串起来了。你跟着走,基本不会迷路。从GPU检查开始,到安装、下载、加载,最后跑通推理,每一步都有对应的命令和参数。

我的经验: 第一次跑通后,建议把整个流程写成脚本。下次换机器或者换模型,直接跑脚本就行,省得重复劳动。

好了,环境搭好了,模型也能跑了。接下来你就可以开始玩vLLM的各种高级功能了——比如流式输出、量化推理、多卡并行这些。不过那是后面的事了,先把基础打牢再说。


公众号:蓝海资料掘金营,微信deep3321