DarwinDiff — research review, B200 opportunities, and prioritized roadmap¶
⚠ SUPERSEDED FRAMING (2026-06-27). Point-in-time record; data/plans stand, framing corrected by STATUS.md. The project is a surrogate-to-model identifiability study over 4 OBSERVABLE params {alpfe, scav_rat, diatomgraz, R_PICPOC} — not a 6/6 chase or a '5/6 ceiling / parameter-conservation' result. The growth pair {Smallgrow, Biggrow} is unobservable by construction. R_PICPOC is recoverable at 1° with a real calcite anchor (Daniels/MODIS) +
RATIO_MAX=2— the differentiable Darwin calcite port and native resolution were tested and did not help, so R_PICPOC is not cluster-gated.geo1holds {alpfe, scav_rat, R_PICPOC} jointly 7/10; diatomgraz is an open iron-pair tradeoff. The surrogate gap is dimensional (the 0-D box homogenizes spatial structure, CV→1e-15), so box-vs-Darwin pattern-matching is not a fidelity metric.
Date: 2026-06-26 · For: epic #124 · Source: comprehensive review workflow (8 agents: 3 audits + 2 opportunity scans + adversarial verify + synthesis) + the completed real-data agreement audit. Honest/critical by design.
State of the research (honest)¶
Strongest defensible claim: a surrogate-to-model identifiability study (#116) — a differentiable iron-budget box that recovers a known-truth model's params and, via FIM/ profile-likelihood, exposes which Carroll-6 directions are stiff/sloppy/init-anchored. The verify gate is genuinely load-bearing. The iron pair (alpfe, scav_rat) is the one real-data- validated result (real GEOTRACES iron independently agrees with Carroll).
Biggest weakness (must fix in STATUS/README): "first 6/6" oversells a 3/10 stochastic event on the looser joint-cellweighted metric, held by a tuned knob (ironboost 10x), with the iron leg initialization-anchored (the global-θ loss rejects Carroll's alpfe everywhere; the per-cell DINN cell-mean sits near init). Referee line: "you're reporting the prior, not the posterior." Right framing: surrogate identifiability + 2-of-6 real-data-validated; the structural walls ARE the result.
Real-data agreement audit (4 of 6 params; identifiability_sloppiness.py --loss real*)¶
| param | real anchor | real-opt | Carroll | verdict |
|---|---|---|---|---|
| alpfe | GEOTRACES iron | 1.0 | 0.93 | AGREES (span 0.33) |
| scav_rat | GEOTRACES iron | 5.3e-7 | 6.0e-7 | AGREES (span 0.75) |
| diatomgraz | GEOTRACES bSi | 0.05 | 0.83 | weak/uninformative (span 0.12) |
| R_PICPOC | MODIS-Aqua PIC | 0.021 | 0.042 | DISAGREES ~2x; STRONGLY constrained (span 371). Caveat: absolute-MODIS bias -> confirm via RATIO_W |
| Smallgrow, Biggrow | none | — | — | unobservable (growth rates not measured; 2-layer freezes diatom growth) |
Prioritized roadmap (value x feasibility)¶
Compute tags: local (launch-bound, 5090==H200), now-H200 (free), needs-B200 (throughput).
| # | Move | Value | Feas | Compute | Prereq |
|---|---|---|---|---|---|
| 1 | Converged FIM/profile spine (all 6 x 4 AOI x loss-modes), ship as paper's identifiability section | high | easy | local/H200 | none |
| 2 | DINN-mean vs global-θ reconciliation; report global-θ as primary | high | easy | local | none |
| 3 | Honest real-anchor table (param:obs:agrees?:circular) | high | easy | local | none |
| 4 | Large seed ensembles n=100-300 -> Wilson CIs on 6/6 & 5/6 rates | high | easy | needs-B200 | none |
| 5 | Full multi-axis lever grid -> recovery response surface | high | easy | needs-B200 | none |
| 6 | MODIS PIC -> RATIO_W numerator in MAIN runner (~30-60 lines) | high | mod | local | port cache; 2 AOIs only |
| 7 | GEOTRACES *_err inverse-variance weights + per-AOI bin counts + alpfe CI |
med | easy | local | none |
| 8 | Native LLC270 + SEASONAL/transient fits (the only NEW-physics axis) | high | hard | needs-B200 | seasonal caches; monthly PIC unstaged; #10 |
| 9 | Amortized inverse (SBI/NPE) -> calibrated posterior UQ | med | mod | needs-B200 | new sampler + sbi dep |
| 10 | Fix 2-layer diatom map (un-freeze MU_DEFAULT_DIATOM) | med | easy | local | forward-model change |
| 11 | Cross-validation battery (leave-one-AOI-out) | med | mod | needs-B200 | extra AOI caches |
| 12 | NO3/PO4 tracer + f_N limitation (DESCOPED from B200 tier) | high-ceiling | hard | data+model, NOT throughput | NO3/PO4 unstaged |
What B200 specifically unlocks¶
Single 1° fit is launch-bound (~42 ms/epoch flat 2.8k-105k cells). B200 = pack many launch-bound fits per GPU x many GPUs = scale, not speed. It buys: (1) CIs on the headline rates (#4); (2) the full recovery response surface (#5); (3) the converged FIM map at scale (#1). All three buy tighter error bars on a FORECLOSED wall — rigorous but scientifically flat. Only #8 (native/seasonal transient) buys NEW physics, and it is gated behind #10 + unstaged PIC. So B200 is necessary-but-not-sufficient; do NOT spend AICR on bigger ensembles while the staging + forward-model work that is the only path to new science stays unscheduled.
The 3 highest-leverage moves (regardless of compute)¶
A. Converged identifiability spine + DINN-mean reconciliation (#1+#2) — disarms the "reporting
the prior" attack; first exp: converged --param alpfe --loss full x4 AOI + overlay DINN
cell-mean drift vs init.
B. Honest real-anchor table + GEOTRACES error propagation (#3+#7) — defines the true 2-of-6
scope, obs-error CI on the surviving claim.
C. MODIS -> RATIO_W non-circular R_PICPOC test (#6) — resolves real-vs-circular (quick audit:
real calcite ~0.021 vs Carroll 0.042); first exp: wire cache into RATIO_W numerator, n=10 eqpac+natl.
Stop / descope¶
- Stop "first 6/6 / first full six-parameter recovery" headlines (STATUS.md/README). Re-title to honest scope. Pick ONE metric (per-AOI ≥2-AOI) and use it everywhere — metric-shopping is the easiest referee kill.
- Stop treating ironboost as a finding — confirmation-tuning unless it transfers (held-out AOI/native).
- Descope NO3/PO4 from the B200/throughput tier — data-blocked model-structure change.
- Descope the stale
run_v3.0_with_modis_pic.pyfork — absolute anchor trips the iron mutex + lacks v3.2 physics; do the RATIO_W port into the main runner instead. - Drop the PRIMPROD_W "growth-rate" claim at steady state (PP ≈ the mortality flux already in the biomass loss).