Skip to content

[Algorithm] Add a reproducible DreamerV3 DMC Walker benchmark - #4075

Merged
vmoens merged 3 commits into
gh/vmoens/292/basefrom
gh/vmoens/292/head
Aug 12, 2026
Merged

[Algorithm] Add a reproducible DreamerV3 DMC Walker benchmark#4075
vmoens merged 3 commits into
gh/vmoens/292/basefrom
gh/vmoens/292/head

Conversation

@vmoens

@vmoens vmoens commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

Stack from ghstack (oldest at bottom):

Summary:

  • add a proprioceptive DMC Walker Walk preset for 1.1 million environment steps
  • support Gym and dm_control environments through one maintained training script
  • record evaluation return by environment step and aggregate multi-seed median/IQR curves
  • add optional-dependency and short end-to-end Walker smoke coverage

Rationale:
The existing Pendulum example validates wiring but cannot establish DreamerV3
training parity on a representative continuous-control task. A fixed Walker
protocol, machine-readable curves, and a multi-seed acceptance check make the
reference comparison reproducible while keeping full learning runs outside
pull-request CI.

Test plan:

  • pytest test/objectives/test_dreamer_v3.py -k 'dmc_benchmark or sota_shares' -q
  • pytest test/smoke_test_deps.py -k dreamer_v3_dmc_walker_env -q
  • compose config_dmc_walker with Hydra and inspect the resolved job config
  • run 20-step Pendulum and DMC Walker training smokes with JSON metrics
  • run benchmark.py for one shortened Walker seed and validate summary.json
  • run the full three-seed 1.1M-step benchmark as scheduled/manual validation

[ghstack-poisoned]
@pytorch-bot

pytorch-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/rl/4075

Note: Links to docs will display an error until the docs builds have been completed.

❌ 5 Cancelled Jobs, 2 Unrelated Failures

As of commit a42b53a with merge base d5a62cb (image):

CANCELLED JOBS - The following jobs were cancelled. Please retry:

BROKEN TRUNK - The following jobs failed but were present on the merge base:

👉 Rebase onto the `viable/strict` branch to avoid these failures

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@github-actions github-actions Bot added the new algo New algorithm request or PR label Aug 8, 2026
@vmoens vmoens added the ci/optdeps Run the full tests-optdeps suite on this PR label Aug 8, 2026
@github-actions github-actions Bot added CI Has to do with CI setup (e.g. wheels & builds, tests...) Objectives sota-implementations/ and removed new algo New algorithm request or PR ci/optdeps Run the full tests-optdeps suite on this PR labels Aug 8, 2026
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Aug 8, 2026
@vmoens vmoens added the ci/optdeps Run the full tests-optdeps suite on this PR label Aug 8, 2026
@vmoens

vmoens commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator Author

Update after the stack-level ghstack rebase: The full eight-PR Dreamer stack was checked out from #4075, rebased onto current origin/main, linted with pre-commit run --all-files, and submitted successfully as vmoens. This PR is now at 7bb418c6ae6f. The core Dreamer suites pass (267 tests) and the two doctest modules pass (15 tests); the DMC-only smoke still requires dm_control, which is not installed locally. Any earlier conflict/head-status note below is superseded; the substantive code-review observations remain applicable.

Reviewed current PR head e61ee26b60c0a8b0622cdafd2d45afcd057a6fbf and the latest CI/bot state. The requested rebase onto freshly fetched origin/main could not complete: replaying lower-stack commit d48b17c13 conflicts in sota-implementations/dreamer_v3/dreamer_v3.py. I left the rebase in progress and did not force-push.

I checked the Gym/dm_control environment construction and transforms, replay-ratio-to-update conversion, step-aligned JSON metrics, median/IQR aggregation, Hydra preset composition, SOTA smoke overrides, and docs. pytest -q test/objectives/test_dreamer_v3.py -k dmc_benchmark_aggregation passes. The dm_control smoke reached the intended environment construction but could not run locally because dm_control is not installed; that integration needs the optional-dependency job. I did not find a separate functional issue in the PR-specific diff at this head.

Please resolve the stack conflict first, then run the optional-dependency suite for the new dm_control path. The three current bulk failures are the LBFGSConfig parity failure already reported against trunk/merge-base.

[ghstack-poisoned]
vmoens added a commit that referenced this pull request Aug 10, 2026
Summary:
- add a proprioceptive DMC Walker Walk preset for 1.1 million environment steps
- support Gym and dm_control environments through one maintained training script
- record evaluation return by environment step and aggregate multi-seed median/IQR curves
- add optional-dependency and short end-to-end Walker smoke coverage

Rationale:
The existing Pendulum example validates wiring but cannot establish DreamerV3
training parity on a representative continuous-control task. A fixed Walker
protocol, machine-readable curves, and a multi-seed acceptance check make the
reference comparison reproducible while keeping full learning runs outside
pull-request CI.

