fix: keep async rollouts version-consistent

- serialize shared-model optimizer updates with generation
- reject future or over-lagged rollout results after asynchronous scoring
- close cache publication races
- persist policy versions in online checkpoints
This commit is contained in:
0z5a
2026-09-03 12:01:24 +08:00
parent ce2f9d13b3
commit 587b0ee046
16 changed files with 531 additions and 49 deletions
+4 -1
View File
@@ -625,7 +625,7 @@ classDiagram
+supports_online() bool
+set_rollout_runner(runner)
+prepare_from_rollout(result) Dict
+on_optimizer_step()
+optimizer_step(optimizer)
}
class LossOutput {
@@ -698,12 +698,15 @@ classDiagram
+int rep_window
+int policy_version
+update_weights(policy_version) int
+apply_weight_update(policy_version, update)
+generate(batch) RawRollout
}
class RolloutRunner {
+int policy_version
+int max_policy_lag
+update_weights(policy_version) int
+apply_weight_update(policy_version, update)
+step()
+clear_cache()
+__call__(batch) Tuple[RolloutResult, bool]