环境准备与安装: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
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
第三步:验证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版本 | 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 |
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导入成功!")
跑这个脚本,如果所有输出都正常,那环境就稳了。如果报错,根据错误信息去查——大部分问题都是版本不匹配。
5. 知识体系总览
下面这张图,帮你把整个环境准备流程串起来。从Python环境到CUDA,再到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()
跑这个脚本,如果所有项都显示[✓],那恭喜你,环境准备完毕。如果出现⚠️,按提示去排查就行。