Repository navigation
E54: a fault at the boundary passes the status rule almost always; byte-identical weights or an env-side record catches every one - #121
Merged
Conversation
…h checks notice a fault at the environment-trainer boundary: the status rule, a strict curve check, byte-identical weights, or reconciliation with an env-side record 21 client faults (every field that crosses, with zero/stale/swap/f16/clip, plus episode-end and step faults), 2 trainer-log faults, 2 the bridge rejects, 3 controls; doses from one cell to every cell; Pendulum (traced, with a first-difference localiser) and HalfCheetah; 590 runs.
… always; byte-identical weights or reconciliation with an env-side record catches every one 590 registered runs, SB3 PPO on Pendulum and HalfCheetah through the bridge, 21 client faults and 2 trainer-log faults at doses from one value to every value. Every check and prediction holds: the status rule caught 0-4% at doses up to 10% and 39% at every value; weights caught all 504 client-fault runs and no control; the record caught what changes the books; weights or record caught all 546 silent runs; the first difference located all 351 traced runs.
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.
The question
Across machines, E43, E44, E48 and E49 judge a boundary by a status rule: the policy still learns. When something goes wrong at the environment-trainer boundary, does that rule notice? What does?
The answer
Almost never: the status rule misses nearly every fault. Byte-identical weights, or reconciliation with a record kept at the environment, catch every one.
SB3's PPO trained Pendulum and HalfCheetah through the bridge, as in E50. Meanwhile the env client changed one field of what crossed, in one way: 21 faults, covering every field with zero, stale, swap, float16 and clip, plus episode-end and step faults. Two more faults sat in the trainer's log. Doses ran from one value to every value. 590 registered runs, seeds 0-2.
Every check and prediction holds (
results/verdicts.txt).One changed value moved the final return by about as much as a change of seed. That is why a curve cannot tell a fault from a seed.
The per-run logs (100 MB) stay on guangzhao.
results/runs.jsonlandruns.csvcarry every run's result and every check's verdict.