mcpField
V
verl-async-dapo

verl-async-dapo

github.com/ascend開発52100 回インストール25 週間前に更新
リポジトリ

verl-async-dapo について

verl-async-dapo は、コンテナや学習リソース、機能を設定して Verl の非同期 DAPO 学習を起動するスキルです。One-Step-Off-Policy の手順を備え、OOM 時はメモリ関連機能を追加して再試行します。

主な機能

  1. 01コンテナと設定の対話選択
  2. 02One-Step-Off-Policy 学習の起動
  3. 03学習用・Rollout 用 GPU の設定
  4. 04性能機能とメモリ機能の管理
  5. 05OOM 後の機能追加と再試行
  6. 06SwanLab モニタリング設定

活用シーン

  1. 01非同期 DAPO 学習の起動
  2. 02学習と Rollout への GPU 割り当て
  3. 03機能設定による学習構成の調整
  4. 04OOM 発生後の学習再試行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ascend/agent-skills --skill verl-async-dapo

インストール後、Claude Code で/verl-async-dapoを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
params.md
troubleshooting.md
workflow.md
scripts/
common.sh
config_generator.py
feature_manager.sh
preflight_check.sh
quick_start.sh
run_dapo.sh
run_one_step_off_policy.sh

詳細

プロジェクトの README より

Verl 单异步 DAPO 训练

交互式启动流程

启动训练服务前,Agent 必须按以下顺序询问用户:

1. 容器选择
检测到以下容器:
  [1] jins ( 运行中)
  [2] 创建新容器

请选择容器 (1/2):
2. 代理配置(如创建新容器或网络问题)
请提供代理配置(如不需要请回复"无"):
  http_proxy: ?
  https_proxy: ?
3. 特性选择
是否有自定义特性需求?(回复"默认"使用默认配置)

性能特性(默认全开):
  - flash_attn: Flash Attention 加速
  - dynamic_batch: 动态 Batch Size
  - remove_padding: Remove Padding 优化
  - gradient_checkpointing: 梯度检查点

显存特性(默认关闭,OOM 时自动开启):
  - offload: 参数/优化器卸载
  - recompute: 重计算

可选特性:
  - prefix_cache: Prefix Cache
  - chunked_prefill: Chunked Prefill
4. SwanLab 配置(如未配置)
SwanLab 监控配置:
  Host: ?
  API Key: ?

快速开始

# 方式 1: 快速启动脚本 (推荐)
CONTAINER=jins TRAIN_STEPS=100 \
SWANLAB_HOST=http://10.143.2.129:8000 \
SWANLAB_API_KEY=your-key \
bash scripts/quick_start.sh

# 方式 2: 分步执行
# 2.1 训练前检查
bash scripts/preflight_check.sh

# 2.2 启动单异步 DAPO 训练 (使用默认特性进行训练)
export TRAIN_STEPS=4
bash scripts/run_dapo.sh

# 2.3 启动 One-Step-Off-Policy 训练
export TRAIN_STEPS=4
bash scripts/run_one_step_off_policy.sh
One-Step-Off-Policy 训练

One-Step-Off-Policy 是资源隔离的单异步训练模式,Trainer 和 Rollout 使用独立的 GPU 组。

# 基本用法
export TRAIN_STEPS=100
export TRAINER_GPUS=4
export ROLLOUT_GPUS=4
bash scripts/run_one_step_off_policy.sh

# 启用 offload 特性
export ENABLE_OFFLOAD=True
bash scripts/run_one_step_off_policy.sh

# FSDP2 框架
export FRAMEWORK=fsdp
bash scripts/run_one_step_off_policy.sh

配置参数:

变量默认值说明
FRAMEWORKmegatron框架 (megatron/fsdp)
TRAINER_GPUS4训练 GPU 数
ROLLOUT_GPUS4Rollout GPU 数
MAX_RESPONSE_LENGTH8192最大响应长度
ENABLE_OFFLOADFalse是否启用 offload

SwanLab 配置

SwanLab 配置由 swanlab-setup skill 提供,common.sh 启动时自动加载。详见 swanlab-setup skill 的 SKILL.md。

配置按优先级自动获取:环境变量 > 配置文件 > 交互式输入

# 环境变量(推荐)
export SWANLAB_HOST="http://your-swanlab-host:8000"
export SWANLAB_API_KEY="your-api-key"

重要:必须在 trainer.logger 参数中包含 "swanlab" 才能启用监控:

# 正确的 logger 配置(启用 SwanLab 监控)
trainer.logger='["console", "swanlab"]'

# 仅控制台输出(不启用监控)
trainer.logger='["console"]'

SwanLab 环境变量会自动被 verl tracking 模块读取:

  • SWANLAB_API_KEY: API 密钥
  • SWANLAB_LOG_DIR: 日志目录 (默认: swanlog)
  • SWANLAB_MODE: 模式 (cloud/local, 默认: cloud)

代理配置

export http_proxy="http://your-proxy:8080"
export https_proxy="http://your-proxy:8080"

训练监控策略

启动后行为:

  1. 输出 SwanLab 链接供用户自行查看
  2. 后台静默运行,不实时推送进度
  3. 仅在错误时通知用户(OOM、崩溃、配置错误等)

用户自行监控命令:

# 查看当前进度
docker exec {container} grep "Training Progress" /verl/train.log | tail -1

# 实时跟踪日志
docker exec {container} tail -f /verl/train.log

# 检查是否出错
docker exec {container} grep -E "Error|error|OOM|Exception" /verl/train.log | tail -10

特性管理策略

特性分类
类型特性默认状态说明
性能特性flash_attn✅ 默认开Flash Attention 加速
性能特性dynamic_batch✅ 默认开动态 Batch Size
性能特性remove_padding✅ 默认开Remove Padding 优化
性能特性gradient_checkpointing✅ 默认开梯度检查点
显存特性offload❌ 默认关参数/优化器卸载 (OOM 时自动追加)
显存特性recompute❌ 默认关重计算 (OOM 时自动追加)
可选特性prefix_cache❌ 默认关Prefix Cache
可选特性chunked_prefill❌ 默认关Chunked Prefill
特性优先级
用户显式指定 > 默认性能特性 > OOM 自动追加显存特性

重要:

  • 用户未指定时 → 使用默认性能特性(全开)
  • OOM 时 → 自动追加显存特性(即使用户指定了其他特性)
  • 用户显式指定的特性永不移除,只在 OOM 时追加
OOM 自动恢复流程
启动训练 (默认性能特性)
    ↓
OOM 错误?
    ├─ 是 → 追加 offload → 重试
    │   └─ 仍 OOM → 追加 recompute → 重试
    │       └─ 仍 OOM → 报告失败,建议调整参数
    └─ 否 → 训练成功(静默完成)

配置参数

环境变量
变量默认值说明
FRAMEWORKmegatron框架 (megatron/fsdp)
MODEL_PATHQwen3-8B模型路径
TRAIN_FILEdapo-math-17k.parquet训练数据
VAL_FILEaime-2024.parquet验证数据
TRAIN_STEPS100训练步数
TRAINER_GPUS4训练 GPU 数
ROLLOUT_GPUS4Rollout GPU 数
USER_FEATURES(空)用户显式指定特性,逗号分隔
MAX_OOM_RETRIES2OOM 最大重试次数
SWANLAB_HOST(从配置获取)SwanLab 服务器地址
SWANLAB_API_KEY(从配置获取)SwanLab API 密钥

详细参考

コメント