Top-5 autoresearch levers: symmetry front-load + early-exit + closure…#4
Open
thibautbar wants to merge 4 commits into
Open
Top-5 autoresearch levers: symmetry front-load + early-exit + closure…#4thibautbar wants to merge 4 commits into
thibautbar wants to merge 4 commits into
Conversation
Counts modular coefficient operations so feynman-bench can report a num_ops metric per reduction: - coeff_ops: monomial-level ops in the Laporta substitution kernel (add_to) - presolve_ops: ops in the presolve (add_ibps) Both are per-sector atomics persisted to the kyotocabinet DB and summed in the master, printed as "Coeff ops:", "Presolve ops:", "Total ops:" in the STATISTICS block. The presolve aggregation is gated on Common::one_pass in the second scan_snapshot lambda to avoid double-counting in non-one_pass mode. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two fixes to make Total ops an honest count of modular multiplicative ops: - presolve_ops: each add_ibps outer iteration does (dim+1) coefficient multiplications per single-equation branch and 2*(dim+1) for the both-equations branch, not 1. Bump accordingly instead of once per iter. - div_ops (new): count modular inversions (nmod_div / nmod_inv via operator/), one per pivot coefficient computation. The trailing multiply of a division is left uncounted, symmetric with FIRE 6's mul_inv. Total ops = coeff_ops + presolve_ops + div_ops, printed in STATISTICS and persisted per-sector (keys ops_prs / ops_div) for master aggregation. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… segregation + dim<=3 corner-master Snapshot of the FIRE7 mod-P reduction strategy at autoresearch iter #56 — the point where the 5 highest-impact mutations have all landed. Each is a seeding/early-termination change that reduces the number of IBP equations FIRE consumes while producing a bit-identical reduction dictionary. The 5 levers (by train step_ratio impact): 1. Front-load symmetry seeding for upper-neighbour levels (-0.181) 2. Front-load symmetry seeding for all levels (-0.171) 3. Within-level early-exit (finalize sector when needed-set resolves) (-0.146) 4. dim<=3 corner-master whitelist (-0.100) 5. Cross-group closure segregation (defer off-closure groups) (-0.012) (plus the minimal connective changes they build on: iters #1-6,#10,#12,#25,#29,#33,#39,#44,#45) Measured vs vanilla FIRE7 (sr=1.0), step_ratio = solver_steps / vanilla_steps: TRAIN (56,102 integrals, 13 topologies): validity 100% sr 0.3481 (2.87x fewer IBP eqs) TEST (913 integrals, 9 held-out topologies): validity 100% sr 0.3002 (3.33x fewer) All reductions verified bit-identical to vanilla on both splits.
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
Snapshot of the FIRE7 mod-P reduction strategy at autoresearch iter #56 — the point where the 5 highest-impact mutations have all landed. Each is a seeding / early-termination change that makes FIRE consume fewer IBP equations while producing a bit-identical reduction dictionary.
The 5 levers (by train
step_ratioimpact)dim<=3corner-master whitelistPerformance
step_ratio = solver_steps / vanilla_steps(vanilla FIRE7 = 1.0). Lower is better.All reductions verified bit-identical to vanilla FIRE7 on both splits (100% validity).
Caveat — this is the iter #56 snapshot, not a 5-commit cherry-pick
The 5 levers are not separable into standalone commits: e.g. the cross-group closure segregation references the
have_min_neededmachinery introduced by an intermediate early-exit iter, and thedim<=3corner-master skip is grafted onto an earlier pre-IBP probe loop. A literal cherry-pick of just the 5 fails to compile. This PR therefore ships the smallest coherent, buildable state containing all 5 levers — the diff from vanilla to iter #56, which includes the minimal connective changes (iters #1–6, #10, #12, #25, #29, #33, #39, #44, #45).The full autoresearch lineage (~30 kept iters) reaches train 0.3448 / test 0.2895; these 5 levers alone capture ~91% of that test-side improvement.