## 目标 为 CHORD 的 Sharpa 双手参考跟踪和 FlashSAC 训练补齐 UniLab 通用能力,使任务能够仅通过官方 entry point、owner YAML 和公共扩展点运行,不在下游维护训练循环或上游特判。 交付方式为一个 `integration/chord-flashsac` 分支、一个统一 Epic 和一个 Draft PR。 ## 需要补齐的能力 ### 环境与 Manager 生命周期 - mapped Entity 的公开 body ID 与后端 state-row 语义保持一致,不把 world-body ID 误当作状态行。 - state-feedback action 可在每个 physics substep 读取公开状态、更新控制并步进,批量 step 的默认语义保持不变。 - reset、final observation、termination 和 selected-state 生命周期可被任务组合使用。 ### FlashSAC actor 与优化器 - custom actor 可声明命名 optimizer parameter groups,并设置独立学习率倍率。 - residual mean gain/bias 使用真实 Adam parameter group 和倍率,不以梯度缩放代替。 - LR schedule 与 checkpoint 恢复保留分组语义。 - 非 whole-cycle compiled + AMP 路径预分配并复用梯度,避免连续 update 中梯度失效。 ### Off-policy replay 与奖励 - 支持配置化 n-step pending window,处理 terminated、truncated 和 final observation,bootstrap 使用固定 gamma 幂。 - 环境发布稳定命名、未加权、pre-dt 的 raw reward terms;replay 可按当前 stage 权重和 dt 重组奖励。 - stage change 只清理 pending window,不清空 replay。 - compact critic replay 只存 critic 相对 actor 的 context 后缀,降低显存占用而不改变采样语义。 - warmup transitions 计入统一 environment-step 预算和课程时钟。 ### Viser 与评估生命周期 - Viser 支持完成后停止推进并继续显示最终物理状态。 - 与 `env.auto_reset=false` 配合时,可在 reference-end 或 done 后停留末帧,而不是重新开始 episode。 - 不改变默认无限播放和手动暂停/单步行为。 ### Curriculum 可观测性 - 通用 `Curriculum/*` 标量可从 env `info["log"]` 经 collector queue 传到 OffPolicyLogger 和 TensorBoard。 - 保留 latest state,不把 reset info 误当作逐步等价的训练曲线,也不复用 reward-relabel 的 curriculum stage 信号。 ## 提交结构 1. mapped body state-row 修复。 2. state-feedback physics substep 生命周期。 3. custom actor optimizer groups。 4. n-step、raw-term 和 compact replay,以及统一训练时钟。 5. compiled AMP 梯度保留。 6. Viser 完成后保持末帧。 7. curriculum 指标发布。 ## 工程约束 - 所有能力属于 UniLab 通用 owner 层,不包含 CHORD 任务名或数据集特判。 - 下游只使用公共 API 和官方扩展点,不复制上游训练 loop、不 monkey patch、不读取后端私有状态。 - 保持 device-resident 热路径;日志和 host 传输不得无意进入 step/reset 热路径。 - 每个语义块包含实现、测试和必要文档,不能用 smoke 代替收敛或数值一致性声明。 ## 验收证据 - UniLab `make test`:2841 passed / 61 skipped。 - CHORD 下游:77 项测试通过,包括真实 Newton reset/step、explicit eval 和配置解析。 - 真实训练已验证多次 optimizer update、n-step/raw-term relabel、compact critic replay、compiled+FP16 路径。 - explicit eval 可到达 reference-end 并保持末帧;curriculum 指标已写入真实 TensorBoard event。 这些结果证明训练与评估链路,不代表 CHORD 已收敛或与参考实现数值完全一致。
Activity
lemon-star608 commentedon Oct 28, 2026
范围与审核状态更新:PR #2529 当前仅保留 6 个通用 bugfix/扩展点提交。Epic 中 n-step、raw-term relabel、compact replay 及训练时钟的原始提交结构不再是当前 PR 范围;其中“提前结束窗口使用固定 gamma 幂”的旧 n-step 描述已废止,后续若讨论 n-step,应使用逐样本实际窗口长度对应的 bootstrap discount。
维护者关于 resume environment-step 时钟的意见仍需上游承接,不能随 n-step 一起视为移出。干净 HEAD 的必要性、默认任务影响和剩余 checkpoint/Curriculum/Viser 测试缺口见:#2529 (comment) 。
lemon-star608 commentedon Oct 28, 2026
该 Epic 已由纯 environment 的 #2535 / #2536 取代。RL、replay、training、logging 与 IPC 已下沉到 CHORD_UniLab,不再沿本 Epic 继续上游化。现关闭本 issue,保留历史讨论与范围记录。