执行摘要
稳定主 CI 并修复 FSDP2 全异步策略 OOM
PR 作者在 CI 中发现不稳定问题,需要修复以避免阻断开发流程。第二个 commit 针对 fully async fsdp2 策略显存不足问题进行调整,防止 OOM 导致 CI 失败。
该 PR 值得浏览,特别是 CI 配置改动和 FSDP 策略内存调整的技巧。对于希望维护 CI 稳定的团队有借鉴意义。
无 review 评论。
PR 作者在 CI 中发现不稳定问题,需要修复以避免阻断开发流程。第二个 commit 针对 fully async fsdp2 策略显存不足问题进行调整,防止 OOM 导致 CI 失败。
该 PR 值得浏览,特别是 CI 配置改动和 FSDP 策略内存调整的技巧。对于希望维护 CI 稳定的团队有借鉴意义。
无 review 评论。
pip3 install -r requirements.txt 步骤,并增加了 pip3 list 调试命令用于验证依赖状态。tests/special_e2e/run_fully_async_policy.sh 中 FSDP2 分支的默认值,将 gen_tp 从 1 改为 2,fsdp_size 从 1 改为 2,从而增大并行度降低每 GPU 显存占用,避免 OOM。.github/workflows/e2e_fully_async_policy.yml,清理过长的注释头部,调整触发路径和策略,简化矩阵定义,并添加并发取消组等标准字段。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
.github/workflows/e2e_fully_async_policy.yml |
CI 工作流 | modified | 6.04 |
tests/special_e2e/run_fully_async_policy.sh |
测试脚本 | modified | 3.99 |
.github/workflows/model.yml |
CI 工作流 | modified | 3.56 |
.github/workflows/reward_model_sglang.yml |
CI 工作流 | modified | 3.56 |
tests/special_e2e/run_fully_async_policy.sh
test-coverage
修改了 FSDP2 分支的并行参数解决 OOM,是影响 fully async 测试实际运行的关键修复。
# tests/special_e2e/run_fully_async_policy.sh (FSDP2 分支关键片段 )
if [ "${ACTOR_STRATEGY}" == "fsdp2" ]; then
echo "Running fully async training with FSDP2 strategy..."
# FSDP2 specific parameters
# trtllm: one replica uses all rollout GPUs as a single TP group.
# vllm/sglang: TP=1, rely on data parallelism across replicas.
if [ "${rollout_name}" = "trtllm" ]; then
gen_tp=${GEN_TP:-${n_gpus_rollout}}
else
gen_tp=2 # 改为 2 以避免 OOM,通过增大 TP 并行降低每 GPU 模型内存占用
fi
sp_size=1
fsdp_size=2 # 同样增大 FSDP 分片数,减少每 GPU 内存使用
ref_offload=True
actor_offload=False
# ... 设备检测和 NPU 特殊处理部分
if [ -n "$device_name" ] && [ "$device_name" == "npu" ]; then
common_params+=(
actor_rollout_ref.rollout.gpu_memory_utilization=0.70
)
actor_offload=True
fi
# ... 启动训练命令
fi
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
本次变更为 CI 配置和测试脚本调整,风险较低。主要风险点在于:修改了 CI 触发条件(paths 过滤),可能导致部分分支或路径不被触发;添加的 pip3 install -r requirements.txt 可能与已有依赖冲突,但概率较小;fully async 测试参数调整增加了 GPU 使用量,可能影响并发排队。
影响所有开发者的 CI 体验:修复后主分支 CI 应更稳定,减少因依赖缺失或 OOM 导致的失败。全异步策略测试使用更多并行度,虽增加资源消耗但避免了崩溃。对于 PR 测试,增加了调试信息(pip3 list)有助于快速定位依赖问题。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论