fix: keep async rollouts version-consistent - #59
Closed
0z5a wants to merge 3 commits into
Closed
Conversation
Serialize shared-model optimizer updates with generation, reject future or over-lagged rollout results after asynchronous scoring, close cache publication races, and persist policy versions in online checkpoints.
Record the L20 baseline/candidate race replay and diagnostic InfraSWE system-path score before opening the pull request.
0z5a
marked this pull request as ready for review
September 3, 2026 01:25
This was referenced Sep 3, 2026
Owner
|
Squash merged to main as 587b0ee (benchmark artifacts excluded); CI green. |
ViperEkura
pushed a commit
that referenced
this pull request
Sep 3, 2026
…ncy-main-0z5a - squash content landed as 587b0ee, benchmark artifacts excluded
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
rollout_max_policy_lagwhile preserving the existingrollout_interval - 1default reuse windowpolicy_versionin checkpointsFailure reproduced on main
A reward scorer can advance the live policy after generation but before an old runner publishes its cache. On baseline
ce2f9d1, the runner returned and cached version 0 after policy version 1 was live.ce2f9d1baseline3483c3acandidateCandidate median delta is +0.50% (within the declared 2% ceiling); p99 delta is -12.17%.
Integrated DDP version-fencing soak
PR #59 was combined with #55's DDP rollout path at validation revision
fe81f17772db7acb8d7575b3f617a454a83ca58d.A separate three-rank long soak completed 100,000/100,000 updates in 2,486.142s with 10,001 parameter-digest checks, 0 cross-rank mismatches, and 0 MiB allocated/reserved memory drift.
This is cross-PR integration and rejection-contract evidence; the baseline/candidate timing table remains the single-process deterministic comparison.
Validation
811bc775: comparison cell valid; 41 Draft/system-path tests passedRaw results and reproducers are in
benchmarks/results/andbenchmarks/training_consistency/. Official InfraSWE scoring remains unresolved because the evidence is unsealed.Concurrency contract
Mutation and version publication share one critical section with generation. Reward scoring stays outside the policy lock because it may call an external service; the scored result is revalidated under a stable policy snapshot before entering the cache. The change does not claim rollback of a partially failing optimizer.