Skip to content

【Task 40】P3O / Adaptive Policy Optimization 论文复现进展 #233

Description

@DreamEnding

任务信息

当前进展

目前已完成 P3O 在 Relax 中的主要工程接入:

  • 实现 normalized ESS、ESS adaptive cap 和 P3O loss;
  • 使用 optimizer-step 两阶段计算,在全局有效 token 上汇总 S1/S2/N
  • 接入 DP/CP、padding、ragged/dummy micro-batch 和 PP context 传播;
  • 将 P3O 接入 Megatron loss、GRPO-like advantage、参数解析和算法注册;
  • 输出 ESS、adaptive cap、policy ratio、cap fraction、behavior KL proxy 和有效 token 数;
  • 提供 P3O/GRPO 的 on-policy、T=0.6/1.2 temperature mismatch、sync interval=3 配置;
  • 增加 rollout policy age、运行身份、resolved args 和失败退出码记录;
  • 新增公式、mask、分区不变性、on-policy、分布式、配置及冒烟测试。

相对 upstream/main,当前 P3O diff 为 44 个文件,新增 4,853 行、删除 64 行。

已完成验证

  • 当前 HEAD 可收集的 P3O 定向测试:158 passed, 2 warnings
  • ESS、cap、逐 token loss 和 gradient 与 FeynRL golden 值在 1e-6 容差内一致;
  • tiny model on-policy 梯度 cosine >= 0.9999、relative L2 <= 1e-4
  • 逻辑 DP/CP/micro-batch、padding、ragged、dummy 和 zero-local-token 不变性测试通过;
  • upstream/main...HEAD 全部 P3O 文件的 pre-commit hooks 通过;
  • git diff --check upstream/main...HEAD 通过。

正式实验方案

正式复现计划统一使用:

  • 模型:Qwen3-4B-Thinking-2507;
  • 数据:DeepScaleR-Preview;
  • Seeds:42、1234、2026;
  • 主对照:Relax P3O、Relax GRPO/PPO、FeynRL P3O;
  • 场景:on-policy、T=0.6、T=1.2、固定 policy lag;
  • 主要参数:global batch 48、group size 16、response length 4096;
  • 统计:三 seed 均值/方差、KL、loss spike、崩溃率、最终效果、吞吐和峰值显存。

正式实验当前状态

当前 HEAD 尚未完成正式实验矩阵,相关实验正在进行中,后续进度会同步更新。
旧版代码进行过历史实验,on-policy 质量、temperature mismatch 稳定性和真实 Qwen 精度门存在 FAIL。

因此目前不能证明:

  • DP/CP/micro-batch 在真实 A100x4 生产链上的最终 loss、gradient 和参数更新不变;
  • on-policy 训练曲线与 GRPO/PPO 基线处于约定容差内;
  • rollout mismatch 下 P3O 至少一项稳定性指标优于 GRPO/PPO;
  • 三 seed 均值/方差、吞吐与显存开销满足 Task40;
  • 已复现论文稳定性主结果或核心消融表。

待完成

  • 在完整 Linux 依赖环境运行全部 P3O 测试、全仓 pytest 和全仓 pre-commit;
  • 完成真实 Megatron/NCCL 的 DP、CP、DP×CP、PP=2 和 micro-batch 不变性验证;
  • 按上述方案完成 Relax P3O、GRPO/PPO、FeynRL P3O 三 seed 正式矩阵;
  • 汇总原始曲线、均值/方差、稳定性、吞吐和显存,生成至少一张论文主结果或消融图;
  • 基于最终提交创建 Draft PR,关联 Issue,取得 Python 3.10/3.11/3.12 CI 全绿和 Maintainer review。

交付判断

当前状态:PARTIAL。

核心代码已具备 Draft 工程审查条件,但实验验证、三 seed 统计、稳定性改善和 PR 验收门尚未完成。
当前不能标记为 Task40 完成交付,也不满足可合并条件。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions