环境准备与安装:Python环境配置、CUDA与PyTorch安装、vLLM与Transformers库的pip安装及版本兼容性检查

说实话,很多同学在跑大模型时翻车,十有八九是环境没配好。我见过太多人花了两天装环境,最后发现CUDA版本对不上,或者PyTorch和vLLM打架。嗯,这节课咱们就把这事彻底捋清楚。

1. Python环境配置:别用系统自带的Python

我个人习惯,永远不用系统自带的Python。为什么?因为项目多了,依赖会乱成一锅粥。你想想看,一个项目要PyTorch 2.0,另一个要1.13,系统Python根本扛不住。

推荐方案:用conda或venv

我建议用conda,尤其是Windows用户。Linux用户用venv也行,但conda对CUDA的包管理更友好。

# 创建虚拟环境,Python版本选3.10
conda create -n vllm_env python=3.10 -y

# 激活环境
conda activate vllm_env

# 验证Python版本
python --version
# 输出:Python 3.10.x
我的经验:Python 3.10是目前最稳的版本。3.11和3.12虽然新,但有些库还没完全适配。我在项目中吃过3.11的亏,vLLM当时报了个奇怪的段错误,降到3.10就没事了。

2. CUDA与PyTorch安装:版本匹配是门玄学

CUDA和PyTorch的版本匹配,说白了就是「门当户对」。你装个CUDA 12.4,但PyTorch只支持到12.1,那就会出问题。

第一步:检查你的显卡驱动

# Linux/Mac
nvidia-smi

# 看右上角的CUDA Version,比如显示12.4
# 这个版本号决定了你能装什么CUDA Toolkit

第二步:安装CUDA Toolkit

我个人习惯用conda装,省心。但如果你要装特定版本,去NVIDIA官网下载也行。

# conda安装CUDA 12.1(推荐)
conda install cuda -c nvidia

# 或者用pip装PyTorch时自动带CUDA
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
避坑指南:我曾经在服务器上装了CUDA 12.4,结果PyTorch 2.1.2只支持到12.1。跑模型时直接报「CUDA driver version is insufficient」。后来我学乖了,先查PyTorch官方支持的CUDA版本,再装对应的Toolkit。

第三步:验证PyTorch和CUDA是否正常工作

import torch
print(torch.__version__)        # 比如 2.1.2+cu121
print(torch.cuda.is_available()) # True
print(torch.cuda.device_count()) # 显卡数量
print(torch.cuda.get_device_name(0)) # 比如 NVIDIA A100 80GB

如果torch.cuda.is_available()返回False,别慌。先检查驱动,再检查CUDA版本。我遇到过最奇葩的情况是——用户装了CPU版的PyTorch。嗯,这个坑踩过的人都知道。

3. vLLM与Transformers库的pip安装

环境配好了,接下来装核心库。vLLM和Transformers是黄金搭档,但版本要匹配。

安装命令

# 安装vLLM(推荐最新版)
pip install vllm

# 安装Transformers
pip install transformers

# 安装加速库(可选但推荐)
pip install xformers flash-attn
注意:vLLM 0.4.0以上版本对PyTorch有硬性要求。如果你装的是vLLM 0.5.0,PyTorch必须≥2.1.0。否则安装时会直接报错。

版本兼容性速查表

vLLM版本 PyTorch版本 CUDA版本 Transformers版本
0.3.x ≥2.0.0 11.8 / 12.1 ≥4.30.0
0.4.x ≥2.1.0 12.1 ≥4.35.0
0.5.x ≥2.1.0 12.1 / 12.4 ≥4.38.0
0.6.x ≥2.2.0 12.1 / 12.4 ≥4.40.0
我的建议:如果你刚开始学,直接用vLLM 0.5.x + PyTorch 2.1.2 + CUDA 12.1。这套组合我跑了半年,没出过兼容性问题。

4. 版本兼容性检查:别等跑起来才发现问题

装完环境后,我习惯写个脚本做全面检查。这样能提前发现隐患。

# check_env.py
import sys
import torch
import vllm
import transformers

print(f"Python版本: {sys.version}")
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用: {torch.cuda.is_available()}")
print(f"CUDA版本: {torch.version.cuda}")
print(f"vLLM版本: {vllm.__version__}")
print(f"Transformers版本: {transformers.__version__}")

# 检查vLLM是否能正常加载
from vllm import LLM, SamplingParams
print("vLLM导入成功!")

# 检查Transformers是否能加载模型
from transformers import AutoModelForCausalLM, AutoTokenizer
print("Transformers导入成功!")

跑这个脚本,如果所有输出都正常,那环境就稳了。如果报错,根据错误信息去查——大部分问题都是版本不匹配。

我曾经踩过的坑:有一次我装了vLLM 0.4.0,但Transformers是4.28.0。结果加载Llama 2模型时,vLLM报「tokenizer not found」。后来发现是Transformers版本太低,不支持Llama 2的tokenizer。升级到4.35.0就解决了。

5. 知识体系总览

下面这张图,帮你把整个环境准备流程串起来。从Python环境到CUDA,再到vLLM和Transformers,每一步都有依赖关系。

环境准备与安装知识体系 Python 3.10 虚拟环境 CUDA 12.1 / 12.4 PyTorch ≥2.1.0 vLLM 0.5.x Transformers ≥4.38.0 vLLM + Transformers 集成 版本匹配是关键,建议使用表格中的推荐组合

这张图很直观:Python环境是地基,CUDA是桥梁,PyTorch是核心引擎,vLLM和Transformers是左右手。任何一个环节出问题,模型就跑不起来。

6. 快速验证脚本

最后,我送你一个完整的验证脚本。把它保存为verify_env.py,跑一遍就能知道环境是否合格。

#!/usr/bin/env python3
# verify_env.py - 环境验证脚本

import sys
import torch
import vllm
import transformers

def check_env():
    print("=" * 50)
    print("环境验证报告")
    print("=" * 50)
    
    # Python
    py_ver = sys.version_info
    print(f"[✓] Python: {py_ver.major}.{py_ver.minor}.{py_ver.micro}")
    if py_ver.major == 3 and py_ver.minor >= 10:
        print("    Python版本合格")
    else:
        print("    ⚠️ 建议使用Python 3.10+")
    
    # PyTorch
    print(f"[✓] PyTorch: {torch.__version__}")
    if torch.cuda.is_available():
        print(f"[✓] CUDA: {torch.version.cuda}")
        print(f"[✓] 显卡: {torch.cuda.get_device_name(0)}")
    else:
        print("    ⚠️ CUDA不可用,请检查驱动和CUDA安装")
    
    # vLLM
    print(f"[✓] vLLM: {vllm.__version__}")
    
    # Transformers
    print(f"[✓] Transformers: {transformers.__version__}")
    
    print("=" * 50)
    print("验证完成!")

if __name__ == "__main__":
    check_env()

跑这个脚本,如果所有项都显示[✓],那恭喜你,环境准备完毕。如果出现⚠️,按提示去排查就行。

最后说一句:环境配置这事,一次配好,后面能省很多时间。我刚开始搞大模型时,光环境就重装了七八次。后来总结出这套流程,再也没翻过车。你按这个来,稳的。

专注资料整理