用途:为 Ascend/NPU 环境生成可执行的 VERL 强化学习端到端快速上手流程,覆盖镜像、数据处理、模型准备、main_ppo 训练、examples 脚本冒烟和 checkpoint 合并。
主要能力与强约束:镜像版本 IMAGE_TAG 由用户/运维指定则必须使用其值;未指定时默认 910B 用 verl-8.5.0-910b-ubuntu22.04-py3.11-v0.7.1,A3 用 verl-8.5.0-a3-ubuntu22.04-py3.11-v0.7.1,也可在 Quay tags 自选。修改或新建 examples/**/run_*.sh 后,除非用户明确说“只写不跑”,必须执行一次冒烟(至少 trainer.total_epochs=1 trainer.test_freq=1),并返回日志绝对路径与 tail -f 命令。使用 Megatron 训练后端时,use_flash_attn=True 作为默认参数必须开启(至少 actor 侧;ref 侧未继承则显式补齐)。
关键变量:IMAGE_REPO=quay.io/ascend/verl;IMAGE_TAG 按规则;ASCEND_HW 可选 a3|910b;TRAIN_BACKEND 可选 fsdp|megatron,默认 fsdp;WORKSPACE=$(pwd)、EXAMPLES_DIR=$WORKSPACE/examples;DATA_DIR=$HOME/data/gsm8k;MODEL_PATH 为绝对路径且末级目录为具体模型名;NGPUS=1、NNODES=1、LOG=verl_run.log;SCRIPT_QUERY、HF_ENDPOINT 可选。
执行步骤:Preflight 用 /usr/local/sbin/npu-smi info 检查 NPU 占用,必要时先优雅退出再 kill,仍未退出再 kill -9(谨慎)。Step 0 环境/镜像,Step 1 数据处理生成 parquet,Step 2 模型准备(ModelScope 与路径规范),Step 3A 按后端选择 main_ppo 训练(FSDP 为默认,Megatron 在明确要求或大模型/并行策略需要时使用,并追加 +actor_rollout_ref.actor.megatron.override_transformer_config.use_flash_attn=True;ref 侧未继承再追加 ++actor_rollout_ref.ref.megatron.override_transformer_config.use_flash_attn=True,已存在该 key 时不要用单 +),Step 3B examples 脚本训练与冒烟,Step 4 checkpoint 合并。各步骤与 FAQ/排障分别参考 references 下的 docker-ascend.md、data-preprocess.md、model-download.md、main-ppo-quickstart.md、examples-scripts.md、checkpoint-merge.md、faq.md。
限制:具体模型、数据集和集群规模等未提供的内容暂未提供;需按实际环境确认镜像 tag、硬件型号与后端,避免照搬默认值。