| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 18 小时前 | ||
| 18 小时前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 18 小时前 | ||
| 5 小时前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 23 天前 |
脚本修改规范和使用方法
训练脚本修改原则
原则上训练脚本稳定之后不同的训练任务不需要改动脚本
只需要改动configs/base.conf、configs/hosts.conf、configs/train/***.yaml、configs/infer/***.yaml即可
如果训练脚本有不适配的地方,需要按照通用处理逻辑去改,当做需求去开发,避免大家散弹式到处修改
训练脚本调用方法
启动基于msrl+vllm的训练:
sh start_rl_with_msrl_vllm.sh
启动基于verl+vllm的训练:
sh start_rl_with_verl_vllm.sh
断点续训调用方法
断点续训的配置文件修改:
configs/bash.conf
启动基于checkpoint的断点续训:
sh start_rl_with_resume.sh
启动基于verl的checkpoint的断点续训:
sh start_rl_with_resume_verl.sh
v5.0.0断点续训部署指导
—— 以single-turn、Qwen3.5-27B、verl(fsdp) + vllm、训推分离异步场景为例
0 镜像准备
0.1 支持msrl的镜像
支持Qwen3:
agentic-rl-a2-vllm-011:4.0.1或4.0.3
支持DeepseekV3.2:
agentic-rl-dpsk32-a2:5.0.1
0.2 支持verl的镜像
最新支持Qwen3.5:
aura-verl-fsdp-sp-a2:5.0.3
1 前置准备
1.1 运行配置
configs/base.conf
# 工作模式:hybrid 共卡模式 | one_step_off 全异步分离模式
work_mode=one_step_off
# 共卡和分离模式均需要配置训练yaml文件
train_config_name=verl_train_async_t8_qwen35_27B_single_turn
# 分离模式需要单独配置推理yaml文件, 共卡模式该配置不生效
infer_config_name=vllm_infer_i8_qwen35_27b
# [resume]
# 需要监控的启动脚本:start_rl_with_msrl_vllm.sh | start_rl_with_verl_vllm.sh
monitor_cmd=start_rl_with_verl_vllm.sh
# 断点续训重试次数, 默认100次
max_retries=100
# 第一次启动是否需要清空ckpt文件夹: 0 不清理; 1 需要清理
clean_old_ckpt=0 # 首次训练前,建议清空default_local_dir下不需要的ckpt
1.2 推理配置
configs/infer/vllm_infer_i8_qwen35_27b.yaml
# 修改模型权重路径
infer_model_path: /path/to/aura/person/Qwen35_27B
推理如需扩充实例,配置如下
# 0为pd混部模式 1为pd分离模式
pd_mode: 0
# prefill实例数量
prefill_instance_count: 1
# decode实例数量, PD混部时配置为0
decode_instance_count: 0
# prefill/decode tp size
tensor_parallel_size: 4
# prefill/decode dp size
data_parallel_size: 2 # 可通过修改dp,扩充实例数
推理所需总卡数 = (prefill_instance_count+decode_instance_count) * (tensor_parallel_size * data_parallel_size)
1.3 训练配置
configs/train/verl_train_async_t8_qwen35_27B_single_turn.yaml
# 关键参数修改
nnodes: 1 # 训练需要的总机数
n_gpus_per_node: 8 # 每台机子的总卡数 910B=8 | 910C=16
!!!注意:配置中所有路径不要在weight_save_dir目录下,过程中可能会被清空
--- 分离场景下训推权重转换路径 ---
## 须是共享盘路径
weight_save_dir: ${hydra:runtime.cwd}/weights/
--- 模型原始权重路径 ----
## 不能在weight_save_dir目录下 | 路径必须包含模型名称 | 不能以"/"结尾
path: /path/to/aura/person/Qwen35_27B
--- 以save_freq间隔保存的ckpt路径 ---
## 不能在weight_save_dir目录下 | 须是真实路径,续训脚本不识别引用参数${hydra:runtime.cwd}
default_local_dir: ./outputs/save_ckpt/
--- 数据集路径 ---
## 不能在weight_save_dir目录下
train_data_path: /path/to/aura/person/dtn_code_data/rl
--- Aura框架AEE生成的轨迹数据保存路径 ---
## 不能在weight_save_dir目录下
trajectory_save_dir: ${hydra:runtime.cwd}/outputs
--- verl自生成的轨迹数据保存路径 ---
## 不能在weight_save_dir目录下
rollout_data_dir: ${hydra:runtime.cwd}/outputs/rollout_data_dir/
fsdp减少显存占用配置
# 部分关键参数修改 TODO
actor:
strategy: fsdp2
ulysses_sequence_parallel_size: 8
fsdp_config:
strategy: fsdp2
param_offload: true
optimizer_offload: true
model_dtype: bfloat16
fsdp_size: -1
ulysses_sequence_parallel_size: ${verl_conf.actor_rollout_ref.actor.ulysses_sequence_parallel_size}
ref:
strategy: fsdp2
log_prob_micro_batch_size_per_gpu: 1
log_prob_max_token_len_per_gpu: 16384
ulysses_sequence_parallel_size: ${verl_conf.actor_rollout_ref.actor.ulysses_sequence_parallel_size}
fsdp_config:
model_dtype: bfloat16
param_offload: true
ulysses_sequence_parallel_size: ${verl_conf.actor_rollout_ref.actor.ulysses_sequence_parallel_size}
2 手动断点续训
2.1 权重转换
bash verl_merge.sh $已保存的权重路径(例如:/xxx/global_step_5) $自定义转换后的权重路径(路径带模型名称:/xxx/resume/qwenxxx_5)
2.2 推理配置修改
infer_model_path: /xxx/resume/qwenxxx_5 # 修改为自定义的转换权重路径
2.3 训练配置修改
path: /xxx/resume/qwenxxx_5 # 修改为自定义的转换权重路径
注意:由于手动配置断点续训,global_step仍从1开始,如果default_local_dir不改变,会覆盖已保存的ckpt
任务启动命令
source /root/.bashrc;
cd /path/to/aura;
export MASTER_TRAIN_INDEX=1;
bash scripts/start_rl_with_verl_vllm.sh;
3 自动断点续训(需合入自动续训功能代码)
会自动转换权重及参数替换,可续训任务启动命令如下
source /root/.bashrc;
cd /path/to/aura;
export MASTER_TRAIN_INDEX=1;
bash scripts/start_rl_with_resume_verl.sh;
如首次启动非原始权重,可直接修改配置实现续训,无需手动转换权重
训练配置修改
trainer:
resume_mode: resume_path # disable / auto (load from default_local_dir) / resume_path (load from resume_from_path)
resume_from_path: /xxx/global_step_5 # 修改为已保存的待续训权重路径(例如:/xxx/global_step_5)
续训相关代码目录结构
AgenticRL
- agents/
- aura/
- cli/
- configs/
- base.conf # 运行配置
- infer/ # 推理配置目录
- train/ # 训练配置目录
- docker/
- examples/
- logs/ # 运行推理及训练日志目录
- outputs/ # 轨迹数据保存目录
- resume/ # 续训相关目录
- resume_hf_path/ # 续训verl转换hf权重目录
- status/ # 各节点续训状态日志目录
- save_ckpt/ # 训练权重保存路径
- scripts/ # 入口:续训启动脚本及readme目录
- tensorboard_log/
- tests/
- third_party/
- traj_proxy/
- weights/ # 训推分离权重转换目录