Skip to content

refactor: 统一 play 管线——训练入口复用 playback session 工厂 - #1250

Merged
TATP-233 merged 1 commit into
dev/issue-1042-manager-based-apifrom
dev/issue-1242-unified-play-pipeline
Aug 21, 2026
Merged

refactor: 统一 play 管线——训练入口复用 playback session 工厂#1250
TATP-233 merged 1 commit into
dev/issue-1042-manager-based-apifrom
dev/issue-1242-unified-play-pipeline

Conversation

@TATP-233

Copy link
Copy Markdown
Collaborator

Fixes #1242. Part of #1239.

做什么

  • 四个训练入口 play_rsl_rl / play_him_ppo / play_appo / play_offpolicy 改为复用 unilab.visualization.interactive_playbackcreate_*_playback_session 工厂;脚本只保留 CLI 组装、checkpoint 缺失诊断、ONNX/JIT 导出与 run_playback_mode/render_play_mode 调用。
  • play_interactive.py 中被复用的私有函数提升为库层公开 API:infer_checkpoint_actor_input_dimbuild_play_backend_adapteravailable_backends_for_taskPlayInteractiveArgsbuild_playback_confignormalize_checkpoint_value
  • create_rsl_rl_playback_session 新增 runner_loader / guard_algo_name 注入参数;RslRlPlaybackSession 暴露 runner/actor 供入口导出。
  • 四元数→旋转矩阵替换为 utils/rotation.np_matrix_from_quat(保留归一化行为);play_viser.py 不再 import 任何下划线函数。

顺带修复

  • off-policy 工厂加载改走 load_play_actor:修复 td3 checkpoint 的 noise_scales buffer 导致 strict load_state_dict 失败的问题。
  • test_materializer_consumers_use_backend_facade 消费方清单同步(materializer 消费从 play_interactive 移到库层)。

不做

  • manip_loco/play_go2_arm_ik_only.pytrain_hora_distill 内 play 不在本期。
  • 不改渲染效果、ONNX/JIT 导出产物与 sim2sim 契约字段(校验仍走 resolve_sim2sim_config,同函数同参数)。

Validation

  • make test-all 本地通过(2189 passed, 28 skipped, 1 xfailed;module/script mode 冒烟全过)。
  • 用户明确要求跳过远程 CI 等待。
  • 新增 21 个测试:库层新公开 API 单测、runner_loader/guard_algo_name/td3 noise_scales 覆盖、四个入口 play 冒烟(工厂注入参数 + checkpoint 缺失早退 + loop 走 session)。

- Route play_rsl_rl / play_him_ppo / play_appo / play_offpolicy through the
  create_*_playback_session factories; scripts keep only CLI assembly,
  checkpoint diagnostics, ONNX/JIT export, and run_playback_mode wiring.
- Promote shared helpers to unilab.visualization.interactive_playback:
  infer_checkpoint_actor_input_dim, build_play_backend_adapter,
  available_backends_for_task, PlayInteractiveArgs, build_playback_config,
  normalize_checkpoint_value.
- Extend create_rsl_rl_playback_session with runner_loader / guard_algo_name
  and expose runner/actor on sessions for entrypoint exports.
- Load off-policy actors via load_play_actor so td3 noise_scales buffers
  no longer break strict state_dict loading.
- Replace the local quaternion-to-rotmat helper with
  utils.rotation.np_matrix_from_quat; play_viser no longer imports
  underscore-private functions.
- Track the materializer consumer move in test_backend_imports and add
  unit/smoke coverage for the new public API and all four play entries.
@TATP-233
TATP-233 changed the base branch from main to dev/issue-1042-manager-based-api August 21, 2026 14:50
@TATP-233
TATP-233 merged commit f8a19a0 into dev/issue-1042-manager-based-api Aug 21, 2026
6 of 7 checks passed
@TATP-233
TATP-233 deleted the dev/issue-1242-unified-play-pipeline branch August 22, 2026 06:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor: 统一 play 管线——训练入口复用 playback session 工厂

1 participant