skills/verl-async-dapo/SKILL.md
Verl 单异步 DAPO 训练配置生成器。触发场景:(1) 启动单异步 DAPO 训练 (2) 生成训练脚本 (3) 配置特性参数 (4) 训练前检查。**特性策略**:用户未指定时默认开启性能特性(flash_attn/dynamic_batch/remove_padding/gradient_checkpointing),显存特性(offload/recompute)默认关闭。OOM 时自动追加显存特性重试。**训练监控**:启动后输出 SwanLab 链接供用户自行查看,仅在错误时通知用户。**依赖 skill**:SwanLab 配置通过 swanlab-setup skill 提供。
npx skillsauth add Ascend/agent-skills verl-async-dapoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
启动训练服务前,Agent 必须按以下顺序询问用户:
检测到以下容器:
[1] jins ( 运行中)
[2] 创建新容器
请选择容器 (1/2):
请提供代理配置(如不需要请回复"无"):
http_proxy: ?
https_proxy: ?
是否有自定义特性需求?(回复"默认"使用默认配置)
性能特性(默认全开):
- 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
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 是资源隔离的单异步训练模式,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
配置参数:
| 变量 | 默认值 | 说明 |
|------|--------|------|
| FRAMEWORK | megatron | 框架 (megatron/fsdp) |
| TRAINER_GPUS | 4 | 训练 GPU 数 |
| ROLLOUT_GPUS | 4 | Rollout GPU 数 |
| MAX_RESPONSE_LENGTH | 8192 | 最大响应长度 |
| ENABLE_OFFLOAD | False | 是否启用 offload |
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"
启动后行为:
用户自行监控命令:
# 查看当前进度
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 错误?
├─ 是 → 追加 offload → 重试
│ └─ 仍 OOM → 追加 recompute → 重试
│ └─ 仍 OOM → 报告失败,建议调整参数
└─ 否 → 训练成功(静默完成)
| 变量 | 默认值 | 说明 |
|------|--------|------|
| FRAMEWORK | megatron | 框架 (megatron/fsdp) |
| MODEL_PATH | Qwen3-8B | 模型路径 |
| TRAIN_FILE | dapo-math-17k.parquet | 训练数据 |
| VAL_FILE | aime-2024.parquet | 验证数据 |
| TRAIN_STEPS | 100 | 训练步数 |
| TRAINER_GPUS | 4 | 训练 GPU 数 |
| ROLLOUT_GPUS | 4 | Rollout GPU 数 |
| USER_FEATURES | (空) | 用户显式指定特性,逗号分隔 |
| MAX_OOM_RETRIES | 2 | OOM 最大重试次数 |
| SWANLAB_HOST | (从配置获取) | SwanLab 服务器地址 |
| SWANLAB_API_KEY | (从配置获取) | SwanLab API 密钥 |
testing
Kubernetes 集群健康检查与安全修复 — 诊断问题,用户确认后执行修复
tools
昇腾NPU CANN Toolkit+Kernels+NNAL安装部署技能。支持从官网下载run包安装和从Docker镜像提取两种方式,覆盖驱动检查、包下载、安装、环境变量配置与验证全流程。当用户需要安装CANN全套组件或指定版本CANN到自定义路径时调用。
development
编译 ATB (Ascend Transformer Boost) 测试框架。当用户需要编译 ATB 测试框架、 运行 CSV 测试、或构建 atb_test_framework 时调用。支持全量编译(含第三方依赖克隆与源替换) 和增量编译两种模式。需在 Docker 容器内配合 CANN 环境执行。
databases
ATB OPS→ACLNN 迁移标准化工作流主模板。整合前置学习、设计文档生成、CSV用例设计、 实际迁移、编译验证、测试验证全流程,提供明确的阶段 Gates 和用户确认机制。