安装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 的官方方法
相关推荐
Easy_API4 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo4 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
代码山河4 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
紧跟先前的步伐5 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
在世修行5 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
释厄6235 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
梯度下降者5 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
老金带你玩AI6 小时前
集万家所长,一键复制的Agent.md!
人工智能
ZhuoAIStage6 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
小奶包他干奶奶6 小时前
AI学习——1、机器学习概念
人工智能·机器学习