Test plan:
- pytest test/objectives/test_dreamer_v3.py -k 'dmc_benchmark or sota_shares' -q
- pytest test/smoke_test_deps.py -k dreamer_v3_dmc_walker_env -q
- compose config_dmc_walker with Hydra and inspect the resolved job config
- run 20-step Pendulum and DMC Walker training smokes with JSON metrics
- run benchmark.py for one shortened Walker seed and validate summary.json
- run the full three-seed 1.1M-step benchmark as scheduled/manual validation

ghstack-source-id: 09cc608
Pull-Request: #4075
@github-actions github-actions Bot added the new algo New algorithm request or PR label Aug 10, 2026
vmoens added a commit that referenced this pull request Aug 10, 2026
Summary:
- add a proprioceptive DMC Walker Walk preset for 1.1 million environment steps
- support Gym and dm_control environments through one maintained training script
- record evaluation return by environment step and aggregate multi-seed median/IQR curves
- add optional-dependency and short end-to-end Walker smoke coverage

Rationale:
The existing Pendulum example validates wiring but cannot establish DreamerV3
training parity on a representative continuous-control task. A fixed Walker
protocol, machine-readable curves, and a multi-seed acceptance check make the
reference comparison reproducible while keeping full learning runs outside
pull-request CI.

Test plan:
- pytest test/objectives/test_dreamer_v3.py -k 'dmc_benchmark or sota_shares' -q
- pytest test/smoke_test_deps.py -k dreamer_v3_dmc_walker_env -q
- compose config_dmc_walker with Hydra and inspect the resolved job config
- run 20-step Pendulum and DMC Walker training smokes with JSON metrics
- run benchmark.py for one shortened Walker seed and validate summary.json
- run the full three-seed 1.1M-step benchmark as scheduled/manual validation

ghstack-source-id: 09cc608
Pull-Request: #4075
[ghstack-poisoned]
vmoens added a commit that referenced this pull request Aug 11, 2026
Summary:
- add a proprioceptive DMC Walker Walk preset for 1.1 million environment steps
- support Gym and dm_control environments through one maintained training script
- record evaluation return by environment step and aggregate multi-seed median/IQR curves
- add optional-dependency and short end-to-end Walker smoke coverage

Rationale:
The existing Pendulum example validates wiring but cannot establish DreamerV3
training parity on a representative continuous-control task. A fixed Walker
protocol, machine-readable curves, and a multi-seed acceptance check make the
reference comparison reproducible while keeping full learning runs outside
pull-request CI.

Test plan:
- pytest test/objectives/test_dreamer_v3.py -k 'dmc_benchmark or sota_shares' -q
- pytest test/smoke_test_deps.py -k dreamer_v3_dmc_walker_env -q
- compose config_dmc_walker with Hydra and inspect the resolved job config
- run 20-step Pendulum and DMC Walker training smokes with JSON metrics
- run benchmark.py for one shortened Walker seed and validate summary.json
- run the full three-seed 1.1M-step benchmark as scheduled/manual validation

ghstack-source-id: 1d0abdb
Pull-Request: #4075
@vmoens

vmoens commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator Author

Addressed the optional-dependency collection failure and resubmitted the rebased stack. Hydra and OmegaConf are now detected at module scope, configuration-dependent tests skip when unavailable, and OmegaConf imports stay lazy. The targeted config tests pass, both modules import with Hydra/OmegaConf unavailable, and the full all-files lint suite passes at this PR boundary.

@vmoens
vmoens marked this pull request as ready for review August 12, 2026 08:43
vmoens added a commit that referenced this pull request Aug 12, 2026
Summary:
- add a proprioceptive DMC Walker Walk preset for 1.1 million environment steps
- support Gym and dm_control environments through one maintained training script
- record evaluation return by environment step and aggregate multi-seed median/IQR curves
- add optional-dependency and short end-to-end Walker smoke coverage

Rationale:
The existing Pendulum example validates wiring but cannot establish DreamerV3
training parity on a representative continuous-control task. A fixed Walker
protocol, machine-readable curves, and a multi-seed acceptance check make the
reference comparison reproducible while keeping full learning runs outside
pull-request CI.

Test plan:
- pytest test/objectives/test_dreamer_v3.py -k 'dmc_benchmark or sota_shares' -q
- pytest test/smoke_test_deps.py -k dreamer_v3_dmc_walker_env -q
- compose config_dmc_walker with Hydra and inspect the resolved job config
- run 20-step Pendulum and DMC Walker training smokes with JSON metrics
- run benchmark.py for one shortened Walker seed and validate summary.json
- run the full three-seed 1.1M-step benchmark as scheduled/manual validation

ghstack-source-id: 1d0abdb
Pull-Request: #4075
@vmoens
vmoens merged commit a42b53a into gh/vmoens/292/base Aug 12, 2026
160 of 220 checks passed
@vmoens
vmoens deleted the gh/vmoens/292/head branch August 12, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/optdeps Run the full tests-optdeps suite on this PR CI Has to do with CI setup (e.g. wheels & builds, tests...) CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. new algo New algorithm request or PR Objectives sota-implementations/

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant