feat(orchestrator): make target_lag a configurable field#2845
Open
EazyReal wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 50c05de. Configure here.
Contributor
Author
|
Good catch — you're right that |
50c05de to
10d0f46
Compare
The maximum number of batches the orchestrator may run ahead of the trainer was a hardcoded module constant (TARGET_LAG = 1), so operators could not tune the async pipelining depth without editing source. Promote it to OrchestratorConfig.target_lag (Field(1, ge=1)) and read it at the dispatch-gate call site. Default 1 preserves existing behavior exactly; larger values allow deeper look-ahead at the cost of staleness. Bounded ge=1 because 0 would keep the dispatcher paused permanently (the lead is always >= 1 in steady state), deadlocking generation. Closes PrimeIntellect-ai#2812 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
10d0f46 to
d64798c
Compare
Contributor
Author
|
@mikasenghaas Could I get a quick review on this config PR? It surfaces |
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.

What
TARGET_LAG— the maximum number of batches the orchestrator may run ahead of the trainer — was a hardcoded module constant (= 1) inorchestrator.py. As noted in #2812, this is a meaningful async/off-policy knob that operators can't tune (and it interacts withmax_off_policy_steps) without editing source.Fix
Promote it to
OrchestratorConfig.target_lag(Field(1, ge=1), documented next tomax_off_policy_steps), delete the constant, and readself.config.target_lagat the dispatch gate.Default
1preserves the current one-step-ahead pipelining behavior exactly. Larger values allow deeper look-ahead at the cost of staleness;0is rejected because it would keep the dispatcher paused in steady state.Focused config tests cover the default and the lower bound.
Closes #2812