用途:在 NPU 集群上拉起 Verl 分布式训练服务,支持 DAPO/GRPO 等 RLHF 算法,并可配置加速特性、Ray 集群与 SwanLab 监控。
主要能力:按 8 个阶段执行——环境预检查、分轮用户交互、配置确认、镜像准备与容器拉起、SwanLab 配置、生成双脚本、复制执行、验证。支持已有容器或新建容器,可拉取镜像 quay.io/ascend/verl:verl-8.3.rc1-910b-ubuntu22.04-py3.11-v0.7.0。通过 7 位二进制掩码配置特性:位0 Remove Padding、位1 Dynamic Batch Size、位2 Offload、位3 Prefix Cache、位4 Recompute、位5 Swap Optimizer、位6 VPP;默认 0000000。生成 start_verl.sh(上层:NPU/网络配置、Ray 集群、SwanLab 环境变量)与 run_training.sh(下层:训练超参、Hydra 训练命令),调用关系为 start_verl.sh → bash run_training.sh。
使用方式:主要脚本包括 scripts/generate_training.sh(生成双脚本)、feature_mask.sh(掩码解析)、pre_check.sh(环境预检查)、verl_docker_run.sh(容器拉起)。生成命令使用 bash scripts/generate_training.sh,参数含 --mask、--output-dir、--model-path、--train-file、--test-file、--ckpts-dir、--npu-devices、--master-addr、--socket-ifname、--train-steps、--train-tp、--train-pp 及 SwanLab 相关参数。宿主机执行 docker cp 复制脚本到容器,进入容器后 source CANN 环境并按需登录 SwanLab,最后 cd /verl 执行 bash start_verl.sh。
限制与约束:需用户确认配置后才执行;gen_tp 必须等于 train_tp,(train_tp x train_pp) % NPU_PER_NODE 必须为 0;Offload 与 Swap Optimizer 互斥,同时开启时脚本自动将 optimizer_offload 设为 False;docker cp 必须在宿主机执行,进入容器后不再使用 docker 前缀。参数默认值、SwanLab 必填项等以资料为准。其他未提供内容暂未说明。