Skip to content

Top-5 autoresearch levers: symmetry front-load + early-exit + closure…#4

Open
thibautbar wants to merge 4 commits into
mainfrom
claude/top5-levers-iter56
Open

Top-5 autoresearch levers: symmetry front-load + early-exit + closure…#4
thibautbar wants to merge 4 commits into
mainfrom
claude/top5-levers-iter56

Conversation

@thibautbar

@thibautbar thibautbar commented May 29, 2026

Copy link
Copy Markdown
Owner

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_ratio impact)

# Lever Δ train sr
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 once needed-set resolves) −0.146
4 dim<=3 corner-master whitelist −0.100
5 Cross-group closure segregation (defer off-closure groups) −0.012

Performance

step_ratio = solver_steps / vanilla_steps (vanilla FIRE7 = 1.0). Lower is better.

Split Integrals Topologies Validity step_ratio Speedup
Train 56,102 13 100% 0.3481 2.87× fewer IBP eqs
Test (held-out) 913 9 100% 0.3002 3.33× fewer IBP eqs

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_needed machinery introduced by an intermediate early-exit iter, and the dim<=3 corner-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.

thibautbar and others added 4 commits May 27, 2026 10:57
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant