安装torch+vllm+flash_attn的prompt

torch、vllm、flashattn各种版本对不齐、abi错误;codex跑了4个小时终于给4090装上了,最后让总结成一个经验prompt

bash 复制代码
# 所有需要联网下载的内容必须先配置国内镜像
# ============================================================
# 步骤 1:创建干净的环境
# ============================================================
conda create -n verl_train python=3.11 -y
conda activate verl_train

# ============================================================
# 步骤 2:安装 PyTorch(控制版本,不让 pip 自动拉)
# 关键:用 --no-deps 防止 pip 拉其他 torch 版本覆盖
# torch版本选择:CUDA版本必须和显卡驱动兼容
#   - RTX 3090/4090/A100/H100 等 → 用 cu124(推荐)
#   - 确认方法:nvidia-smi 显示的 CUDA 版本
# ============================================================
pip install torch==2.5.1 torchvision torchaudio \
    --index-url https://download.pytorch.org/whl/cu124 \
    --no-deps

# 验证
python -c "import torch; print(torch.__version__, torch.version.cuda)"

# ============================================================
# 步骤 3:安装 PyTorch 缺失的纯 Python 依赖
# (因为步骤2用了 --no-deps,所以要手动补全)
# ============================================================
pip install nvidia-cuda-runtime-cu124 nvidia-cuda-nvrtc-cu124 \
    nvidia-cuda-cupti-cu124 nvidia-cudnn-cu124 nvidia-cutensor-cu124 \
    nvidia nccl_cu124 cusolver-lapack-dev-cu124 \
    triton filelock networkx sympy jinja2 fsspec

# ============================================================
# 步骤 4:安装 flash-attn(最关键的一步)
# 关键:torch 版本 + CUDA 版本 + ABI 版本 三个必须完全匹配
# ============================================================

# 4a. 先尝试从 PyPI 找预编译 wheel(最快)
#     访问 https://https://flash-attn.github.io/ 查最新可用 wheel
#     或用下面的命令查可安装版本
pip install flash-attn --no-build-isolation --no-cache-dir 2>&1 | head -5

# 4b. 如果上面失败(ABI 不匹配),从源码编译
FLASH_ATTENTION_FORCE_BUILD=TRUE \
MAX_JOBS=4 \
TORCH_CUDA_ARCH_LIST="8.0;8.6;8.9;9.0" \
pip install flash-attn --no-build-isolation --no-cache-dir

# 4c. 如果编译超时/失败,用精确匹配的预编译 wheel
#     去 https://my HuggingFace 下载(需要注册账号):
#     路径:flash-attn → releases → 找对应版本
#     文件名格式:flash_attn-2.x.x+cu12torch2.5torcha2.18-cp311-cp311-linux_x86_64.whl
pip install /path/to/flash_attn-*.whl

# 验证(两个都成功才算过)
python -c "import flash_attn; print('flash_attn:', flash_attn.__version__)"
python -c "from flash_attn import flash_attn_func; print('flash_attn_func OK')"

# ============================================================
# 步骤 5:从源码编译安装 vLLM(链接到现有 torch)
# 关键:用 use_existing_torch.py + --no-build-isolation
# ============================================================
git clone https://github.com/vllm-project/vllm.git
cd vllm
git checkout v0.7.3   # 选一个稳定版本

# 让 vLLM 使用已有的 torch,而不是重新下载
python use_existing_torch.py

# 安装构建依赖
pip install -r requirements/build.txt

# 编译安装(-e 是可编辑模式,方便调试)
pip install --no-build-isolation -e .

cd ..  # 退出 vllm 目录

# 验证
python -c "import vllm; print('vllm:', vllm.__version__)"

# ============================================================
# 步骤 6:安装 verl 和其他训练依赖
# ============================================================
pip install verl

# 训练需要的其他包
pip install transformers huggingface_hub hf_transfer
pip install ray[default] pyarrow pandas

# ============================================================
# 步骤 7:全局锁定 torch 相关包,防止后续 pip upgrade 覆盖
# ============================================================
pip install torch==2.5.1 --no-deps
pip install flash-attn --no-deps   # 锁定不升级

# ============================================================
# 步骤 8:最终验证(全部导入成功才算完成)
# ============================================================
python << 'EOF'
import torch
import flash_attn
import vllm

print(f"torch:       {torch.__version__} ({torch.version.cuda})")
print(f"flash-attn:  {flash_attn.__version__}")
print(f"vllm:        {vllm.__version__}")
print(f"CUDA avail:  {torch.cuda.is_available()}")

from flash_attn import flash_attn_func
print("flash_attn_func: OK")
print("ALL OK ✓")
EOF

三句话总结成功关键:

  1. 先装 torch,用 --no-deps,再补全 CUDA 依赖:控制 torch 版本是一切的起点
  2. flash-attn 必须 ABI 精确匹配:预编译 wheel 找不到就源码编译,别混用不同 ABI 的版本
  3. vLLM 必须从源码编译: use_existing_torch.py + --no-build-isolation 是让它链接到现有 torch 的官方方法
相关推荐
Purple Coder4 小时前
Jc的图像分析
人工智能
楚楚2514 小时前
2026企业AI办公工具选型指南:从需求匹配到平台评估
大数据·人工智能
三小河4 小时前
从 Markdown 到 Generative UI:AI 如何从“生成答案”进化到“生成界面”?
前端·人工智能·后端
王立志_LEO4 小时前
HTTPX 完整用法总结
python
ggb喔4 小时前
52pojie 的图片工具:为什么无损转换后体积涨了 6 倍、照片方向还是歪的
图像处理·python·算法·计算机视觉·图形渲染·媒体
hnxaoli4 小时前
win10小程序(二十三)新建带时间文件夹
python
企业数字化笔记4 小时前
AI工具参数很多怎么办?预设、表单校验、危险参数与配置审计
java·spring boot·python·音视频
a努力。4 小时前
三插件协同破局前端故障排查困局
人工智能
要吃这碗饭4 小时前
AI 智能体如何通过 auth.md 注册 Bright Data 账号
数据库·人工智能·php