Conversation
- 为所有双后端 task 提取共享 base.yaml,mujoco/motrix 训练配置继承之(compose 有效值不变) - 为 29 个双后端 task 新增 <backend>_play.yaml:继承同后端训练契约,仅叠加 play_only 与渲染层,实现 train/play 解耦 - eval 入口在 _play 存在时自动路由,train 不变;显式 --profile play 优先 - 跨后端 play 由 resolve_sim2sim_config 只读校验,差异显式报错,sim2sim_strict=false 可强制
Collaborator
|
为何需要新增xxx_play, 在原来的文件内添加play字段的配置,加载时如果模式是train,则不加载play,如果模式是play,则将play的配置再加载覆盖原始train配置 |
Collaborator
|
没看懂,到底改了些什么东西。像是一些key顺序变了 |
Collaborator
Author
feat(sim2sim): 跨后端契约 guard + train/play 配置解耦概述为双后端 task(MuJoCo ↔ Motrix)引入 sim2sim 契约守卫机制,在跨后端 play/eval 时自动检测策略 I/O 不兼容,并通过 核心变化:
1. 守卫机制:拦截跨后端不兼容DENYLIST(7 个):差异即报错影响策略 I/O 的核心字段,训练与播放必须完全一致:
WARNING_LIST(6 个):差异仅告警不影响策略加载,但可能影响指标显示:
ALLOWLIST(6 个):自由覆盖渲染/播放专属,或训练时就允许随机化:
生效路径:
2. play_profile:train/play 逻辑解耦机制同一 owner 配置(
play_profile 可覆盖的内容A.
|
TATP-233
added a commit
that referenced
this pull request
Jul 2, 2026
# feat(sim2sim): 跨后端契约 guard + train/play 配置解耦(关于pr #660)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
issue(#650 #579 )
What changed
mujoco.yaml+motrix.yaml),删除 base.yaml 与所有<backend>_play.yamlplay_profile块(仅 rsl_rl/ppo 的 play 路径消费),在 eval(training.play_only=true)时叠加 render-only 覆盖resolve_sim2sim_config只读校验:比对训练快照(run_config.json)与目标后端 owner 的策略契约字段,不一致显式报CrossBackendIncompatibleError,training.sim2sim_strict=false可强制,手动 CLI 覆盖(如algo.empirical_normalization=<源值>)对齐Why
play_profile.env后可在 eval 单独覆盖 env 渲染字段,训练顶层配置零影响action_scale/obs_groups/empirical_normalization)由 yaml 控制;A 训练→B 渲染时守卫显式暴露契约不一致,而非静默产生错误行为_play冗余Behavior
train走顶层 env/algo,play_profile训练时不生效play_profile(ppo)叠加渲染覆盖,不改策略字段能覆盖范围(准确边界)
play_profile.envupdate 到 envplay_profileLinked Work
Validation
ruff check(clean)pytest tests/config tests/training tests/test_cli.py(260 passed)Commands actually run:
Impact
train路由不变)Artifacts
Checklist
_play后 compose 用例自然收敛)play_profile内嵌说明)Follow-up(已知,非本 PR):
build_task_env_cfg_override,不消费play_profile,故其 owner 无渲染层、train/play 未解耦(与 main 一致);如需解耦需改其 play 脚本调build_play_env_cfg_overrideppo/g1_flip_tracking、appo/g1_wall_flip_tracking)motrix.yaml 缺显式action_scale/sampling_mode,跨后端 play 命中结构不对称守卫,需显式声明才能验证契约