Skip to content

B1 formulation epoch-cap comparison

All 48 runs are complete. The results and matched comparison are included on the B1 results page. Reproduce that section with .venv/bin/python scripts/plot_b1_300.py using saved scores and forecasts.

2026-09-17: user requested a 300-epoch test of all model formulations after the overnight pathogen two-stage model scored relative WIS 1.104. Of its 27 component selections, 19 reached the 100-epoch cap and 15 selected epoch 90 or later. This motivates a longer-cap comparison; it does not establish undertraining as the cause of poor forecasts.

Scope assumption: all four architectures crossed with A/direct, B/direct_finalflag, C/joint_aux025, and two_stage at mixed masking rate .5. Mask-rate and mechanism panels are excluded to isolate the epoch-cap question. Experiment B1-formulations-300 uses 16 configurations, seeds 42/43/44, 48 runs and 144 held-out season folds. Cap 300, patience 30; this is not 300 fixed epochs. All other recipes, retrospective inputs, selection/refit procedure, 128 training members, 256 validation members and 256 evaluation draws match B1-screen-256. Compare matched architecture/formulation/seed results. The joint MLP already had cap 300 in the original screen: its repeated runs are controls, not an epoch-cap contrast or additional independent seeds.

Use a separate source snapshot so the running overnight screen is unaffected. Six one-GPU allocations, eight lanes each, 12-hour limits. Existing jobs retain their GPUs; new allocations may wait for resources. No completion-time promise.

.venv/bin/python -m tapestry.models.manager plan -e B1-formulations-300 --suite B1-formulations --epochs 300 --seeds 42 43 44 --eval-members 256 --retrospective --device cuda
LANES=8 GPUS=6 sbatch --job-name=B1-300-L40 --array=0-3 --nodelist=g1803jles01 --time=12:00:00 data/experiments/B1-formulations-300/code/scripts/jlessler.sbatch B1-formulations-300
LANES=8 GPUS=6 sbatch --job-name=B1-300-H100 --array=0-1 --nodelist=g1803jles02 --time=12:00:00 data/experiments/B1-formulations-300/code/scripts/jlessler.sbatch B1-formulations-300
.venv/bin/python -m tapestry.models.manager status -e B1-formulations-300
.venv/bin/python -m tapestry.models.manager rank -e B1-formulations-300 --allow-incomplete

Do not replan queued or running jobs. Repeat launch commands only to resume after allocations end. Forecast ranking is the primary endpoint; the existing separate nowcast ranking can reject differing cell support across formulations.