Skip to content

4.0 - #402

Open
jsuarez5341 wants to merge 856 commits into
3.0from
4.0
Open

4.0#402
jsuarez5341 wants to merge 856 commits into
3.0from
4.0

Conversation

@jsuarez5341

Copy link
Copy Markdown
Contributor

This PR will not be merged. We are targeting EoY and 4.0 will just become master. Key goals:

  • Sweeps for all envs, largest ever public dataset of RL experiments
  • Constellation
  • Major perf enhancements

TBD: cpp/barracuda, final constellation features, xlstm, advantage calc tweaks

FinlaySanders and others added 30 commits July 8, 2026 16:20
Merging this here, will pull it on to 5c and test there
Nethack head gating, 5-6k score
The star history chart in the README is currently broken due to GitHub stargazer API restrictions. Update the chart links and images to point to our working star history service so the chart displays correctly again.
Physics: replace the single semi-implicit Euler step with RK4 plus configurable
substeps. Acceleration is factored out of integrate_physics into dp_accel so it
can be evaluated at RK4 trial states; the dynamics themselves are unchanged.
Measured energy drift over a 10s episode with zero force falls from 123% to
0.6355% at substeps=1 and 0.0006% at substeps=4. That matters here because a
swing-up is entirely energy bookkeeping -- an integrator that leaks energy makes
the catch easy for the wrong reason.

Reward: replace 0.5*height + hold-streak bonus with a DeepMind Control
Suite-style dense blend. The streak bookkeeping is kept because hold_time is
derived from it, which keeps that metric reward-independent.

On accurate physics the reward choice is decisive. Building on the terminal-signal
fix in this branch's parent, at 500M steps from a dead hang, hold_time out of 600:

  Euler  + streak    358   (previous behaviour)
  RK4    + streak      0   -- never catches
  RK4    + DeepMind  407

The streak reward pays 0.5100 for the first held step against 0.5000 for flying
through the top, a 2% signal that Euler's energy drift was masking by acting as
unintended dissipation. The DeepMind blend pays 4.2x at the same decision point.

Note this removes the old reward rather than keeping it behind a flag, so
existing double_pendulum results are not reproducible from here on.

The standalone demo sets substeps and balance_bonus_weight explicitly. Its
designated initializer would otherwise zero them, leaving the interactive binary
on RK4x1 with w=0 while training runs RK4x4 with w=0.5.

Also fix min_lr_ratio = 0 -> 0.0. The CLI infers each flag's type from its
config default, so the int made --train.min-lr-ratio reject float values.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.