1.前言
由于比较穷,身边只有1块10年前的Tesla P40 GPU卡(2016年9月发布),想利用起来学习强化学习框架Verl。程序员学习开源代码,大部分人的第一直觉不是分析模块组成,而是跑起来试试,然后去debug一下后面的运行逻辑。
由于在官方部署指导文档中并未指明跑通Verl的最低适用显卡规格,所以就傻傻以为Tesla P40 GPU卡可以胜任该任务,遂行动起来。但是万万没想到坑太多,每次出现的问题,都觉得解决了就能跑起来,结果躺过一个坑又出现另外一个坑,终于折腾好几天搞定了。于是将这一过程写成“避坑指南”共享给大家。
2.环境配置
先吐槽一下官方安装指导步骤的逻辑顺序比较混乱。由于国内需要走代理上外网,导致每次拉镜像到一部分时就直接报出unauthorized: authentication required
,折腾了好久都没成功(可能匿名拉取次数过多,触发 Docker Hub 限流,但是又无法打开Docker Hub的注册网址),因此后面直接走Install from custom environment
安装配置方式,简单讲就是直接在Linux上配置。
下面是基于Linux Ubuntu 20.4 x86_64
操作系统上,摸索出来的适配Tesla P40 GPU卡(24G)
的环境报配置依赖。请严格按照下表中的安装顺序依次安装。
安装顺序 | 基础包 | 版本 | 安装说明 |
---|---|---|---|
1 | CUDA | 11.8 | 建议从CUDA官网直接下载runfile 格式,然后手动安装到指定位置,这样就能与之前的其他版本共存。安装命令:sudo sh cuda_11.8.0_520.61.05_linux.run --toolkit --installpath=/usr/local/cuda-11.8 |
2 | cuDNN | 8.9.7 for CUDA 11.x | 建议从cuDNN官网直接下载runfile 格式,然后手动安装到指定位置,这样就能与之前的其他版本共存。安装命令见cuDNN安装命令 |
3 | Python | 3.10 | 建议创建一个独立的虚拟环境verl-env。安装命令:conda create -n verl-env python=3.10 -y && conda activate verl-env |
4 | pyTorch | 2.6.0+cu118 | 在verl-env虚拟环境中安装pyTorch。安装命令:conda activate verl-env && pip install torch==2.6.0+cu118 torchvision==0.21.0+cu118 torchaudio==2.6.0+cu118 --index-url https://download.pytorch.org/whl/cu118 |
5 | Apex | – | 在verl-env虚拟环境中安装Apex。安装命令与注意事项直接采用官方安装指导步骤中的命令:git clone https://github.com/NVIDIA/apex.git && cd apex && MAX_JOB=32 pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings "--build-option=--cpp_ext" --config-settings "--build-option=--cuda_ext" ./ |
6 | verl | 于2025年9月8日 git clone 的版本 | 在verl-env虚拟环境中安装verl。安装步骤如下: (1).下载verl: git clone https://github.com/volcengine/verl.git (2).安装模型训练框架Megatron。进入verl工程目录执行: bash scripts/install_vllm_sglang_mcore.sh (3).安装verl。进入verl工程目执行: pip install --no-deps -e . |
注:cuDNN安装命令:
# 为每个版本的 cuDNN 建独立文件夹
sudo mkdir -p /usr/local/cudnn-8.9.7-cuda11
# 解压
sudo tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz \
--strip-components=1 -C /usr/local/cudnn-8.9.7-cuda11
# 拷贝到 CUDA 11.8
sudo cp -lP /usr/local/cudnn-8.9.7-cuda11/lib/* /usr/local/cuda-11.8/lib64/
sudo cp -lP /usr/local/cudnn-8.9.7-cuda11/include/* /usr/local/cuda-11.8/include/
3.Verl整改运行
Tesla P40 GPU卡(2016年9月发布)已经是10年前的老爷卡了,显存只有24G,用作传统深度学习是没有问题的,但是训练大模型也是为难它了。因此,这里运行Verl框架也只尝试了官方Quick Start中的模型Qwen2.5-0.5B-Instruct
与数据GSM8K