-g/--set-grid declares a grid axis (repeatable; multiple axes take the Cartesian product — the example above yields 3×2=6 variants); -s/--set is a fixed override shared by all variants. Each variant goes through a standard submission: validation, quota, and queueing all apply as usual — there is no batch channel that bypasses quota.
Preview before submitting: —dry-run
Grouping and tracking
- All variants carry the same
sweep_id; the default group name issweep-<experiment>-<timestamp>(customize with-p); - The console Jobs page badges sweep members, and the Projects page aggregates curves by project for comparison;
- Stop the whole group with one command:
Practical advice
Coarse first, then fine
Coarse first, then fine
In the first round, sweep the learning rate across orders of magnitude (1e-6 / 1e-5 / 1e-4); once the magnitude is pinned down, do a second finer sweep within it. A blind full grid is the fastest way to burn GPUs.
Control cost with a --limit mindset
Control cost with a --limit mindset
For sweep variants, first lower
max_num_steps to the minimum that reveals a trend (e.g. 200 steps), pick the top 2, then train them at full scale.Quota is counted per variant
Quota is counted per variant
6 variants × 4 GPUs = 24 GPUs of concurrent demand. Variants exceeding quota queue up rather than fail — but that also means variants in the group do not start simultaneously; watch for consistent data versions when comparing.
Early stopping: cut the variants that are clearly going nowhere
Half the configurations in a grid are usually visibly hopeless within a few hundred steps. An RL run costs tens of GPU-hours; letting them finish is burning money.
A stopped variant’s job page states at which step, against how many variants, and what rank —
“stopped early” on its own explains nothing.
Four deliberately conservative choices:Judge only at rungs, never step by step — comparing continuously stops a variant that happens
to be in a normal dip.Compare only variants that reached the same rung — comparing one at step 100 with one at step
900 measures who ran longer.Fewer than 4 variants at a rung means no decision — cutting one of two is a coin flip, and the
loss is real money.At least one always survives — no
--keep value can empty a rung.Deployment-wide kill switch: FORGE_SWEEP_EARLY_STOP_ENABLED=false disables early stopping
platform-wide without touching any sweep.